dbgrid显示记录重复问题(100分)

  • 主题发起人 主题发起人 swns
  • 开始时间 开始时间
S

swns

Unregistered / Unconfirmed
GUEST, unregistred user!
delphi中的用dbgrid1通过datasoure与talbe1连接,table1连接数据库中的表,<br>当对dbgrid1编辑时,当数据较多时,经常会出现修改后即在下方出现重复记录,表加上索引仍然会,必须中编辑保存后进行Refresh,但这样一来,修改过程就显得非常慢,修改一条记录需等上几秒才能反应,数据越多越慢,该怎样解决?
 
確認ADO聯接是否合理<br>一般<br>DBGrid1.DataSource :=DataSource1;<br>DataSource1.DataSet :=ADOQuery1<br>1.數據重復查看TABLE是否有重復記錄,,若有和SQL將過濾.<br>2.數據太多的而慢的話,或以加上這兩句 &nbsp;<br>ADOQuery1.DisableControls;<br>ADOQuery1.EnableControls;<br>數據實在太多請加上條件查詢
 
ADOQuery1.DisableControls;<br>ADOQuery1.EnableControls;<br>只是让数据集断开与DbGrid的链接。与慢没什么关系吧?
 
我是用table1直接用表联系,然后用dbgrid与之关联直接修改表数据,而不是用query修改
 
table要加上主键
 
table 加上主键,不就是加上索引<br>修改数据速度应该还是一样
 
ADOQuery1.DisableControls;<br>一段程序<br>ADOQuery1.EnableControls;
 
主键和索引怎么会是一回事?<br>有主键记录是不能得重复的.<br>没主键只有索引,可以有重复记录(唯一索引例外)<br><br>况且, 别人的建议总该试一下不行再说吧?<br>另外, 主键不要用自增ID
 
xibaixin说的对。<br>ADOQuery1.DisableControls先断开连接<br>后<br>ADOQuery1.EnableControls就可以了。<br>速度会差很多
 
就是,别听楼上的瞎说。<br>DisableControls和EnableControls主要是用于在后面用代码操作DataSet来加快速度的,至于都是用户用到DBGrid了,那就不要用这个代码。<br>就是在DataSet上加上主键就可以了。
 
DisableControls和EnableControls可不是加快速度哟~~!只是界面给用户一个假象,其实速度问题根本没解决,我觉得是楼主数据结构及数据库控制上的问题,与是不是有重复记录无关.
 
你那是只是顯示的問題,不要在DBGrid中直接修改.
 
是的,就是dbgrid显示问题,为了这个显示问题我使程序复杂了许多,包括建索引,用refersh都是用了为解决dbgrid在修改或新增数据后出现数据显示重复的问题.<br>至于建主键,倒确实比建索引好一些,起码快一些,但是新增记录时,如果不用table1.colse,再table1.open还是会出现显示重复的问题.<br>压抑啊!
 
而且,用table1.close再用table1.open,我又必须重新定位刚才修改的记录,真麻烦!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部