Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 05.05.2015, 13:22
tavka tavka вне форума
Прохожий
 
Регистрация: 01.11.2011
Сообщения: 3
Репутация: 10
По умолчанию получить данные из 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  
Старый 06.05.2015, 07:37
tavka tavka вне форума
Прохожий
 
Регистрация: 01.11.2011
Сообщения: 3
Репутация: 10
По умолчанию

а все забил на это дело и сделал через 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;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:47.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter