0

私はUniDataにまったく慣れていないので、実際にいくつかのポインターを探しています...

UniData DB からテーブルをプルした後です (それが正しい用語である場合は??)。最も簡単な方法は、UniObjects API と UniData に組み込まれているように見える XML を使用してこれを行うことです。

ただし、API を使用すると XML は返されず、空の XML エラーだけが返され、UniCommand.command を使用すると何も返されず、コマンド ステータス 0 だけが返されます。

ここにはいくつかの矛盾する情報があるようです - 一部の開発者ガイドは、XML がファイルに書き込まれ、クライアントに返されないことを示唆していますか?

ポインタはありますか?

乾杯、

カイ。

更新 - いくつかのコード...

U2Connection con = new U2Connection();
U2ConnectionStringBuilder conn_str = new U2ConnectionStringBuilder();

try
{
    conn_str.UserID = "BLAH-BLAH";
    conn_str.Password = "BLAH-BLAH";
    conn_str.Server = "BLAH-BLAH";
    conn_str.AccessMode = "Native";   // FOR UO
    conn_str.RpcServiceType = "udcs"; // FOR UO
    conn_str.Database = "BLAH-BLAH";
    conn_str.ServerType = "UNIDATA";
    conn_str.Pooling = false;
    con.ConnectionString = conn_str.ToString();
}
catch (Exception ex)
{

}

con.Open();
UniSession us = con.UniSession;
UniCommand unicmd = us.CreateUniCommand();

unicmd.Command = "LIST ASSET_REPORT";
unicmd.Execute();

Console.Write(unicmd.CommandStatus + Environment.NewLine);
Console.Write(unicmd.Response);
Console.Write(Environment.NewLine + "Done...");
Console.ReadKey();

con.Close();

確認のために、上記のコードを使用して、コマンドを実行し、その出力を取得できます。ただし、コマンドを「LIST ASSET_REPORT TOXML」のようなものに変更すると (私が見つけたすべてのガイドに従って)、何も返されません。同様に、UniXML 関数を使用すると、次のようになります。

UniXML xml = us1.CreateUniXML();

xml.GenerateXML("LIST DICT ASSET");

DataSet ds = xml.GetDataSet();

私が得るのは空のデータセットの例外だけですか?

4

1 に答える 1

0

原則として、コードに問題はありません。あなたのコードを UniData サーバーに対してテストしました (もちろん、ファイル名の変更など)。エラーは発生しません。TOXML と UniXML メソッドの GenerateXML() も問題なく使用できます。返された XML データは、まさに期待どおりです。

次の情報をお知らせください。

  • 発生したすべてのエラー メッセージの詳細。
  • 使用している UniData のバージョンと UniData のベースとなっている OS。
  • Execute() メソッドを呼び出した後の unicmd.Response の値は? 空のファイルを参照していて、ルート タグを取得しているだけですか?

問題を引き起こしているのは、あなたがまだ私たちと共有していない何かに違いありません.

グレン

于 2013-01-09T14:00:24.373 に答える