Вниз
Скачать: CL | DM;

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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.025 c
8-1076828761
Cash
2004-02-15 10:06
2004.05.16
? *.xm ?


4-1080640593
Kalmykov Sergei
2004-03-30 13:56
2004.05.16
Потоки


14-1082931343
Yanis
2004-04-26 02:15
2004.05.16
PHP


1-1083225554
Dysan
2004-04-29 11:59
2004.05.16
опредиление кодировки


14-1083132708
Тимохов
2004-04-28 10:11
2004.05.16
Режим пользователя и режим ядра.




   Наверх