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

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

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

Сообщение agentbond007 »

Здравствуйте!
Подскажите пожалуйста как получить "реальный" RowID из таблицы выбранного объекта. Selection.RowID не подходит!
Спасибо. :?:
Аватара пользователя
asgs
Участник
Сообщения: 89
Зарегистрирован: 04 авг 2010, 06:35
Репутация: 1
Контактная информация:

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

Сообщение asgs »

Да по ходу никак. По крайней мере, быстро. В порядке извращения можно по SelectionInfo узнать имя исходной таблицы и путем перебора строк в ней искать полное совпадение по графике и семантике с выбранной записью (и графическим объектом), но это будет настолько медленно, что заранее тянет повеситься.
А зачем Вам понадобился RowID в базовой таблице, если не секрет?
Злобный йожег
gamm
Гуру
Сообщения: 4168
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

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

Сообщение gamm »

agentbond007 писал(а):Здравствуйте!
Подскажите пожалуйста как получить "реальный" RowID из таблицы выбранного объекта. Selection.RowID не подходит!
Спасибо. :?:
что мешает сделать Update Column через меню, вытащить RowID в поле MyRow, и спокойно его использовать до следующего Pack Table?
Аватара пользователя
asgs
Участник
Сообщения: 89
Зарегистрирован: 04 авг 2010, 06:35
Репутация: 1
Контактная информация:

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

Сообщение asgs »

Лично мне показалось, что ТС нужно получить RowID не интерактивно, а программно. В принципе, это уточнение входит в вопрос в моем предыдущем посте. Топикстартер, отзовись ;)
Злобный йожег
Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

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

Сообщение Boris »

gamm писал(а): что мешает сделать Update Column через меню, вытащить RowID в поле MyRow, и спокойно его использовать до следующего Pack Table?
У новых и измененных записей в поле MyRow будет стоять 0.
Valter
Новоприбывший
Сообщения: 2
Зарегистрирован: 03 мар 2011, 13:15
Репутация: 0

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

Сообщение Valter »

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

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

Сообщение agentbond007 »

Valter писал(а):Попробуйте Commandinfo(CMD_INFO_ROWID), правда не уверен что сработает.
Спасибо, данный способ работает, просто нужно проверять какой тип возвращает эта комманда :D
Valter
Новоприбывший
Сообщения: 2
Зарегистрирован: 03 мар 2011, 13:15
Репутация: 0

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

Сообщение Valter »

Ну если 2 строки добавилось в выборку то точно не сработает, это и объясняет мою неуверенность
Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

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

Сообщение Boris »

Если все получилось, или наоборот не получилось, то не сочтите за труд, распишите, что именно искали и как достигли или не достигли результата.
Я так и не понял удается получить RowID исходной таблицы обрабатывая информацию запроса или нет?
Аватара пользователя
agentbond007
Активный участник
Сообщения: 100
Зарегистрирован: 14 дек 2010, 15:14
Репутация: 0

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

Сообщение agentbond007 »

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

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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость