2012-11-07 76 views
0

幫助!!! 當我調用一個預先創建的報表,它是Delphi的一個簡單的ADOQuery,並且在預創建的報表中,我沒有設置主數據帶中的行數,我得到一個EOF錯誤(EOF或BOF爲true或當前記錄已被刪除)。然後報告加載得很好。但是,如果我設置的數量少於或等於主數據的行數,那麼我不會得到那個錯誤。在從delphi調用的報告中觸發ado查詢時,是否需要知道主記錄的數量?這裏是我使用的調用報告的代碼:EOF錯誤Delphi快速報告4

... 

var Connection1 : tfrxAdoDatabase; //connection variable 
    Query1 : tfrxADOQuery; 
... 



with tfrxReport.create(self) do 
    try 
     //Load Report 
     LoadFromFile(ReportName); 
     //load connection properties 
     Connection1 := FindObject('Connection1') as tfrxAdoDatabase; 
     //define connection username and password 
     Connection1.setlogin('sysdba','BLAHBLAH'); 
     // prepare and show report 
     if Preparereport then 
     ShowPreparedReport; 
    finally 
     end; 

我是全新的使用快速報告(本週是我用它第一次我真的掙扎,因此任何幫助,將不勝感激。 )

+1

該問題與FastReport無關;你得到的錯誤是一個ADO錯誤(你的'tfrxAdoDatabase')。這[異地文章](http://classicasp.aspfaq.com/general/why-do-i-get-bof-or-eof-errors.html)可能會有所幫助。 –

+0

tfrxAdoDatabase是一個快速的報表組件,其使用的查詢具有行,並且來自未在調用之前以任何方式修改其任何表的任何表的視圖。它就像它只是在代碼耗盡時決定中斷。 – Tidmore

+2

我知道這是事實,但ADO提出異常(正如我在最後一條評論中提到的)而不是FastReport。這是** ADO異常**。 –

回答