当然不可以了,你肯定用的是
AdoTable.post;
这样,就没有提交上去,试一试如下:
procedure TForm1.Button1Click(Sender: TObject);
begin
adotable1.UpdateBatch//不用Post;
adotable1.UpdateRecord;//如果用post,则用它就可以了;
end;
AdoTable.post;
这样,就没有提交上去,试一试如下:
procedure TForm1.Button1Click(Sender: TObject);
begin
adotable1.UpdateBatch//不用Post;
adotable1.UpdateRecord;//如果用post,则用它就可以了;
end;
不过我记得以前用了dynamic好象也没有用。不知道为什么。
你可以先试一试更新对不对:)
其实,应该就是没有进行更新,没有进行及时的将绶存中的数据写到库里边,关闭程序时,才写进行的;这样试一试吧
然后启动timer中写入更新语句就可以了,保证对的;
你所说的更新是用REFRESH吗?我以前在ADOTABLE。POST;后面跟着用ADOTABLE。REFRESH。系统总提示出错,不知为何?另外,据我所知UpdateBatch方法是对整个数据表进行更新,当数据量大时,会不会效率很低?请教小小或其它高手,我怎样对刚写入的数据有效进行更新,及时的将绶存中的数据写到库里边。这是我很久以来的梦想。(不好意思,我太菜了)以前我是学VB 的,在VB中,我用DAO。用得很顺利,但转到DELPHI后,一直被DELPHI中的ADO搞得头大,关键问题是往数据库中写了东东,但往往总是不立即更新,引发很多错误,我现在边学DELPHI边用它重写我以前用VB 作的一个程序,本应早就完工,但总是被更新问题卡住。看来此问题不解决,我就没法更快地往前走了,多谢小小帮助!
CLOSE;
OPEN;
呵呵,但是一个重新连接过程也有点浪费呀;
游标类型为服务器型则使用UpdateBatch
游标类型为其它则使用UpdateRecord
在这里的结论是:在有可能有不同窗体或不同程序对同一个数据库进行写操作的情况下,不管哪个窗体(或程序),在每次要对此数据库进行读写操作前后应把进行操作的数据控件进行CLOSE及OPEN操作,以更新数据库。 不知这个结论是否正确????
另外问一下,这样的一个以数据控件CLOSE又OPEN的过程是否有副作用,即太耗资源?谢谢各位。