【发布时间】:2012-11-07 23:49:37
【问题描述】:
帮助!!! 当我从 Delphi 调用一个简单 ADOQuery 的预创建报告时,在预创建报告中我没有设置主数据带中的行数,我收到 EOF 错误(EOF OR BOF 为真或当前记录已被删除)。然后报告加载就好了。但是,如果我将数量设置为小于或等于主数据的行数,那么我不会收到该错误。在从 delphi 调用的报告中触发 ado 查询时是否需要知道主记录的数量?这是我用来调用报告的代码:
...
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;
我是使用快速报告的新手(这周是我第一次使用它。我真的很挣扎,所以非常感谢任何帮助)
【问题讨论】:
-
问题与FastReport无关;您收到的错误是 ADO 错误(您的
tfrxAdoDatabase)。这个off-site article 可能会有所帮助。 -
tfrxAdoDatabase 是一个快速报告组件,它使用的查询确实有行,并且来自一个在调用之前没有以任何方式修改其任何表的视图。就像它只是在代码用完时决定中断。
-
我知道是这样,但异常是由 ADO 引发的(正如我在上一条评论中提到的)而不是 FastReport。这是一个ADO 异常。
-
好的,谢谢,很遗憾这篇文章没有太多帮助,但我很感激。
标签: delphi delphi-5 fastreport