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

Вниз

ADOCommand   Найти похожие ветки 

 
Леонид   (2007-12-05 19:25) [0]

Не подскажите как можно после INSERT-а узнать ID добавленной строки?

 sql = "INSERT INTO tb (`id`,`value`) VALUES (null,"value")";
 ADOCommand1.CommandText := sql;
 ADOCommand1.Execute;


 
Palladin ©   (2007-12-05 19:27) [1]

так ведь сам же вставил
ID=Null


 
Леонид   (2007-12-05 19:28) [2]

ID - автоинкрементное поле, запрос эквивалент  sql = "INSERT INTO tb (`value`) VALUES ("value")";

null - для наглядности


 
Palladin ©   (2007-12-05 19:31) [3]

select @@Identity


 
Desdechado ©   (2007-12-05 21:04) [4]

> select @@Identity
Это для MSSQL.
У авторя неясно что.
В общем случае решается только, если в таблице есть уникальный ключ, не содержащий поле инкремента. Тогда по нему можно перезапросить вставленное и узнать ID.


 
Юрий Зотов ©   (2007-12-05 21:13) [5]

Если поле автоинкрементное, то select max?


 
palva ©   (2007-12-05 21:18) [6]

> Если поле автоинкрементное, то select max?
Если, конечно, другой пользователь не успел между вашим созданием и запросом создать еще несколько своих записей.


 
Palladin ©   (2007-12-05 21:19) [7]


> Desdechado ©   (05.12.07 21:04) [4]

ну не только MSSQL, это вообще как бы стандарт TSQL


 
Palladin ©   (2007-12-05 21:20) [8]


> palva ©   (05.12.07 21:18) [6]

max вполне можно использовать если оформить это в единой транзакции


 
Desdechado ©   (2007-12-05 21:33) [9]

> max вполне можно использовать если оформить это в единой
> транзакции
Что-то подозрительно это, хоть и не знаю MS, но по идее автоинкремент работает в контексте базы, а не транзакции, иначе бы другие юзеры не могли добавлять до окончания твоей транзакции.


 
Johnmen ©   (2007-12-05 21:34) [10]


> Palladin ©   (05.12.07 21:20) [8]
> max вполне можно использовать
> если оформить это в единой транзакции

Не зависимо от уровня её изоляции? :)


 
Palladin ©   (2007-12-05 22:10) [11]


> Johnmen ©   (05.12.07 21:34) [10]

зависимо, натыкался :)


 
oxffff ©   (2007-12-06 08:41) [12]

RTFM

@@IDENTITY and SCOPE_IDENTITY return the last identity value generated in any table in the current session.
However, SCOPE_IDENTITY returns the value only within the current scope; @@IDENTITY is not limited to a specific scope.


 
Johnmen ©   (2007-12-06 09:19) [13]


> oxffff ©   (06.12.07 08:41) [12]

А как же [4]?


 
Palladin ©   (2007-12-06 09:31) [14]


> oxffff ©   (06.12.07 08:41) [12]

речь не об @@Identity, если что, с ним то все понятно, а об использовании max внутри транзакции...


 
oxffff ©   (2007-12-06 12:25) [15]


> Johnmen ©   (06.12.07 09:19) [13]



> Palladin ©   (06.12.07 09:31) [14]


А как насчет триггера?
Для MSSQL анализ inserted таблицы.


 
Anatoly Podgoretsky ©   (2007-12-06 13:36) [16]

Автор не хочет разглашать базу, а вы тут копья ломаете.


 
KSergey ©   (2007-12-06 14:31) [17]

> Anatoly Podgoretsky ©   (06.12.07 13:36) [16]
> Автор не хочет разглашать базу, а вы тут копья ломаете.

А это прикольно.
Вообще, голубые, простите, занятно активизировались :)


 
Anatoly Podgoretsky ©   (2007-12-06 15:00) [18]

> KSergey  (06.12.2007 14:31:17)  [17]

Сам ты голубой :-)


 
Palladin ©   (2007-12-06 15:15) [19]

Просто у некоторых голубых инет появился :)



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

Форум: "Начинающим";
Текущий архив: 2007.12.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.008 c
2-1196752240
Kolan
2007-12-04 10:10
2007.12.30
Как преобразовать Integer Delphi цвет в Hex для PhotoShop?


15-1196280766
TStas
2007-11-28 23:12
2007.12.30
Насколько вызовы ф-ций тормозят работу программы?


15-1196244352
xayam
2007-11-28 13:05
2007.12.30
посоветуйте хорошую IDE для PHP


6-1176882806
dreamse
2007-04-18 11:53
2007.12.30
Вопрос по компоненту IdTCPClient


2-1197006707
Свой
2007-12-07 08:51
2007.12.30
TQuery ответ и регистр букв





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский