Главная страница
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.084 c
15-1341774208
Invoker
2012-07-08 23:03
2013.03.22
Отобразить все поля структуры.


2-1329813740
Vasili Lubavin
2012-02-21 12:42
2013.03.22
Помогите с алгоритмом


15-1350904692
Newersim
2012-10-22 15:18
2013.03.22
Помогите перевести пару строк на с++


15-1347959351
DevilDevil
2012-09-18 13:09
2013.03.22
Методы компиляции и оптимизации машинных команд


3-1282589023
ddd329
2010-08-23 22:43
2013.03.22
Не исключаются BLOB - поля