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

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

Delphi и Fox [D7, dBase, FoxPro]


caesar ©   (2003-03-31 16:37:00) 

1-я проблема такая. Подключаюсь к «фоксовой» базе данных через ADO VFPOLEDB.1 провайдера. Не могу получить курсор из ADOStoredProc.
К примеру (на стороне VFoxPRO 7):
Cjdf
Parameters A,B,C
…
Return C
Где с – курсор.

А на стороне Delphi 7:
ADOStoredProc.ProcedureName:=’cjdf’;
ADOStoredProc.Parameters.ParamByName(‘a’).Value:=1;
ADOStoredProc.Parameters.ParamByName(‘b’).Value:=1;
ADOStoredProc.Open или ADOStoredProc.ExecProc или ADOStoredProc.Active:=true;
Естественно параметры описаны за ранее.
A – ftInteger;
B – ftInteger;
C – ftVariant; - Другие типы (ftCursor …) выбрать не получается.

2-я Проблема такая. Все та же БД и то же ADO. Пытаюсь выполнить два запроса в ADOQuery.
ADOQuery.Active:=false;
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add(‘SELECT * FROM a.dbf WHERE … INTO CURSOR b;’);
ADOQuery.SQL.Add(‘SELECT * FROM b WHERE … INTO CURSOR c’);
ADOQuery.Active:=true;

Запрос отрабатывает, но вместо курсора «c» выдает курсор «b». На процедуру NextRecordSet ругается, говорит что «Текущий проводник не поддерживает возврата нескольких записей в результате выполнения одного действия».

Пожалуйста подскажите что я неправильно делаю и как можно решить эти проблемы!!!


sniknik   (2003-03-31 16:55:00) [1]

ADOQuery.SQL.Clear;
ADOQuery.SQL.Add(‘SELECT * FROM a.dbf WHERE … INTO CURSOR b;’);
ADOQuery.SQL.Add(‘SELECT * FROM b WHERE … INTO CURSOR c’);
ADOQuery.Active:=true;

вот это в OLEDB провайдере для VFP, не поддерживается (как только столкнулся с ним первое что в глаза бросилось, нет поддержки мультидатасетов)

(а в ODBC - шном есть, схалявили разработчики :-)))

так что решить проблемы можно перейдя на старый недобрый (а кто добрый?) ODBC драйвер. хотя процедуры я там не пробовал.


Наверх

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