0

语境

我在 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 库来做到这一点。谁能帮我?

4

1 回答 1

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

希望这有点帮助。

于 2014-12-09T22:32:36.723 回答