![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
добрый день
не могу разобраться с такой проблемой, может кто, что подскажет? в дельфях есть небольшая процедура в которой запускается ms sql процедурка и с помощью showmessage я вывожу ее результат переменную session на форме всего 2 объекта это ADOCommand1 и ADODataSet1 Код:
ADOCommand1.ConnectionString:='Provider=SQLOLEDB.1;';
ADOCommand1.CommandText := 'DECLARE @RC int EXEC @RC = select_zzzz ''2011-11-11'',''2020-11-11'',''001'',''1''';
ADODataSet1.Recordset:= ADOCommand1.Execute;
while not ADODataSet1.RecordSet.EOF do begin
showmessage(ADODataSet1.FieldByName('session').asstring);
ADODataSet1.Next;
end;
Если в ms sql процедуре select_zzzz я вставлю просто select *, '1111' as session то в дельфях все срабатывает. Но если в ms sql процедуре я делаю все, что мне надо, а это создаю временную таблицу, в нее с помощью insert into #new_zk select данные из дургой таблицы , и т.д. ввожу нужные данные и в конце тоже делаю select делфи выдает ошибку recordset is not open если процедуру запускать в ms sql query analizer то все нормально выводится |
|
#2
|
|||
|
|||
|
а все забил на это дело и сделал через ADOQuery
может кому пригодится Код:
ADOQuery2.ConnectionString:='Provider=SQLOLEDB.1; .....';
ADOQuery2.SQL.Text:='DECLARE @RC int EXEC @RC = select_zzzz '';
ADOQuery2.open;
ADOQuery2.First;
i:=ADOQuery2.RecordCount;
if (i>0) then begin
while not ADOQuery2.Eof do
begin
showmessage(ADOQuery2.FieldByName('session').Asstring);
ADOQuery2.next;
end;
end;
ADOQuery2.Close;
|