数据库的更新?(100分)

B

baoling

Unregistered / Unconfirmed
GUEST, unregistred user!
一个TADOConnection控件,另两个是 TADOTable控件和ADOQuery控件,他们的Connection属性
都指向前面的TADOConnection,并且打开的是同一个表,通过SQL对该表增加数据,为何
与TADOTable连接的DBGRID看不到更新(增加的数据)?
 
TADOTable要刷新
 
增加之后,commit
然后
TADOTable.refresh;
 
TADOConnection/TADOTable/TADOQuery这三个控件都没有commit方法呀!
如此刷新TADOTable.refresh没有用,并且如果我在TADOQuery中使用SQL删除数据时,
TADOTable.refresh则会
出现" 数据源中此行的键值已被修改或删除。现在本地行被删除"
 
adotable.close;
adotable.open;
 
//更新事件中添加。
adoTable1.close;
adotable1.open;
 

adoTable1.close;
adotable1.open;
现在我就是使用的这招,还要记住当前记录位置,以便恢复,没有更好的方法么?
 
在表中加一个唯一识别的字段
关闭前记录这个值
打开后定位记录,试试
 
adoTable1.close;
adotable1.open;
dbgrid.refresh;
 
和你的ADOConnection的连接方式有关系,去看看李维的《高效率数据库编程》,主要的一个游标和锁定级别的问题。
 
用事物作插入和更新,删除操作。。
lizhongyi的方法可以。。。。
to baoling 试一下在afterpost事件里TADOTable.refresh。。。
 
adoTable1.close;
adotable1.open;
dbgrid.refresh;
 
多人接受答案了。
 
顶部