Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сохранение результата запроса в Recordset [D6, MSSQL, dBase, FoxPro]


Oksana ©   (2004-08-04 11:36:00) 

Привет :)
есть примерно такой код:
procedure my_RunCommand(SetConnection  : TADOConnection;
                        SqLStringRun  : string);
// выполнение запроса с сохранением его результата в Recordset
begin
 with ADOCommand1 do
 begin
   Connection  := SetConnection;
   CommandText := SqLStringRun;
   ADODataSet1.Recordset := Execute;
 end
end;

ругается так - "...EDatabaseError with message 'ADODataSet1:Recordset is not open'..."

если добавить строку открытия к-л таблицы ADOTable,
привязанной к данному ADOConnection, то ОК.

Можно ли здесь как-то обойтись без открытия  таблицы?
ведь Execute выполняется, а значит (предполагаю) Recordset все таки создается

если можно, то как?
спасибо за внимание


Oksana   (2004-08-04 13:04:00) [1]

хотя, мож и правда работать напрямую с ADODataSet
чего я парюсь через ADOCommand

спасибо за мысль :)


Oksana   (2004-08-04 12:50:00) [2]

>например сразу открыть ADODataSet1
при его открытии требует заполнить CommandText, а не хочется, т.к. использую эту процедуру не раз

ADODataSet1.Connection:= SetConnection;
ADODataSet1.Recordset:= Execute;
не помогает - так тоже пробовалА (я не отношусь к тем "99% женских ников, за которым мужик прячется" © sniknik :))
и SetConnection.Open; тоже не катит

только если открыть таблицу, причем любую, тогда -да,
а так не хочется делать - в данный момент это ни к чему;
похоже, что Connection точно "раскрывается" только если открыть одну из "его" таблиц ?

на счет "чего нужно": получать рекордсет(каждый раз новый) для дальнейшей обработки


sniknik   (2004-08-04 12:09:00) [3]

не проще ли зайти с другого конца? например сразу открыть ADODataSet1.
то что ты тут делаеш муторно и вряд ли тебе нужно. ну если хочеш то добавь например  
ADODataSet1.Connection:= SetConnection;
ADODataSet1.Recordset:= Execute;  
должно сработать. (также ты счас скажеш что хотел совсем другого, скажи тогда чего) вариантов довольно много смотря чего нужно.


Наверх

Титульная страница Поиск, карта сайта Написать письмо