ado 与access数据库表的刷新问题!(25分)

  • 主题发起人 清风徐来
  • 开始时间

清风徐来

Unregistered / Unconfirmed
GUEST, unregistred user!
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('delete from lb where 工号=:no');
adoquery1.Parameters.ParamByName('no').Value:=edit1.text;
adoquery1.ExecSQL;
jm.adotable1.refresh;

为什么在程序运行,当我从数据库中删除一项时,不能从adotable1中看出已经删除,但我打开
access后里面确实删除了!
 
你要不用下面试试

With jm.adoTable1 do
begin
DisableControls;
close;
open;
EnableControls;
end;
 
to :del520
也是 不能解决问题!
 
del520的是正确的。

要不注释掉这两句试试---
// DisableControls;
close;
open;
// EnableControls;
这样会有感觉DBGrid有闪烁。
 
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('delete from lb where 工号=:no');
adoquery1.Parameters.ParamByName('no').Value:=edit1.text;
adoquery1.ExecSQL;
adotable1.Requery();
jm.adotable1.requery();//注意,加这个语句.
 
呵呵,xiaolv 兄说得对,要用 requery()
ADO 中的 refresh 好像有问题
 
还是不行!!!!
改为jm.adotable1.requery();
也没有解决
是不是我的adotable1有什么问题
 
升级一下你的delphi吧.打上二个ADO的补丁.
有可能你的有问题.
 
我用的是D6呀,需要吗? 如果真是那样的话,到什么地方去下载这个D 6 ADO补丁呀,
 
把 ExecSQL 改成 open 看看(ExecSQL 好像是没有返回结果的)
 
不介意的话,把你的源代码发给我,说不定是其它地方有问题,
如果不是,我倒,我也不知道什么地方出问题了。
xiaolv888@etang.com
 
这个可以,你试试:
jm.adotable1.post;
 
试试这个看看行不行!
jm.adotable1.active:=false;
jm.adotable1.active:=true;

 
还是不行!
 
我也出现类似的问题,而且还会出错,我用的是插入功能
错误信息如下
Project ckglxt.exe raised exception class EDatabaseError with message
'ADOQuery1:CommandText does not return a result set'.Process to stopped.
Use step or Run to conntinue.

我用的代码如下
form1.ADOQuery1.close;
form1.ADOQuery1.sql.Clear;
form1.ADOQuery1.sql.add('insert into 产品主档(字段) values(值)');
form1.ADOQuery1.open;
 
把adotable1的连接断开后重新连接!
 
怎么把连接断开,有怎么联上?
 
我解决了,不过办法很土,就是再执行一行adoquery1,把新数据重新显示出来
form1.ADOQuery1.close;
form1.ADOQuery1.sql.Clear;
form1.ADOQuery1.sql.Text:='insert into 产品主档(id,name,number,val) values('''+edit1.Text+''','''+edit2.Text+''','''+edit3.Text+''','''+edit4.Text+''')';
form1.ADOQuery1.ExecSQL;
with form1.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select id as 编号,name as 产品名称,number as 数量,val as 单价 from 产品主档');
open;
end;
 
是顶楼的例子我试过了,没有出现任何错误,至于三楼出现的错误提示,我想是因为
你即然用insert语句,就不能用open方法。只能用execsql.所以,你的问题,不是这的问
题,应是其它有问题,能上QQ吗?用QQ联系吧。
 
顶部