Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.04 c
7-1079364823
Pul
2004-03-15 18:33
2004.05.02
Как отследить запуск и завершение работы DOS-приложения


3-1081245975
andrew31
2004-04-06 14:06
2004.05.02
Как при помощи DBEdit производить редактирование?


1-1082229051
[BAD]Angel
2004-04-17 23:10
2004.05.02
PopUpMenu


6-1078530063
teapot
2004-03-06 02:41
2004.05.02
как перенаправлять сетевой трафик на Делфи?


3-1081343562
wild_arg
2004-04-07 17:12
2004.05.02
Удаление записей из dbf





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский