Поле ID

MapInfo, MapBasic
Ответить
Аватара пользователя
Catharsis
Активный участник
Сообщения: 190
Зарегистрирован: 18 дек 2008, 14:45
Репутация: 22
Откуда: Воронеж
Контактная информация:

Поле ID

Сообщение Catharsis »

Добрый вечер участникам форума! Подскажите пожалуйста как сделать в МИ, чтобы имеющееся поле ID заполнялось автоматически при создании новых объектов по порядку?
cogito ergo sum
Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

Re: Поле ID

Сообщение Boris »

нет ни одного варианта, который бы не требовал программирования, тем более с перехватом конца редактирования. поэтому стандартными средствами - нельзя. правда в том, что мапинфо это поле и сама автоматом заполняет, только не показывает. поле называется rowId и представляет собой скрытую колонку.
Аватара пользователя
Olga_@@@
Гуру
Сообщения: 715
Зарегистрирован: 24 фев 2009, 15:42
Репутация: 0
Ваше звание: городошник
Откуда: Екатеринбург
Контактная информация:

Re: Поле ID

Сообщение Olga_@@@ »

Посмотрите, может такой вариант подойдет:
Таблица > Обновить колонку
внести значения rowID в колонку id

Если после этого продолжить добавление объектов, то автонумерации все равно не получится. Поле id будет заполняться нулями. Но, обновить значения в колонке id это секундное дело. Но, после удаления объектов и упаковки таблицы, при обновлении поля индексы объектов могут измениться
19.04.png
19.04.png (23.24 КБ) 11443 просмотра
У меня из Apple дома только компот.
Аватара пользователя
Catharsis
Активный участник
Сообщения: 190
Зарегистрирован: 18 дек 2008, 14:45
Репутация: 22
Откуда: Воронеж
Контактная информация:

Re: Поле ID

Сообщение Catharsis »

2 Boris & Olga
Спасибо за советы!
cogito ergo sum
SergS
Активный участник
Сообщения: 120
Зарегистрирован: 14 апр 2011, 13:24
Репутация: 5
Откуда: Екатеринбург

Re: Поле ID

Сообщение SergS »

добавлю свои пять копеек:

поле rowid всегда в таблице есть и доступно для использования, т.е. его вроде уже и не надо нигде сохранять. а чтоб было видно его (просто видеть, контролировать.....) можно в окне списка:
правой клавишей мыши -> показывать поля -> в левом списке (поля в таблице) -> Выражение (в самом низу) -> в поле "Введите выражение" ввести rowid -> Ок -> для удобства переместить получившееся rowid в самый верх в начало списка (это в правом списке "колонки списка"). Все вроде. автоматически будет отслеживаться добавление строк.
Возможны весьма забавные эффекты (следствие природы rowid):
имеем таблицу из 100 строк, добавляем 2 строки, получаем rowid: ...100, 101, 102. удаляем 101-ю строку (не сохраняя изменения), имеем ...100,__,102. Теперь сохраняем таблицу: строка с номером 102 меняет rowid на 101. Т.е. ликвидируются все следы несохраненных изменений.
Аватара пользователя
Olga_@@@
Гуру
Сообщения: 715
Зарегистрирован: 24 фев 2009, 15:42
Репутация: 0
Ваше звание: городошник
Откуда: Екатеринбург
Контактная информация:

Re: Поле ID

Сообщение Olga_@@@ »

Да, получилось.
Только надо еще поставить галку - Сохранить как стандартный вид Списка.
Обычное сохранение таблицы не помогает
У меня из Apple дома только компот.
SergS
Активный участник
Сообщения: 120
Зарегистрирован: 14 апр 2011, 13:24
Репутация: 5
Откуда: Екатеринбург

Re: Поле ID

Сообщение SergS »

Olga_@@@ писал(а):Да, получилось.
Только надо еще поставить галку - Сохранить как стандартный вид Списка.
Обычное сохранение таблицы не помогает
ну, у меня такой галки нету - остановился на 8-й версии MI. :)
Olga_@@@ - если не трудно, поместите здесь, или еще как нибудь, чтоб я мог посмотреть, содержимое tab-файла, которое получается в результате "Сохранить как стандартный вид Списка", или, может, это в где-нить в док-е описано?
Аватара пользователя
Olga_@@@
Гуру
Сообщения: 715
Зарегистрирован: 24 фев 2009, 15:42
Репутация: 0
Ваше звание: городошник
Откуда: Екатеринбург
Контактная информация:

Re: Поле ID

Сообщение Olga_@@@ »

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

Примечание: точка 7 была удалена
19.041.png
19.041.png (36.86 КБ) 11396 просмотров
Вложения
TAB.zip
(2.12 КБ) 394 скачивания
У меня из Apple дома только компот.
SergS
Активный участник
Сообщения: 120
Зарегистрирован: 14 апр 2011, 13:24
Репутация: 5
Откуда: Екатеринбург

Re: Поле ID

Сообщение SergS »

Olga_@@@ - спасибо
Аватара пользователя
Catharsis
Активный участник
Сообщения: 190
Зарегистрирован: 18 дек 2008, 14:45
Репутация: 22
Откуда: Воронеж
Контактная информация:

Re: Поле ID

Сообщение Catharsis »

Скажите, пожалуйста, имеется ли встроенная возможность начать отсчет ID с n-го числа?
cogito ergo sum
Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

Re: Поле ID

Сообщение Boris »

нет, не имеется.
Andrew
Активный участник
Сообщения: 134
Зарегистрирован: 01 окт 2009, 08:52
Репутация: 3
Откуда: Москва

Re: Поле ID

Сообщение Andrew »

Только если идти ручным способом, как говорила Olga_@@@.
Аватара пользователя
Catharsis
Активный участник
Сообщения: 190
Зарегистрирован: 18 дек 2008, 14:45
Репутация: 22
Откуда: Воронеж
Контактная информация:

Re: Поле ID

Сообщение Catharsis »

А если в поле значение ввести "RowID + n"...
P.S. и можно ли сделать вместо десятичного - шестнадцатеричное исчисление поля?
cogito ergo sum
Andrew
Активный участник
Сообщения: 134
Зарегистрирован: 01 окт 2009, 08:52
Репутация: 3
Откуда: Москва

Re: Поле ID

Сообщение Andrew »

Catharsis писал(а):А если в поле значение ввести "RowID + n"...
об этом и говорил.
Аватара пользователя
Catharsis
Активный участник
Сообщения: 190
Зарегистрирован: 18 дек 2008, 14:45
Репутация: 22
Откуда: Воронеж
Контактная информация:

Re: Поле ID

Сообщение Catharsis »

"RowID + n" вроде получается... спасибо))
cogito ergo sum
Ответить

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

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

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