Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.091 c
1-1304237779
AlekVolsk
2011-05-01 12:16
2013.03.22
Экспорт в Excel2010: значения NumberFormat ячейки


15-1333528430
Дмитрий С
2012-04-04 12:33
2013.03.22
SizeOf( ж );


1-1295539361
gosha52
2011-01-20 19:02
2013.03.22
Заголовок окна при стиле bsToolWindow в Aero


15-1354034040
Use_R
2012-11-27 20:34
2013.03.22
Яндекс Почта и Одноклассники.


15-1351804905
ПростоФАН
2012-11-02 01:21
2013.03.22
Заказ по дельфи





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский