【问题标题】:Two queries related in UniObjects for .NETUniObjects for .NET 中相关的两个查询
【发布时间】:2014-12-03 11:53:58
【问题描述】:

上下文

我在 VB.NET 中有一个接口,可以使用 UniObjects for .NET 从 UniVerse 中提取数据

问题

我需要从 COB 文件中获取 FEC.COB 字段等于特定日期且字段 SEC 等于 04 的所有密钥。

UniVerse Database 的一位专家告诉我,我可以运行以下查询:

SELECT COB WITH FEC.COB > “31/10/2013”

SELECT.ID 1 2 04

但我不知道如何使用 UniObjects 库来做到这一点。谁能帮帮我?

【问题讨论】:

    标签: vb.net universe uniobjects


    【解决方案1】:

    我不使用 UniObjects,因为我的商店通常通过 ODBC 获取 UniVerse 的数据。我的 VB 也很糟糕,所以我没有太多的元代码给你,但基本的想法是做这样的事情。

    1.) 创建一个 UV 会话。希望你已经解决了很多问题,因为我在那里几乎没有帮助。

    2.) 建立会话后,通过执行类似这样的操作来执行查询

    session.Command.Text = "SELECT COB WITH FEC.COB > '31/10/2013'"
    session.Command.Exec
    

    (我将您的双引号转换为单引号,Universe 不会介意)。
    3.) 如果您只需要 ID,您可以通过遍历查询返回的选择列表来获取它们。除非您在 UV 查询中另行指定,否则命令行查询将始终返回到列表 0。在大多数情况下,您的结果将在 session.SelectList(0) 中

    Dim objSelect As object
    Set objSelect = objSession.SelectList(0)
    

    4.) 看起来 SelectList 对象有一个 ReadList 方法,该方法返回一个动态数组对象,您应该能够使用普通数组循环对其进行迭代。此外,您可以使用 while 循环和 next 来执行您需要执行的操作。

    Dim someObject as Object 
    someObject = objSelect.Next ' Get first ID
    Do While Not objSelect.LastRecordRead
       ' Do something here with someObject. Maybe ToString it or something
       someObject = objSelect.Next' Get next ID
    Loop
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-10
      • 2021-11-19
      • 2020-01-11
      • 1970-01-01
      • 2010-12-12
      • 2020-04-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多