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

Вниз

Autoincrement ID   Найти похожие ветки 

 
Stratos ©   (2004-03-26 05:40) [0]

Как при работе с БД Paradox получить последний ID, сгенерированный autоincrement полем после вызова Insert()?
Использую TTable.


 
Fay ©   (2004-03-26 06:07) [1]

В общем виде - никак. Во всяком случае свой. Даже если Вас устроит чужой, то "грязное чтение" подос№ёт обязательно.
НО. Если Вы пашете в одиночестве, тогда сходите в конец датасета по возратающему индексу по автоинкременту. Там в конце он и живёт. Если не переехал в начало (по убывающему) 8).


 
Stratos ©   (2004-03-26 06:20) [2]

Дело в том, что эта задача вставала уже неоднократно.
Раньше я ее решал как "SELECT MAX(ID) FROM mytable".
Но это ИМХО криво...
Странно, что не предусмотрена стандартная функция для такой задачи - встречается ведь часто...

А при попытке считать поле сразу после Insert возвращается 0...
:(


 
Fay ©   (2004-03-26 06:27) [3]

Ничего умнее, чем "слазь уже с рагадоха!" посоветовать не могу.
И не собираюсь 8)


 
ЮЮ ©   (2004-03-26 06:43) [4]

IMHO, это проблема не Paradox-а, а Increment-а.


 
Fay ©   (2004-03-26 06:46) [5]

Это проблемы программиста/пользователя. Рагадоху и инкременту всё по барабану (включая барабан)


 
Stratos ©   (2004-03-26 06:56) [6]

ага, по барабану...
но к сожалению не мне решать Парадокс/не Парадокс...
ну что ж - "SELECT MAX(ID) FROM mytable". и вперед.
Спасибо всем.

Если все же кто найдет - ответьте.


 
Fay ©   (2004-03-26 07:07) [7]

"сразу после Insert" - это когда?


 
Fay ©   (2004-03-26 07:15) [8]

Я тут тестанул с AfterPost-ом. Всё пучком.


 
Stratos ©   (2004-04-04 21:17) [9]

Спасибо :)


 
LaidBack   (2004-04-05 09:02) [10]

Самый быстрый способ - создать отдетьный TTable для этой таблицы и каждый раз перед тем как добавить запись делать следующее с ним:

TblAutoInc.Active := True;
TblAutoInc.Last;
LastAutoValue := TblAutoInc.FieldByName("ID").AsInteger;
TblAutoInc.Active := False;


Разумеется, по полю ID нужен ключ.


 
Fay ©   (2004-04-05 09:05) [11]

А нельзя взять значение а.и. поля на AfterPost-е? Неужели с 9999 раз медленнее будет?



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

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

Наверх




Память: 0.49 MB
Время: 0.048 c
14-1081681535
RealRascal
2004-04-11 15:05
2004.05.02
Как сделать чтобы при копировании в буфер


1-1081969220
/\_A_M_E_P
2004-04-14 23:00
2004.05.02
Проблема при минимизации окна.


14-1081411922
vopros
2004-04-08 12:12
2004.05.02
Слетал я в Киев на выходных.Понравилось обалденно.


3-1081229956
Russko
2004-04-06 09:39
2004.05.02
Ошибка при открытии БД


14-1081598796
Piter
2004-04-10 16:06
2004.05.02
Регистрация нового домена