gpt4 book ai didi

c# - Uni Objects .NET 运行查询并获取结果集

转载 作者:太空宇宙 更新时间:2023-11-03 22:07:12 24 4
gpt4 key购买 nike

我一直在玩弄 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";

但我不知道如何将数据放入他们提供的一种数据类型对象中:

  • 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;
}

当我运行命令时,我得到以下响应字符串

4665 record(s) selected to SELECT list #0

这只是访问列表“0”的方式,我已经尝试过,但它是如何将它按摩到正确的类类型中:

UniSelectList selectList = us1.CreateUniSelectList(0);

最佳答案

你越来越近了。默认情况下,“SELECT”命令将生成一个键列表到选择列表 0 中。所以你只需要为它分配一个 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";

UniSelectList uSelect = uSession.selectList (0);
// Execute() executes the Command on the server
cmd.Execute();

while (!lLastRecord)
{
string s = uSelect.Next();
Console.WriteLine("Record ID:" + s);
lLastRecord = selectList.LastRecordRead;
}

关于c# - Uni Objects .NET 运行查询并获取结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8009157/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com