1:某个字段可以为空,过了段时间都变成<NULL>了,用查询 X = ''查不到,必须用X is null 才行,有什么办法可以不出现NULL?
2:FASTREPORT如何打印某一数据集的部分内容(比如只打印选中的记录),因为是从表所以不能查询和过滤3:当DataSet的Filtered := True时 DBGridEh的滚动条会失效,如何解决?4:事物是不是必须用SQL语句来操作数据库才有用?我一般都用Append之类的,但是发现出错后事物没有回滚。5:另外求一种查询方法:
通过从表没有的记录查出对应主表的数据,
比如某一表从表为用户交费记录,交费金额有2种100和1000,如何查出只交了100的而没有交1000的用户呢?问题比较多分不多还请各位见谅
现谢谢各位了!!

解决方案 »

  1.   

    1. isnull(x,'') = ''
    2. 把未选中的记录删除 或 做两分来源数据,一份原始的来源数据,用来挑选,然后把选中的数据移动到玉fastreport关联的dataset。
    3. 应该不存在这个问题。请检查是否有disablecontrol未enablecontrol或用
    while dataset.controldisabled do
      dataset.enablecontrol;
    4. 事务是数据库的概念。跟append不搭界,delphi只是通过数据库连接的方法来开启、提交、回滚事务。
    5. 比如 主表 a(用户,...) 从表 b(用户,缴费金额,缴费日期,...),sql如下:
       SELECT * FROM a WHERE 用户     in (SELECT 用户 FROM b WHERE 缴费金额=100)
                         and 用户 not in (SELECT 用户 FROM b WHERE 缴费金额=1000)
      

  2.   

    不出現null可以,數據庫欄位設置個默認值
    或者isnull(x,'')=''做查詢
    如果是大量數據,建議給個默認值,有助於提升查詢速度,我個人不喜歡用in,學會用exists,效率更高
    因為它利用到了index 
      

  3.   

    关于第三个问题 过滤的时候没有disablecontrol哦,其他问题正在测试
    先谢谢了