用ado连接access数据库,怎么更新啊?急!(35分)

木工

Unregistered / Unconfirmed
GUEST, unregistred user!
我用adotable和adoquery通过adoconnect连接access数据库
然后,我在数据表里添加了记录,更该了字段
代码中也写了adotable.refresh
可是查询不到新增的记录,怎么回事?
 
检查你的ADOTABLE是不是ltBatchOptimistic方式,改为ltOptimistic试试看
 
应该是 adotable.post; 啊~!
 
表中有索引能用refresh。
建议用adotable.Requery代替adotable.refresh
 
我对问题作一下说明:
当我在access数据表内作了修改的同时,应用程序是打开的.
这时对我修改的数据,我查询不到.
只有关掉应用程序,再重新打开,才能查询到修改的数据.
我的adoconnect一直保持连接.
能不能用什么方法,不需要关闭,重新打开应用程序,而直接查询修改的数据
 

Adoquery。close
Adoquery。open
就可以了
 
ADORequery应该可以,这两天刚试过
 
用refresh
 
refresh 没用,就用close、open就可以了
 
refresh是刷新,即从新从数据库里提取数据到dataset中,
而POST是把更改或增加的数据提交到数据库中。
 
用Open,close,就可以了
 
把ADOConnection的CursorLocation属性改成clUseServer
 
用adoquery吧,
adoquery1.close;
adoquery1.sql.text:='insert into 表 (字段1,字段2) values(更新到字段1的值,更新到字段2的值)';
adoquery1.execsql;
 
我也遇到此问题,post后,adotable.refresh总是出错,是不是要设主键.
 
BDE 控件用Refresh刷新
ADO控件用Requery刷新。
我试过,没错的
 
用ADOQUERY吧!可以用SQL语句,很好用的。
 
With AdoTable1 do
begin
DisableControls;
if Active then close;
Open;
EnableControls;
end;
我也碰到此问题,我就用上面方法。
 
使用 SQL
 
正解如下:
ADOTable1.UpdateBatch;
 
自己试过,用这种方法刷新时,对当前记录号的控制:
var
a:integer;
With AdoTable1 do
begin
a:=recNo;
DisableControls;
if Active then close;
Open;
EnableControls;
recNo:=a;
end;
 
顶部