![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
id последней добавленной записи ???
Вася © (2012-06-11 14:24:00)В проге определены
sqlquery1.SQL.text, sqlquery1.deleteSQL.text, sqlquery1.updateSQL.text,
а также
sqlquery1.insertSQL.text:='insert into sp_avto (nameavto, groupid, typid, prim, datspisan) values (:nameavto, :groupid, :typid, :prim, :datspisan) SELECT @@IDENTITY as new_rec';
так вот как мне вытянуть после ApplyUpdates значение поля new_rec?
Вася (2012-06-11 15:22:00) [1]Ок, понял, спасибо всем
stas (2012-06-11 15:19:00) [2]Вася (11.06.12 15:13) [9]
Если триггер будет на вставку, на той таблице, куда добавляются данные- тогда поведет себя не правильно. Для этого надо использовать функцию SCOPE_IDENTITY().
Вася (2012-06-11 15:13:00) [3]
> насколько понимаю, @@IDENTITY вернет 0 в отдельном запросе,
> правильное значение вернет если в одной транзакции с insert
был не прав, возвращает правильное значение в отдельном запросе, но как он себя поведет если несколько пользователей будет работать? смоделировать пока не могу...
stas (2012-06-11 15:11:00) [4]
> Ega23 © (11.06.12 14:58) [6]
Областью функции @@IDENTITY является текущий сеанс на локальном компьютере, на котором она выполняется.
stas (2012-06-11 14:59:00) [5]Тогда лучше функция SCOPE_IDENTITY() , но так же в отдельном запросе.
Можно и не в отдельном, но нужно получить набор данных. В обычной дельфи это все делается в одном запросе и он возвращает набор данных, как будто бы запрос на Select. В лазарусе не знаю.
А можно еще сделать OUT Parametr
SET :ID = SCOPE_IDENTITY()
Ega23 (2012-06-11 14:58:00) [6]
> вернет последний вставленный ID в текущем подключении.
Не болтайте ерундой.
Вася (2012-06-11 14:54:00) [7]MS SQL2000
stas (2012-06-11 14:53:00) [8]вернет последний вставленный ID в текущем подключении. Какая СУБД ?
Вася (2012-06-11 14:39:00) [9]насколько понимаю, @@IDENTITY вернет 0 в отдельном запросе, правильное значение вернет если в одной транзакции с insert
> Я так понимаю это .NET сформировано с автоматически с помощью
> мастера?
Нет, ручками в lazarus
stas (2012-06-11 14:29:00) [10]Вася (11.06.12 14:24)
Я так понимаю это .NET сформировано с автоматически с помощью мастера?
Сергей М. (2012-06-11 14:28:00) [11]
> SELECT @@IDENTITY as new_rec
Это д.б. в отдельномзапросе на выборку, запускаемом на выполнение послезавершения запроса на вставку.