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

Вниз

id последней добавленной записи ???   Найти похожие ветки 

 
Вася   (2012-06-11 14:24) [0]

В проге определены  
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 14:28) [1]


> SELECT @@IDENTITY as new_rec


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


 
stas ©   (2012-06-11 14:29) [2]

Вася   (11.06.12 14:24)
Я так понимаю это .NET сформировано с автоматически с помощью мастера?


 
Вася   (2012-06-11 14:39) [3]

насколько понимаю, @@IDENTITY вернет 0 в отдельном запросе, правильное значение вернет если в одной транзакции с insert

> Я так понимаю это .NET сформировано с автоматически с помощью
> мастера?

Нет, ручками в lazarus


 
stas ©   (2012-06-11 14:53) [4]

вернет последний вставленный ID  в текущем подключении. Какая СУБД ?


 
Вася   (2012-06-11 14:54) [5]

MS SQL2000


 
Ega23 ©   (2012-06-11 14:58) [6]


> вернет последний вставленный ID  в текущем подключении.


Не болтайте ерундой.


 
stas ©   (2012-06-11 14:59) [7]

Тогда лучше функция SCOPE_IDENTITY() , но так же в отдельном запросе.
Можно и не в отдельном, но нужно получить набор данных. В обычной дельфи это все делается в одном запросе и он возвращает набор данных, как будто бы запрос на Select. В лазарусе не знаю.
А можно еще сделать OUT Parametr
SET :ID = SCOPE_IDENTITY()


 
stas ©   (2012-06-11 15:11) [8]


> Ega23 ©   (11.06.12 14:58) [6]


Областью функции @@IDENTITY является текущий сеанс на локальном компьютере, на котором она выполняется.


 
Вася   (2012-06-11 15:13) [9]


> насколько понимаю, @@IDENTITY вернет 0 в отдельном запросе,
>  правильное значение вернет если в одной транзакции с insert

был не прав, возвращает правильное значение в отдельном запросе, но как он себя поведет если несколько пользователей будет работать? смоделировать пока не могу...


 
stas ©   (2012-06-11 15:19) [10]

Вася   (11.06.12 15:13) [9]
Если триггер будет на вставку, на той таблице, куда добавляются данные- тогда поведет себя не правильно. Для этого надо использовать функцию SCOPE_IDENTITY().


 
Вася   (2012-06-11 15:22) [11]

Ок, понял, спасибо всем



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

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

Наверх




Память: 0.49 MB
Время: 0.177 c
15-1331755496
Но как?
2012-03-15 00:04
2013.03.22
Модальное окно поверх чужого приложения


2-1341647784
Дмитрий2
2012-07-07 11:56
2013.03.22
Помогите с запросом


15-1353474231
Бумбум
2012-11-21 09:03
2013.03.22
Как выделить числа в календаре


2-1331575099
Дмитрий
2012-03-12 21:58
2013.03.22
Проблема к кеширующим прокси на основе IndyHttpProxyServer


2-1339168542
Виктор1985
2012-06-08 19:15
2013.03.22
Как скомпилировать DCU из PAS файла