Главная страница
    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.08 c
15-1344529402
Пользователь интернета
2012-08-09 20:23
2013.03.22
помогите узнать фильм :-)


3-1278782038
TechnoDreamer
2010-07-10 21:13
2013.03.22
DBX Error: Unsupported field type


2-1331031997
Scott Storch
2012-03-06 15:06
2013.03.22
приводить к типу DWORD


9-1193310589
fars
2007-10-25 15:09
2013.03.22
Программирование логических игр


15-1351950219
Wonder
2012-11-03 17:43
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский