ExecSQL method (Layer)

Выполняет произвольный SQL запрос в контексте данного слоя.

Применяется к:

Layer

Синтаксис:

Function ExecSQL(SqlText As String, [Context]) As IZSqlResult

SqlText - текст SQL запроса.

Context - необязательный параметр в виде объекта ZSqlContext, задающий дополнительный контекст запроса.

Описание:

Метод выполняет указанный в SqlText запрос и возвращает результат в виде объекта IZSqlResult. В параметре Context можно задать дополнительный контекс запроса.

Зарос выполняется в контексте слоя, у которого вызван этот метод. Если выполняется выборка только из этого слоя, то раздел FROM в запросе можно опустить, например:

'Возвращает максимальную площадь у объектов слоя
Set Rslt = Layer.ExecSQL("SELECT MAX(geometry.STArea())")

Если нужно сделать выборку с пересечением двух слоев, то можно воспользоваться параметром Context:

Set Context = New ZSqlContext
'Добавляем в контекст слой с названием Кварталы
Context.AddSource LayerQuart
'Выполняем выборку у слоя Здания тех объектов, которые попали в квартал с Sys=3
Set Rslt = LayerDoma.ExecSQL("SELECT D.Sys FROM [Здания] AS D _
           INNER JOIN [Кварталы] AS Q ON D.geometry.STWithin(Q.geometry) _
           WHERE Q.Sys=3", Context)