用TcrpeDS连接数据,出现“未能加载数据厍信息”的错误,请高手指点!!!
  具体如下:
procedure TfrmReport.Button1Click(Sender: TObject);
begin
  Crpe1.ReportName := 'C:\report.rpt';
  Crpe1.Tables[0].DataPointer := CrpeDS1.DataPointer;
  Crpe1.Execute;
end;文件c:\report.rpt 内出错:
  未能加载数据厍信息。
  ‘Tables[0].SetDataPointer <PESetNthTablePrivateInfo>

解决方案 »

  1.   

    楼主可以参考一下,应该是没有连接数据库的问题:
    procedure Tiqcdlg101.HemisphereButton1Click(Sender: TObject);
    begin
    if iqcdlg102.showmodal = mrok then
    begin
        crpe1.Clear;
        if iqcdlg102.RadioGroup1.ItemIndex=0 then
         {If china brach use China_server(China) else use Data_server(HK)}
           Crpe1.reportname:=Extractfilepath(Application.ExeName)+'RPT\iqc101a.rpt'
          else
           Crpe1.reportname:=Extractfilepath(Application.ExeName)+'RPT\iqc101b.rpt';
    //连接数据库
         Crpe1.Connect.ServerName :='data_server' ;
         Crpe1.Connect.UserID :='hod';
         Crpe1.Connect.Password :='hod';
         Crpe1.Connect.DatabaseName :='hod';
         crpe1.selection.formula.clear;
         crpe1.selection.Clear ;
         crpe1.selection.formula.assign(iqcdlg102.reportString);
         if iqcdlg102.RadioGroup1.ItemIndex = 0 then
                Crpe1.Selection.Formula.Add(' and mid({in_tranqc.itemlot},4,1)="B"')
             else  if  iqcdlg102.RadioGroup1.ItemIndex =1 then
                Crpe1.Selection.Formula.Add(' and mid({in_tranqc.itemlot},4,1)<>"L" and mid({in_tranqc.itemlot},4,1)<>"B"');
             if (iqcdlg102.SearchDate1.text<>'') and (iqcdlg102.SearchDate2.text<>'') then
             begin
                  crpe1.execute;
             end;
      

  2.   

    我是用ADOQuery连接数据厍,然后用TcrpeDS组件与Crpe1连接:  ADOQuery1:从厍中取得数据;  CrpeDS1.DataSet :=adoquery1;
      Crpe1.ReportName := 'C:\report.rpt';
      Crpe1.Tables[0].DataPointer := CrpeDS1.DataPointer;
      Crpe1.Execute;ADOQuery1能连接上数据库并取得数据,请问是什么原因出错?
      

  3.   

    自己顶Crpe1.Tables[0].DataPointer:=@(ADODataSet1.recordset);代替 
     
    Crpe1.Tables[0].DataPointer:=CrpeDS1.DataPointer;
      

  4.   

    这样ADO是可以了,可是BDE怎么不可以呢?
    有人知道吗?