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

Вниз

TADOCommand.Execute и возвращаемый им RecordSet   Найти похожие ветки 

 
Maxim Volobuev   (2004-04-19 15:35) [0]

Мастера, помогите примерчиком на такую тему: выполняю ADOCommand.Execute с Insertом в таблицу и мне нужно получить свежевставленную запись. Но пример из справки по Execute ADODataSet1.RecordSet := ADOCommand1.Execute; не работает, говорит, что RecordSet должен быть открыт, причем говорит это вне зависимости от того, открыт ADODataSet1 или нет.
Кто это уже делал, напишите пример, как правильно работать с возвращаемым RecordSet.


 
stone ©   (2004-04-19 15:40) [1]

ADODataSet1.RecordSet := ADOCommand1.Execute срабатывает только втом случае, если ADOCommand1.CommandText := "select ...
т.е. результат выполнения обязательно должен вернуть набор данных.


 
Ega23 ©   (2004-04-19 15:45) [2]

но ты можешь объединить INSERT и SELECT в одну транзакцию

Set NoCount ON
Insert into ... Values .....
Set NoCount OFF
Select ... from .... where ....


 
Maxim Volobuev   (2004-04-19 15:59) [3]

Да в общем то дело в том, что в таблице есть Identity поле, которое само проставляется SQL-сервером. И сразу после Insert мне нечего писать в where, я просто не знаю какое значение сервер присвоил этому полю.


 
KSergey ©   (2004-04-19 16:03) [4]

Использовать @@IDENTITY или @@SCOPE_IDENTITY в зависимости от версии сервера (2k - @@SCOPE_IDENTITY, название точно не помню)


 
Maxim Volobuev   (2004-04-19 16:06) [5]

Использовать где!!??


 
Ega23 ©   (2004-04-19 16:10) [6]

Set NoCount ON
Declare @X int
Insert into ... Values .....

SELECT @X=@@IDENTITY

Set NoCount OFF
Select ... from .... where .... and ID=@X


 
Maxim Volobuev   (2004-04-19 16:39) [7]

Огромное спасибо, все заработало!


 
KSergey ©   (2004-04-19 17:00) [8]

Только если сервер 2k - обязательно прочитайте о различиях между @@IDENTITY и @@SCOPE_IDENTITY. Это очень важно!

PS
А если бы сразу почитать - то и

[5] Maxim Volobuev   (19.04.04 16:06)
> Использовать где!!??

не было бы, т.к. там все написано.



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

Форум: "Базы";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.035 c
1-1083091603
Demi
2004-04-27 22:46
2004.05.16
Проблема открытия файла через контекстное меню Windows.


4-1080639585
Kalmykov Sergei
2004-03-30 13:39
2004.05.16
Переобразование переменной.


3-1082600460
Марат
2004-04-22 06:21
2004.05.16
Запрос


11-1069691640
Phantom
2003-11-24 19:34
2004.05.16
Динамически создать пункты Popup-меню


14-1082889813
Nikolay M.
2004-04-25 14:43
2004.05.16
Крутится в голове песТня, а названия не помню :(





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