全部家当97分求问:FASTREPORT打印部分内容/DBGridEh的滚动条会失效/事物是不是必须用SQL语句来操作数据库才有用等几个问题

时间:2022-07-10 01:04:06
1:某个字段可以为空,过了段时间都变成<NULL>了,用查询 X = ''查不到,必须用X is null 才行,有什么办法可以不出现NULL?


2:FASTREPORT如何打印某一数据集的部分内容(比如只打印选中的记录),因为是从表所以不能查询和过滤

3:当DataSet的Filtered := True时 DBGridEh的滚动条会失效,如何解决?

4:事物是不是必须用SQL语句来操作数据库才有用?我一般都用Append之类的,但是发现出错后事物没有回滚。

5:另外求一种查询方法:
通过从表没有的记录查出对应主表的数据,
比如某一表从表为用户交费记录,交费金额有2种100和1000,如何查出只交了100的而没有交1000的用户呢?

问题比较多分不多还请各位见谅
现谢谢各位了!!

8 个解决方案

#1


isnull(x,'')

#2


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)

#3


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

#4



isnull(?,'')=''

#5


引用 2 楼 truexf 的回复:
1. isnull(x,'') = ''
2. 把未选中的记录删除 或 做两分来源数据,一份原始的来源数据,用来挑选,然后把选中的数据移动到玉fastreport关联的dataset。
3. 应该不存在这个问题。请检查是否有disablecontrol未enablecontrol或用
while dataset.controldisabled do
  dataset.enablecon……


学习了~

#6


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

#7


继续顶,比较急的问题,还请各位高抬贵手

#8


问题 1  2  5已解决,非常感谢,还有 3  4望大家帮帮忙

#1


isnull(x,'')

#2


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)

#3


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

#4



isnull(?,'')=''

#5


引用 2 楼 truexf 的回复:
1. isnull(x,'') = ''
2. 把未选中的记录删除 或 做两分来源数据,一份原始的来源数据,用来挑选,然后把选中的数据移动到玉fastreport关联的dataset。
3. 应该不存在这个问题。请检查是否有disablecontrol未enablecontrol或用
while dataset.controldisabled do
  dataset.enablecon……


学习了~

#6


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

#7


继续顶,比较急的问题,还请各位高抬贵手

#8


问题 1  2  5已解决,非常感谢,还有 3  4望大家帮帮忙