for m := 0 to nColumns do
varResultSet[m, 0] := ADataset.Fields[m].DisplayLabel;
{ Populate from result set. }
ADataset.First;
nCurRec := 1; { Current record number. }
while not ADataset.Eof do begin
{ Put in field values. }
for m := 0 to nColumns do
varResultSet[m, nCurRec] := ADataset.Fields[m].Value;
ADataset.Next;
Inc(nCurRec);
end;
except
on E: Exception do
raise Exception.Create('CreateVarArrayFromDataset() - ' +
IntToStr(nRecords) +
' rec,'+IntToStr(nColumns)
+'cols,'+E.Message);
end;
end;
function TYxCy_SupplySystemMain.SelectTable(
const TableName: WideString): OleVariant;
begin
try
with AQ_SelectTable do
begin
Close;
SQL.Text:='SELECT * FROM '+TableName;
Open;
Result:=DSP_SelectTable.Data;
end;
AQ_SelectTable.Close;
SetComplete;
except
SetAbort;
end;
end;
中间层:
ADOConnection->ADOQuery->DataSetProvider
过程:
function TYxCy_SupplySystemMain.SelectTable(
const TableName: WideString): OleVariant;
begin
try
with AQ_SelectTable do
begin
Close;
SQL.Text:='SELECT * FROM '+TableName;
Open;
Result:=DSP_SelectTable.Data;
end;
AQ_SelectTable.Close;
SetComplete;
except
SetAbort;
end;
end;