用Query对Paradox表进行查询,在DBGrid中不显示查询结果,请求你的帮助。(100分)

  • 主题发起人 主题发起人 dabaosod
  • 开始时间 开始时间
D

dabaosod

Unregistered / Unconfirmed
GUEST, unregistred user!
我用Query对Paradox表进行查询,可以查询记录,但是找到记录后在DBGrid中只显示一条
空白记录。还有怎么可以将所有符合条件的记录都显示在DBGrid中,我没有对Paradox表
建立索引,不知是否有关系。希望得到你的帮助为感。
 
应该不会有这样的问题的
query与table的用法是并不多的,dbgrid与之相连,中间都要通过一个datasource,
不知你是否这样设置了。
另外,query在SQL语句变化后,应执行一次exesql。
 
放一个datasource
dbgrid.datasource设置为datasource1
datasource1的dataset设置成你的query
把你的query的active设为true就可以看到你的记录了
 
Query的sql是select * from tablename并且没有where条件么!?
 
可能的原因:
1、Query : Select 本身由于 where 的限制,没有返回结果集
2、DBGrid 的使用方法应该是:
Query --> DataSource --> DBGrid 。
DataSource 的 DataSet 属性指向 Query ,DBGrid 的 DataSource 属性指向 DataSource 控件,
Query Open 之后,应该能看到结果。
 
用fillter试试
 
你要在每次显示最新记录需要有这些语句
当然上面他们说的DATASOURCE也是要设置的,呵呵
your_query.close;
your_query.open;//重新打开一次
 
你明确query查到数据了吗
你的情况最像是query返回一个空数据集
在open之后加一句query.isempty看看是不是空

最用可能的就是你的where子句有问题,查不到数据
 
和数据库连上了吗?把QUERY1的ACTIVE属性设为TRUE,DBGrid 中可以看到数据吗?
如果可以,那一定是你的SQL语句有问题。给你一段代码:
query1.close;
query1.sql.clear;
query1.sql.add('select * from tablename where name=aaa');
query1.open;
注:tablename 为你的表名 name为你的表内字段名 aaa为字段置
 
多人接受答案了。
 
后退
顶部