Хранимая процедура возвращает несколько Recordsets
Дано: TADOQuery выполняет хранимую процедуру на сервере MS SQL2000.
Эта процедура возвращает несколько рекордсетов. По этим рекордсетам надо построить отчет, используя FR 3. Как получить доступ ко всем рекордсетам?
Без шаманства получаю только первый рекордсет.
Может кто поделится frxADOStroeProc - если такая существует.
Эта процедура возвращает несколько рекордсетов. По этим рекордсетам надо построить отчет, используя FR 3. Как получить доступ ко всем рекордсетам?
Без шаманства получаю только первый рекордсет.
Может кто поделится frxADOStroeProc - если такая существует.
Комментарии
*********************************************************
ADOProc_->Active = true;
AnsiString resstring = "";
TDataSetProvider *prov = new TDataSetProvider(NULL);//создаем провайдера
prov->DataSet = ADOProc_;
prov->Name = "PrintProv"+AnsiString(GetTickCount());
resstring = prov->Name+";";
ProviderList.push_back(prov);
while (true) //создаем кучу провайдеров по вышеописанной схеме
{
int numrows = 0;
Sleep(10);
TADODataSet* ds = new TADODataSet(NULL);
ds->Recordset = ADOProc_->NextRecordset(numrows);
if(!ds->Recordset)
break;
TDataSetProvider *prov = new TDataSetProvider(NULL);
prov->DataSet = ds;
prov->Name = "PrintProv"+AnsiString(GetTickCount());
resstring = resstring + prov->Name+";";
}
*****************************************************
потом создаешь столько ClientDataSet, сколько у тебя провайдеров, ставишь им провайдера и получаешь по нему данные. И, соответственно, для каждого ClientDataSet создаешь frxDBDataset