2014-12-03 7 views
0

КонтекстДва запросы, связанные с UniObjects для .NET

У меня есть интерфейс в VB.NET, что извлекать данные из UniVerse с помощью UniObjects for .NET

Проблема

Из файла COB Мне нужно получить все ключи, где поле FEC.COB равно определенной дате, а поле SEC равно 04.

Специалист Uni База данных Verse сказал мне, что я могу запустить последующие запросы:

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

SELECT.ID 1 2 04 

Но я не знаю, как я могу это сделать с помощью библиотеки UniObjects. Может кто-нибудь мне помочь?

ответ

1

Я не использую UniObjects, так как мой магазин обычно получает данные от UniVerse через ODBC. Также мой VB плох, поэтому у меня нет много метакода для вас, но основная идея - сделать что-то вроде этого.

1.) Создайте УФ-сеанс. Надеюсь, вы так много разработали, что я не могу помочь.

2.) После того, как сеанс установлен Выполните запрос, делая что-то вроде этого

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

(я преобразовал свои двойные кавычки на одинарные и Вселенной не будет возражать).
3.) Если вам просто нужны идентификаторы, вы можете получить их, итерации через список выбора, возвращаемый вашим запросом. Запрос командной строки всегда будет возвращаться в список 0, если в вашем УФ-запросе не указывается иное. В большинстве случаев результаты будут в session.SelectList (0)

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

4.) Похоже, что объект SelectList имеет метод ReadList, который возвращает динамический массив объектов, которые вы должны быть в состоянии перебрать с помощью нормальный цикл цикла. Кроме того, вы можете использовать цикл while и делать то, что вам нужно.

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 

Надеюсь, что это немного полезно.