Значения в таблице

0 голосов
спросил 09 Май, 10 от Swallow (2,740 баллов) в категории Программные продукты Esri
 Вот какой день уже не могу нормально написать код. Задача в следующем. Есть допустим 5 слоев. В каждом слое таблице есть столбец допустим name. нужно получить значения поля где name = 'абракадабра'. Может кто подсказать пример как это сделать. А то хелпы читаю и вообще не догоняю их( Или может не то я читаю?)  

33 Ответы

0 голосов
ответил 09 Май, 10 от TDenis (42,620 баллов)
0 голосов
ответил 09 Май, 10 от Swallow (2,740 баллов)

    Для первого слоя находит все хорошо. А вот если по всем слоям искать то уже не могу сделать. Изза того что есть выборка. Если бы вам было удобно я бы постучал бы в аську к вам чтоб спросить, либо дал бы свою аську. А то на форуме не совсем удобно.
0 голосов
ответил 09 Май, 10 от TDenis (42,620 баллов)
Для первого слоя находит все хорошо. А вот если по всем слоям искать то уже не могу сделать. Изза того что есть выборка.

Каким образом влияет выборка на пример, который по ссылке?

Если бы вам было удобно я бы постучал бы в аську к вам чтоб спросить, либо дал бы свою аську. А то на форуме не совсем удобно.

Мне здесь удобнее.
0 голосов
ответил 09 Май, 10 от Swallow (2,740 баллов)
pQFilt.WhereClause = "subtype = 'COM'"
Если subtype = 'COM' не выполняется то все ошибка. и все останавливается. У меня есть два слоя и табличные данные в них допустим такого типа:
Табл1
ID     subtype    type
1        COM      piy   

Табл2

ID     subtype     type
2        NECOM     piy2

И мне нужно получить значение type где subtype='NECOM'

Вот в общем то типа того должно быть
0 голосов
ответил 09 Май, 10 от Swallow (2,740 баллов)
И поиск этих значений должен быть по всем слоям. Не зависимо от того subtype там com или necom. т.е. если там другое значение чтоб ничего не вылетало)
0 голосов
ответил 09 Май, 10 от TDenis (42,620 баллов)
Прежде чем делать запрос к каждому конкретному слою, проверьте, есть ли у слоя необходимое поле. Сделать это можно с помощью метода FindField.
0 голосов
ответил 09 Май, 10 от Swallow (2,740 баллов)
Прежде чем делать запрос к каждому конкретному слою, проверьте, есть ли у слоя необходимое поле. Сделать это можно с помощью метода FindField.

    В том то и дело что не поле, а значение в этом поле.
0 голосов
ответил 09 Май, 10 от TDenis (42,620 баллов)
Какая ошибка?
0 голосов
ответил 09 Май, 10 от TDenis (42,620 баллов)
Хотя лучше скиньте сюда весь код и укажите, на какой строчке возникает ошибка.
0 голосов
ответил 09 Май, 10 от Swallow (2,740 баллов)
Хотя лучше скиньте сюда весь код и укажите, на какой строчке возникает ошибка.

    Public Sub tableatr(number As Integer)

Dim pFeatcls As IFeatureClass
Dim pFeatLayer As IFeatureLayer
Dim pDoc As ISxDocument
Dim pMap As IScene

Set pDoc = ThisDocument
Set pMap = pDoc.Scene
Set pFeatLayer = pMap.layer(number)
Set pFeatcls = pFeatLayer.FeatureClass


Dim pQFilt As IQueryFilter
Dim pFeatCur As IFeatureCursor

Set pQFilt = New QueryFilter
pQFilt.whereClause = "StreetName = '" & Module1.nameS & "'"
Dim str As Integer

str = pFeatcls.FindField(pQFilt.whereClause)

If str <> -1 Then
"А дальше если streetname='Значению одному'" буду выполнять код. Но все время -1 значение
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...