SQL-запрос

0 голосов
спросил 18 Май, 06 от Egor (360 баллов) в категории Программные продукты Esri

Здравствуйте, не подскажете, как можно при помощи средств ArcObjects программным способом построить Sql - запрос и результат получить в виде ITable? Я строю SQL - запрос пр помощи средств VB, и получаю рекордсет, но не знаю, что с ним делать дальше:

Dim DBase As ADODB.Connection
Set DBase = New ADODB.Connection

DBase.Open "DSN", "login", "password"
    
Dim RS As ADODB.RecordSet
Set RS = DBase.Execute("Select * from mp_table where code_region = 19")

   Мои попытки после этого создать ITable и перегнать дуда содержимое рекордсета заходят в тупик.

Поскажите пожалуйста, как решить проблему?
    

2 Ответы

0 голосов
ответил 30 Май, 06 от Egor (360 баллов)
Может быть, кто-нибудь знает, как из recordset сделать таблицу?
Перед созданием таблицы я создаю список полей с их именами и свойствами. В частности IsNullable = True. Однако, при создании таблицы свойство IsNullable всех полей становится false. Как только при переборе рекордсета появляется Null, процесс создания таблицы ломается. Может, у кого-нибудь есть соображения по этому вопросу?
   
Спасибо!
0 голосов
ответил 30 Май, 06 от sschainik (4,900 баллов)
Как получить таблицу я не знаю, но может поможет следующий код
я с помощью него извлекаю строки, как при выборке по атрибуту
 
Dim pQueryFilter As IQueryFilter
Dim pQueryString As String
Dim pFLayer As IFeatureLayer
Dim pTable As ITable
Dim pCursor as ICursor
Dim pRow as IRow
Set pQueryFilter = New QueryFilter
pQueryString = "OBJECTID = 10" 'условие выборки
pQueryFilter.WhereClause = pQueryString
Set pFLayer = pLayer
Set pTable = pFLayer.FeatureClass
Set pCursor = pTable.Search(pQueryFilter , True)
Set pRow = pCur.NextRow
Do Until pRow Is Nothing
        Set pRow = pCur.NextRow 'здесь по циклу извлекаются строки
Loop
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...