私は UniObjects .NET で遊んでいます。
SELECT クエリを実行して、データを実行できるフォームにデータを取得できるようにしたいと考えています。
私が使用しているドキュメントはhttp://www.rocketsoftware.com/u2/products/universe/resources/technical-manuals/universe-v11r1/uonet-v11r1.pdfにあります。
現在、次を使用してクエリを実行しています
// UniCommans is a new instance of the CreateUniCommand() method
UniCommand cmd = us1.CreateUniCommand();
string UVDatabaseName = "SLCUST";
// Command is the query that will be sent to the server to be rum
cmd.Command = "SELECT " + UVDatabaseName + " USING DICT " + UVDatabaseName + " WITH CUSREF PRICECODE";
しかし、それらが提供するデータ型オブジェクトの 1 つにデータを取得する方法がわかりません。
- UniDynArray
- ユニファイル
UniSelectList
// OpenSession is used to open a new session to the database us1 = UniObjects.OpenSession("92.0.0.1", "username", "password", "/path/TOFILE", "uvcs"); // Create new instance a UniCommand UniCommand cmd = us1.CreateUniCommand(); string UVDatabaseName = "SLCUST"; // Command is the query that will be sent to the server to be run cmd.Command = "SELECT " + UVDatabaseName + " USING DICT " + UVDatabaseName + " WITH CUSREF PRICECODE"; // Buffer size for receiving data can be get/set using CommandBlockSize // 0 is unlimited, the full data set will be received cmd.CommandBlockSize = 0; // Execute() executes the Command on the server cmd.Execute(); // A status response is returned as a string in Response string response_str = cmd.Response; Console.WriteLine(response_str); // Check for the response of the UniCommand // UVS_COMPLETE = The command was completed, or unsuccessful if (cmd.CommandStatus == UniObjectsTokens.UVS_COMPLETE) { // How do I loop through the data set from my query? }
次のコードを使用して、テーブル全体を実行できることがわかりました。
// Create a Uni file, required for you can use a database file
UniFile custfile = us1.CreateUniFile("SLCUST");
// Create a select list from the ID returned from cmd.Response;
UniSelectList selectList = us1.CreateUniSelectList(0);
selectList.Select(custfile);
bool lLastRecord = selectList.LastRecordRead;
while (!lLastRecord)
{
string s = selectList.Next();
Console.WriteLine("Record ID:" + s);
lLastRecord = selectList.LastRecordRead;
}
コマンドを実行すると、次の応答文字列が返されます
SELECT リスト #0 に 4665 レコードが選択されました
リスト「0」にアクセスする方法ですが、試してみましたが、正しいクラスタイプにマッサージする方法です。
UniSelectList selectList = us1.CreateUniSelectList(0);