Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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


Это д.б. в отдельномзапросе на выборку, запускаемом на выполнение послезавершения запроса на вставку.


Наверх

Титульная страница Поиск, карта сайта Написать письмо