Не могу сделать выборку из-за отсутствия Object-ID

0 голосов
спросил 06 Апр, 09 от mbog_kungur (420 баллов) в категории Программные продукты Esri
Добрый день. У меня есть таблица sql-server 2000. Я ее присоединил к ArcGis. В ней находятся значения x и y некоторых точек. Пытаюсь сделать выборку по ней, во-первых, в выборке этой таблицы в списке нет, во-вторых, когда заходишь через таблицу атрибутов, пишет "у вас нет связанного поля Object-ID". Подскажите, пожалуйста, где мне обозначить Object-ID в этой таблице? Или это делается не в ArcGis?

16 Ответы

0 голосов
ответил 06 Апр, 09 от aleonov (7,720 баллов)
0 голосов
ответил 06 Апр, 09 от Worker (22,480 баллов)
Можно создать класс пространственных объектов из слоя event. И в нем, конечно, будет столбец уникальных ИД.
0 голосов
ответил 06 Апр, 09 от mbog_kungur (420 баллов)
LAL77, все бы ничего, только я в английском не силен. А по-русски ничего нет?
    
0 голосов
ответил 06 Апр, 09 от aleonov (7,720 баллов)
Создайте ID в таблице с помощью инструмента ArcToolbox\Data Management Tools\Distributed Geodatabase\Add Global IDs
0 голосов
ответил 06 Апр, 09 от mbog_kungur (420 баллов)
LAL77, все сделал как вы сказали. Выборка все-равно не идет. Захожу в таблицу атрибутов, столбца FID нет, а в 3х других слоях есть, но я их привязал как shp-файлы, а этот как таблицу из БД. Даже в свойствах слоя на закладке ИСТОЧНИК пишет "Есть поле Object-ID: Нет". Я таблицу подключил через Database Connections. Database Servers у меня пустое. Это я делал через ArcInfo. Если делать через ArcCatalog, то пишет ошибку:
"Выполнение команды: AddGlobalIDs 'Database Connections\OLE DB Connection.odc\dbo.bur' 'Database Connections\OLE DB Connection.odc\dbo.bur'
Время старта: Mon Apr 06 14:46:04 2009
Выполнение AddGlobalIDs...
ERROR 000582: Error occurred during execution.
Не удалось выполнить (AddGlobalIDs).
Время окончания: Mon Apr 06 14:46:04 2009 (Затраченное время: 0,00 секунд(ы))
"
    
0 голосов
ответил 06 Апр, 09 от mbog_kungur (420 баллов)
У меня в этой таблице есть столбец mslink, а нельзя этот object-id привязать к этому столбцу? Этот столбец имеет целые значения с 1 по 4420 (номера точек)   
0 голосов
ответил 07 Апр, 09 от Grigoriy (127,020 баллов)
https://forum.esri-cis.ru/index.php?qa=24555

ArcToolBox->Управление данными(Data Management Tools)->Слои и представления таблиц(Layers and Table Views)->Создать таблицу запроса(Make Query Table).

http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?id=673&pid=671&topicname=About_ObjectID_fields

Если есть ArcSDE, то можно так:
https://forum.esri-cis.ru/index.php?qa=28077
0 голосов
ответил 09 Апр, 09 от mbog_kungur (420 баллов)
Григорий, подскажи, пожалуйста, как а ArcCatalog добавить ArcSDE? Я не могу понять, что нужно прописать в поле "Сервер базы данных"? По примеру "myserver\sqlexpress" уже все перепробовал, не заходит. Скажи что нужно тут прописать?
И подскажи, пожалуйста, после создания таблицы запроса, где она должна отобразиться? И где она находится?
0 голосов
ответил 13 Апр, 09 от Grigoriy (127,020 баллов)
Так SDE установлен? Работает как отдельный сервис?
Вот подключение к сервису SDE, работающему под MS SQL Server:
image

Здесь:
tec2 - компьютер, на котором запущена служба esri_sde
5151 - номер TCP-порта, по которому служба принимает вызовы и отдает результаты.
SDE - база данных в MS SQL Server.

А вот прямое подключение к SQL Server, минуя службу SDE:
image

Как видите, синтаксис подключения несколько отличается.
Подробнее см. http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?TopicName=An_overview_of_ArcSDE_geodatabase_connections

Если не понятно - зовите администратора SDE.

А таблица запроса появляется в проекте ArcMap на закладке "источники данных" в таблице содержания.
image

Более того, если в самом SQL-сервере определить один из столбцов в таблице, как столбец, хранящий целые числа. Указать, что столбец не может быть пустым и будет использоваться как первичный ключ, то такая таблица не будет требовать создания никаких таблиц запросов, а будет вести себя, как родная в ArcGIS, только редактировать её будет нельзя, пока не зарегиcтрируете её в SDE.
image

    
0 голосов
ответил 04 Май, 09 от mbog_kungur (420 баллов)
Григорий, у меня в SQL-сервер есть таблица, в которой есть столбец mslink: Data Type - Integer, Allow Nulls - No. А вот где поставить, что будет использоваться как первичный ключ, я не знаю. Подскажи пожалуйста. Эта таблица и подключена у меня к ArcGis. И по ней-то я и не могу сделать выборку. И по этому же столбцу у меня идет индекс (только нет галочки - уникальный).
    image
image
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...