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;
原文地址:https://www.cnblogs.com/CNQCJ/p/4355126.html