Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.13;
Скачать: CL | DM;

Вниз

Как узнать значение autoincrement поля в IB5   Найти похожие ветки 

 
Nikola62   (2003-01-29 00:51) [0]

В таблице имеется поле с автоувеличением (через триггер). Как после добавления новой записи в таблицу узнать значение этого поля?


 
Наталия ©   (2003-01-29 05:44) [1]

Можно узнать ДО добавления записи в таблицу, а затем добавить запись с этим значением.


 
AlexSerp ©   (2003-01-29 09:57) [2]

Сделать запрос поиска записи в таблице уникальному ключу, а там и взять значение нужного поля.
Если нет уникального поля, то можно сделать запрос по нескольким полям, которые будут однозначно указывать на эту запись.

Саня


 
Anatoly Podgoretsky ©   (2003-01-29 10:04) [3]

AlexSerp © (29.01.03 09:57)
Не по нескольким поля, а по всем.

Nikola62 (29.01.03 00:51)
Если тебе так нужен этот номер в тот момент, то читай Наталия © (29.01.03 05:44), у тебя в данном случае неверный дизайн.


 
Johnmen ©   (2003-01-29 10:19) [4]

Еще одна разновидность решения - вставлять только с помощью ХП, которая будет возвращать необходимое значение...


 
AlexSerp ©   (2003-01-29 10:31) [5]

Anatoly Podgoretsky © (29.01.03 10:04)
Согласен.

Саня


 
passm ©   (2003-01-29 10:37) [6]

Anatoly Podgoretsky © (29.01.03 10:04)> Не обязательно неверный дизайн.
Если сидит куча пользователей и набирают документы (приход, расход...) вариант с поиском по всем полям в данном случае не подходит, поскольку теоретически возможны совпадения.
Здесь позвольте отойти от IB и генераторов. Мне понравилось решение в DB2. Имеется функция GENERATE_UNIQUE(), которая всегда возвращает уникальное значение типа CHARACTER(13). Для генерирования результата берется CURRENT TIMESTAMP, номер сесси пользователя и немного случайной информации. Т.о. при создании нового документа беру:
SELECT NUM.NUM
FROM (VALUES(GENERATE_UNIQUE())) AS NUM(NUM)
И идентификатор для уникального значения и дальнейшего поиска по нему готов.
К чему это я: может, можно написать подобную UDF для IB и использовать подобный механизм в таблицах, где поиск по неключевым полям не гарантирован.


 
JibSkeart ©   (2003-01-29 10:43) [7]

А можно еще из таблички брать максимальный ключ
а новый ключ инкременировать на 1


 
passm ©   (2003-01-29 10:52) [8]

JibSkeart © (29.01.03 10:43)> Только в однопользовательском режиме.



Страницы: 1 вся ветка

Текущий архив: 2003.02.13;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.011 c
3-38071
Новичек
2003-01-25 14:27
2003.02.13
Есть ли способ работы с Paradox без BDE?


14-38471
Jakommo
2003-01-29 12:58
2003.02.13
Свой Shell как средство предохранения от юзверей.


3-38038
Шаповалов Кирилл
2003-01-29 10:53
2003.02.13
Grid.SelectedRows


1-38153
AlexanderSK
2003-02-04 12:50
2003.02.13
Разбиение приложение на модули


3-38023
Roma111
2003-01-29 10:26
2003.02.13
Импорт данных в IB6