![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Автоинкремент [D7, MS Access]
dvp © (2004-12-26 19:57:00)Подскажите, как при INSERT'е через ADOCommand узнать сгенерированное значение поле счётчика?
Ну кроме SELECT TOP 1 id FROM table ORDER BY id DESC;
sniknik (2004-12-26 22:37:00) [1]зачем искать, делай следующим запросом после инсерта, уже показанный с ним.
(если нужна именно функция (как описано), то придется свое написать чтото вроде элементарного парсера запроса на onExecuteComplete, и если INSERT присутствует то дополнительный запрос выполнять с последующим изменением своей переменной insert_id, функцией ее возвращать. только это уже будет не от стандартного конекта а от твоего переопределенного и дописанного)
dvp (2004-12-26 21:19:00) [2]sniknik © (26.12.04 21:14) [9]
Хм.... @@IDENTITY говорите ...... а где его найти?
Т.е. SELECT @@IDENTITY даст тот самый id для текущего коннекта?
sniknik (2004-12-26 21:14:00) [3]> Честно говоря не думаю, что Access оперирует понятием "транзакция"
и тем не менее, оно есть.
- ты суслика видиш?
- нет.
- и я нет, а он тем не менее есть.
© ДМБ
> есть возможность после инсерта вызвать mysql_insert_id($connection)
@@IDENTITY это как раз то самое, только непосредственно от движка, в функцию не завернуто. (исправь "упушение" ;о)))
aus (2004-12-26 21:00:00) [4]dvp © (26.12.04 20:57) [7]
оперирует, если не Access, то jet - точно...
aus (2004-12-26 20:57:00) [5]sniknik © (26.12.04 20:51) [5]
и впрямь, отстал я от жизни...
dvp (2004-12-26 20:57:00) [6]Честно говоря не думаю, что Access оперирует понятием "транзакция"
Вот в php+MySQL есть возможность после инсерта вызвать mysql_insert_id($connection), которая вернёт значение последнего сгенерированного счётчика для текущего сеанса. Должно же быть что-то аналогичное в ADO
sniknik (2004-12-26 20:51:00) [7]aus (26.12.04 20:43) [4]
ага в курсе. попробуй.
aus (2004-12-26 20:43:00) [8]sniknik © (26.12.04 20:40) [3]
>Автоинкремент [D7, MS Access]
sniknik (2004-12-26 20:40:00) [9]select @@IDENTITY as ID
aus (2004-12-26 20:19:00) [10]только в одной транзакции, иначе кто-то другой может вставить запись и будет уже не твой id.
aus (2004-12-26 20:18:00) [11]select max(id) from table