Главная страница
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.048 c
15-1337354166
Дуремар
2012-05-18 19:16
2013.03.22
Сломал клаву?


15-1350908665
Grimm375
2012-10-22 16:24
2013.03.22
перевести на английский


4-1261646635
lunev_denis
2009-12-24 12:23
2013.03.22
Обновление информации в реестре


15-1343214796
AV
2012-07-25 15:13
2013.03.22
Торможу.. с перекрытием в наследнике функции


2-1329332051
Zheksonz
2012-02-15 22:54
2013.03.22
Быстрое сохранение параметров в файл