Delphi 获取临时数据集 ClientDataSet
function GetcdsAccountsData: OleVariant; var ASQLQuery: TSQLQuery; Adsp: TProvider; begin ASQLQuery:=CreateSQLQuery; Adsp:=TProvider.Create(nil); with ASQLQuery do try SQL.Add('Select AccID, pAccID, AccName, AccFullName, Explan, Grade, Property, Detailed, DC, SublegType'); SQL.Add(',DeptAcc, EmplAcc, CorpAcc, ItemAcc, pItemID, Fcy, FcyNo, FcyExrate'); SQL.Add(',Qty, QtyUnit, QtySpecs, QtyPrice,QDigits, PDigits, FDigits'); SQL.Add('from Accounts'); SQL.Add('where SysID=:SysID and Status=''A'''); SQL.Add('and accYear=:accYear'); SQL.Add('Order by AccID'); ParamByName('SysID').AsInteger:=FSysID; ParamByName('accYear').AsInteger:=FLoginDate.Year; Adsp.DataSet:=ASQLQuery; Result:=Adsp.Data; finally Adsp.Free; Free; end; end; function CheckOpencdsAccounts: Boolean; begin if FcdsAccounts=nil then FcdsAccounts:=TClientDataSet.Create(Self); with FcdsAccounts do begin if not Active then begin Data:=GetcdsAccountsData; IndexFieldNames:='AccID'; end; Result:=Active; end; end;