Главная страница
    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
15-1195868497
Duo
2007-11-24 04:41
2007.12.30
Как определить, что мышь над TToolButton.


9-1164757810
_Andru_
2006-11-29 02:50
2007.12.30
Кому-то нужны сырцы двигла?=)


6-1177047641
tytus
2007-04-20 09:40
2007.12.30
Indy 10 - Как узнать, что клиент отключился? (клиент - в dll)


15-1196037648
PiterPen
2007-11-26 03:40
2007.12.30
Компиляция функций с использованием SSE и 3DNow!


6-1176750778
dRake
2007-04-16 23:12
2007.12.30
Нужна документация по сокетам (+)





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