Выполнение sql запросов на SDE

0 голосов
спросил 17 Окт, 05 от SmileGS (680 баллов) в категории Программные продукты Esri

Средствами ESRI OLE DB provider подрубаюсь в sde

так:

Set SDEAdoCon = New ADODB.Connection
SDEAdoCon.ConnectionTimeout = 30

Dim sConString As String
sConString = "Provider=ESRI.GeoDB.OleDB.1;Location=" & Server & ";Data Source=" & Database & _
 ";User Id=" & User & ";Password=" & PassWord & _
 ";Extended Properties=workspacetype=esriDataSourcesGDB.SdeWorkspaceFact ory.1;Geometry=OBJECT" & _
 ";Instance=" & Instance & ";Version=" & version
SDEAdoCon.Open sConString

Подключение корретное, так как запросы типа

sql = " select name, address, phone from t_branch where t_branch.id_city = 405"

Dim rs As ADODB.RecordSet
Set rs = New ADODB.RecordSet

rs.Open sql, SDEAdoCon

работают нормально.

Но стоит только добавить в конец order by name, вываливается ошибка:

---------------------------
ArcMap
---------------------------
Error #-2147467259
   Неопознанная ошибка
   (Source: Provider)
   (SQL State: )
   (NativeError: -2147467259)
   No Help file available


---------------------------
ОК  
---------------------------
данные лежат на mysql, а arcsde - 9

че за?

просьба в хелп не посылать, ибо и так исчю.

2 Ответы

0 голосов
ответил 24 Окт, 05 от Grigoriy (127,020 баллов)

Потому что ESRI.GeoDB.OleDB поддерживает только оператор where. Если нужны другие sql-выражения используйте прямые запросы к серверу минуя ArcObjects.

0 голосов
ответил 28 Ноя, 05 от SmileGS (680 баллов)
спасибо за ответ.
уже давно решил использовать стандартный микрософтовский оле провайдер. все работает.
тогда возникает вопрос. а зачем тогда вообще нужен сде, если удобнее подключаться напрямую?
не знаю, может, в новой версии исправят...
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...