|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
получить данные из sql процедуры
добрый день
не могу разобраться с такой проблемой, может кто, что подскажет? в дельфях есть небольшая процедура в которой запускается 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; |