Как получить RowID?

MapInfo, MapBasic
Ответить
Аватара пользователя
agentbond007
Активный участник
Сообщения: 100
Зарегистрирован: 14 дек 2010, 15:14
Репутация: 0

Как получить RowID?

Сообщение agentbond007 » 14 дек 2010, 15:21

Здравствуйте!
Подскажите пожалуйста как получить "реальный" RowID из таблицы выбранного объекта. Selection.RowID не подходит!
Спасибо. :?:

Аватара пользователя
asgs
Участник
Сообщения: 89
Зарегистрирован: 04 авг 2010, 06:35
Репутация: 1
Контактная информация:

Re: Как получить RowID?

Сообщение asgs » 16 дек 2010, 17:35

Да по ходу никак. По крайней мере, быстро. В порядке извращения можно по SelectionInfo узнать имя исходной таблицы и путем перебора строк в ней искать полное совпадение по графике и семантике с выбранной записью (и графическим объектом), но это будет настолько медленно, что заранее тянет повеситься.
А зачем Вам понадобился RowID в базовой таблице, если не секрет?
Злобный йожег

gamm
Гуру
Сообщения: 4170
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

Re: Как получить RowID?

Сообщение gamm » 16 дек 2010, 21:03

agentbond007 писал(а):Здравствуйте!
Подскажите пожалуйста как получить "реальный" RowID из таблицы выбранного объекта. Selection.RowID не подходит!
Спасибо. :?:
что мешает сделать Update Column через меню, вытащить RowID в поле MyRow, и спокойно его использовать до следующего Pack Table?

Аватара пользователя
asgs
Участник
Сообщения: 89
Зарегистрирован: 04 авг 2010, 06:35
Репутация: 1
Контактная информация:

Re: Как получить RowID?

Сообщение asgs » 17 дек 2010, 08:11

Лично мне показалось, что ТС нужно получить RowID не интерактивно, а программно. В принципе, это уточнение входит в вопрос в моем предыдущем посте. Топикстартер, отзовись ;)
Злобный йожег

Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

Re: Как получить RowID?

Сообщение Boris » 17 дек 2010, 09:47

gamm писал(а): что мешает сделать Update Column через меню, вытащить RowID в поле MyRow, и спокойно его использовать до следующего Pack Table?
У новых и измененных записей в поле MyRow будет стоять 0.

Valter
Новоприбывший
Сообщения: 2
Зарегистрирован: 03 мар 2011, 13:15
Репутация: 0

Re: Как получить RowID?

Сообщение Valter » 03 мар 2011, 13:18

Попробуйте Commandinfo(CMD_INFO_ROWID), правда не уверен что сработает.

Аватара пользователя
agentbond007
Активный участник
Сообщения: 100
Зарегистрирован: 14 дек 2010, 15:14
Репутация: 0

Re: Как получить RowID?

Сообщение agentbond007 » 10 мар 2011, 02:32

Valter писал(а):Попробуйте Commandinfo(CMD_INFO_ROWID), правда не уверен что сработает.
Спасибо, данный способ работает, просто нужно проверять какой тип возвращает эта комманда :D

Valter
Новоприбывший
Сообщения: 2
Зарегистрирован: 03 мар 2011, 13:15
Репутация: 0

Re: Как получить RowID?

Сообщение Valter » 11 мар 2011, 09:22

Ну если 2 строки добавилось в выборку то точно не сработает, это и объясняет мою неуверенность

Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

Re: Как получить RowID?

Сообщение Boris » 11 мар 2011, 15:07

Если все получилось, или наоборот не получилось, то не сочтите за труд, распишите, что именно искали и как достигли или не достигли результата.
Я так и не понял удается получить RowID исходной таблицы обрабатывая информацию запроса или нет?

Аватара пользователя
agentbond007
Активный участник
Сообщения: 100
Зарегистрирован: 14 дек 2010, 15:14
Репутация: 0

Re: Как получить RowID?

Сообщение agentbond007 » 12 мар 2011, 02:32

У меня все получилось :D , алгоритм такой:
Проверить сколько объектов выбрано,
если 1 то выполнить комманду Commandinfo(CMD_INFO_ROWID) далее
проверяем тип полученного результата, если это цифра то это RowID

Ответить

Вернуться в «MapInfo»

Кто сейчас на конференции

Сейчас этот форум просматривают: Semrush [Bot] и 2 гостя