比如这样:
adotable.append
ado.fieldbyname(字段名):=xxxx
.....
adotable.post
这时我再把adoQuery刷新,或先close再open,但发现在表格dbgrid中却没有新加入的记录,如果是用adotable删除记录也是,但多刷新几次就有了,就是说好像要过五秒钟左右才生效?
这是什么原因呢?
我就想要立即就可以用adoQuery查询到,该怎么实现呢?
我也试着不用adoTable来修改或增加记录,改用adoQuery,并用Sql语句中的insert来实现,但结果是一样的,都好像不是立即生效,要过几秒钟,或多查询几次。
13 个解决方案
#1
Active := False;
Active := True;
就该可以的
我用着却没有这样的问题出现哦
http://lysoft.7u7.net
Active := True;
就该可以的
我用着却没有这样的问题出现哦
http://lysoft.7u7.net
#2
adotable.delete
adotable.insert
ado.fieldbyname(字段名).value:=xxxx
.....
adotable.append
adotable.refresh
adotable.insert
ado.fieldbyname(字段名).value:=xxxx
.....
adotable.append
adotable.refresh
#3
最有效:
adotable.close;
adotable.open;
adotable.close;
adotable.open;
#4
添加后
ADOQuery.Requery
ADOQuery.Requery
#5
其实,朋友,你只要用一个adoquery就完全可以办到了呀。因为里面有SQL语句呀。
在SQL语句上变化,比你多用一个控件要好得多呀。
或者是一个主adoquery1 一个tempadoquery 主 adoquery 是用一显示的。那个tempadoquery 是用来操作的。操作完后 adoquery1.close adoquery1.open
就可以了呀。
推荐不要使用ADOTABLE。
在SQL语句上变化,比你多用一个控件要好得多呀。
或者是一个主adoquery1 一个tempadoquery 主 adoquery 是用一显示的。那个tempadoquery 是用来操作的。操作完后 adoquery1.close adoquery1.open
就可以了呀。
推荐不要使用ADOTABLE。
#6
没碰到过,用adoquery.requery看行不行
#7
建议不要这样使用,我从来都是用insert into 来实现的
#8
都一样,插入数据时有时候会有延迟。
adoquery.active:=false;
adoquery.active:=true;
有时候也不起作用,最好还select一下
adoquery.active:=false;
adoquery.active:=true;
有时候也不起作用,最好还select一下
#9
问题不在于是否用adotable,
因为我即使用adoQuery更新,再用adoQuery查询也是这么一回事,就是有个延迟,
但我却不希望有这个延迟。
我想要达到的效果就是:增加一条记录,并在dbgrid中直接显示出来。但query是通过一个sql语句select查询得到的,我就用另一个adoQuery来insert记录。用这个adoQuery刷新到dbgrid
但会有延迟,不过有时又没有延迟,不知道怎么回事?
如果谁有兴趣,我把程序发出来给大家看看。
因为我即使用adoQuery更新,再用adoQuery查询也是这么一回事,就是有个延迟,
但我却不希望有这个延迟。
我想要达到的效果就是:增加一条记录,并在dbgrid中直接显示出来。但query是通过一个sql语句select查询得到的,我就用另一个adoQuery来insert记录。用这个adoQuery刷新到dbgrid
但会有延迟,不过有时又没有延迟,不知道怎么回事?
如果谁有兴趣,我把程序发出来给大家看看。
#10
我也试着不用adoTable来修改或增加记录,改用adoQuery,并用Sql语句中的insert来实现,但结果是一样的,都好像不是立即生效,要过几秒钟,或多查询几次。
------------------------
使用TADOTable或者TADOQuery,并且打开的时候使用异步方式,这样显示时候的时候会有延时,但至少不会说此时不能操作,另外你也可以设大CacheSize,这些李维的书上都讲过了可以试一试.
------------------------
使用TADOTable或者TADOQuery,并且打开的时候使用异步方式,这样显示时候的时候会有延时,但至少不会说此时不能操作,另外你也可以设大CacheSize,这些李维的书上都讲过了可以试一试.
#11
增加索引或者改进你的系统性能是可以缓解延时的,但是要读入很多条记录的话一般都要延时的,要从根本上解决是不可能的.
#12
看看这个
http://search.csdn.net/Expert/topic/1239/1239736.xml?temp=.8733789
http://search.csdn.net/Expert/topic/1239/1239736.xml?temp=.8733789
#13
使用一个adoConnect控件,别的都连接到这上面就解决问题了,谢谢各位!
#1
Active := False;
Active := True;
就该可以的
我用着却没有这样的问题出现哦
http://lysoft.7u7.net
Active := True;
就该可以的
我用着却没有这样的问题出现哦
http://lysoft.7u7.net
#2
adotable.delete
adotable.insert
ado.fieldbyname(字段名).value:=xxxx
.....
adotable.append
adotable.refresh
adotable.insert
ado.fieldbyname(字段名).value:=xxxx
.....
adotable.append
adotable.refresh
#3
最有效:
adotable.close;
adotable.open;
adotable.close;
adotable.open;
#4
添加后
ADOQuery.Requery
ADOQuery.Requery
#5
其实,朋友,你只要用一个adoquery就完全可以办到了呀。因为里面有SQL语句呀。
在SQL语句上变化,比你多用一个控件要好得多呀。
或者是一个主adoquery1 一个tempadoquery 主 adoquery 是用一显示的。那个tempadoquery 是用来操作的。操作完后 adoquery1.close adoquery1.open
就可以了呀。
推荐不要使用ADOTABLE。
在SQL语句上变化,比你多用一个控件要好得多呀。
或者是一个主adoquery1 一个tempadoquery 主 adoquery 是用一显示的。那个tempadoquery 是用来操作的。操作完后 adoquery1.close adoquery1.open
就可以了呀。
推荐不要使用ADOTABLE。
#6
没碰到过,用adoquery.requery看行不行
#7
建议不要这样使用,我从来都是用insert into 来实现的
#8
都一样,插入数据时有时候会有延迟。
adoquery.active:=false;
adoquery.active:=true;
有时候也不起作用,最好还select一下
adoquery.active:=false;
adoquery.active:=true;
有时候也不起作用,最好还select一下
#9
问题不在于是否用adotable,
因为我即使用adoQuery更新,再用adoQuery查询也是这么一回事,就是有个延迟,
但我却不希望有这个延迟。
我想要达到的效果就是:增加一条记录,并在dbgrid中直接显示出来。但query是通过一个sql语句select查询得到的,我就用另一个adoQuery来insert记录。用这个adoQuery刷新到dbgrid
但会有延迟,不过有时又没有延迟,不知道怎么回事?
如果谁有兴趣,我把程序发出来给大家看看。
因为我即使用adoQuery更新,再用adoQuery查询也是这么一回事,就是有个延迟,
但我却不希望有这个延迟。
我想要达到的效果就是:增加一条记录,并在dbgrid中直接显示出来。但query是通过一个sql语句select查询得到的,我就用另一个adoQuery来insert记录。用这个adoQuery刷新到dbgrid
但会有延迟,不过有时又没有延迟,不知道怎么回事?
如果谁有兴趣,我把程序发出来给大家看看。
#10
我也试着不用adoTable来修改或增加记录,改用adoQuery,并用Sql语句中的insert来实现,但结果是一样的,都好像不是立即生效,要过几秒钟,或多查询几次。
------------------------
使用TADOTable或者TADOQuery,并且打开的时候使用异步方式,这样显示时候的时候会有延时,但至少不会说此时不能操作,另外你也可以设大CacheSize,这些李维的书上都讲过了可以试一试.
------------------------
使用TADOTable或者TADOQuery,并且打开的时候使用异步方式,这样显示时候的时候会有延时,但至少不会说此时不能操作,另外你也可以设大CacheSize,这些李维的书上都讲过了可以试一试.
#11
增加索引或者改进你的系统性能是可以缓解延时的,但是要读入很多条记录的话一般都要延时的,要从根本上解决是不可能的.
#12
看看这个
http://search.csdn.net/Expert/topic/1239/1239736.xml?temp=.8733789
http://search.csdn.net/Expert/topic/1239/1239736.xml?temp=.8733789
#13
使用一个adoConnect控件,别的都连接到这上面就解决问题了,谢谢各位!