Главная страница
    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.007 c
3-1187186976
greg123
2007-08-15 18:09
2007.12.30
Использование хранимых процедур в MS SQL SERVER 2000


2-1196782477
Alexey
2007-12-04 18:34
2007.12.30
Как правильно масштабировать форму


9-1164534045
Shell
2006-11-26 12:40
2007.12.30
Конвертация моделей в MD2


15-1195868497
Duo
2007-11-24 04:41
2007.12.30
Как определить, что мышь над TToolButton.


2-1196849548
хоме
2007-12-05 13:12
2007.12.30
Как подставить переменную в SQL запрос?





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