frReport1的Dataset:=frDBDataSet1
  frDBDataSet1的DataSet:=Table1(或者设它的Datasource:=Datasource1,而Datasource1的Dataset:=Table1)
  这时我双击frReport1,进入设计器,在窗体中放置了一个band,类型是主项数据
  又在band中放置了一些memo,用来显示表中的数据。
  有两种设法:1.直接双击memo,在文本编辑框中输入[Table1."fieldname"],
              2.到数据字典里设变量,变量名对应memo的memo,可以随便取名,不需加[],在表达式中写上对应的表的字段名,如[Table1."fieldname"]。
  这两种在运行时好像都没有问题。  但是我使frDBDataSet1的Dataset:=Query1,其他的操作只是把Table1改为Query1,却怎么都不行,报错:‘Query1:No SQL statement available'。  不知在数据源是Query时该如何设置?我上面的设法有没有问题?
  
  希望大侠们不要嫌文章太长,或问题太弱智不屑理我啊!我已经郁闷好长一段时间了:(

解决方案 »

  1.   

    你的query没有设置sql语句或者没有激活数据吧
      

  2.   

    有啊,我只写了很简单的小程序学习使用。
    在FormShow时已经用DBGrid显示了Query查询出的结果,没有问题。顺便说一下,我的是D5,FastReport是2.4版本的。
      

  3.   

    抱歉,没用过fr2.4,现在用fr3.x
    这个和delphi没有关系,应该和你的设置有关系,在仔细看一下你的设置,如主项数据是否对应着frDBDataSet1
      

  4.   

    query的SQL要写,而且要ACTIVE=TRUE
      

  5.   

    你的Query中要写查询语句,
    如Select * from table1 即可!
    其它设置和使用Table一样!
      

  6.   

    谢谢大家的回复!但有的人可能没看清楚,问题还没解决:(我已经用DBGrid显示出了Query的查询结果,结果正确无误,所以关于Query的语句及Active等应该没问题。
    另外,回swei56(泥巴):从设计器里主项数据的band的Datasource中有显示是frDBDataSet1,应该能说明它确实对应着frDBDataSet1吧?我设置中就是参照Table设置的Query,前面也已说过,而且两种方法我都试过,只是memo由相应的[Table1."fieldname"]改为[Query1."fieldname"]。但对Table可以,对Query就是不行!不知以大家的经验,我还可能在哪出了问题呢?
      

  7.   

    大概知道什么原因了,我是用TSession连接的数据库,
    这种连接方式不知为什么,好像对FastReport的Query不起作用,对Table就起作用。
    也就是,打印的数据和Table关联就能正常读取,而和Query关联就会出现‘Query1:No SQL statement available'的出错报告。
    换成ADO连接,则两种方式都可以正确显示了。不知有没有人对TSession的数据库连接有过研究?或者能提供相关资料或文章?
    我想学习一下有关这个组件的用法,十分感谢!
      

  8.   

    不要设置frReport1的Dataset:=frDBDataSet1
    应该设置MasterData1的Dataset:=frDBDataSet1
      

  9.   

    还是没有关于TSession的详细点的资料啊
    问题还没圆满解决,先揭帖了
    希望以后能把问题搞清楚^_^