Table.Active巨慢的问题。

sundog 2002-12-25 02:45:11
原来是使用QUERY的。但是,为了能够使用户可以在DBGRID中直接修改数据,所以将DBGRID改成TABLE。问题来了。
更改后打开一个300条记录的表居然要6秒钟,而原来使用QUERY时几乎感觉不到停顿。
数据库 ORACLE 7.3.4
开发工具 Delphi 5.0

查了半天,发现下面这条SQL运行时间超长。而且这是使用TABLE时才有的。

select s.owner, s.table_owner, s.table_name, o.object_type
from sys.dba_synonyms s, sys.dba_objects o
where s.synonym_name = 'CUX_INT_CC'
and s.owner in ('PUBLIC', 'APPS')
and s.table_owner = o.owner
and s.table_name = o.object_name

哪位大侠帮帮忙呀。
...全文
91 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sinze 2002-12-25
  • 打赏
  • 举报
回复
TQuery.CachedUpdates := True;
然后使用ApplyUpdates.
zxfsdbj 2002-12-25
  • 打赏
  • 举报
回复
呵呵!你用的数据库和Delphi版本居然和我的一样!

将Query1的Requestlive设为True是不行的,这对文本型数据库才有用
对于既要使用Table又要查询我通常都是用的Table的
procedure TForm1.Table1FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin

end;
将纪录过滤,不知道你是不是这么做的
还有就是你将Sql语句加一个Order by ...试一下,看是不是能快些.
WWWWA 2002-12-25
  • 打赏
  • 举报
回复
将QUERY1的REQUESTLIVE=TRUE,在DBGRID中即可修改。
sundog 2002-12-25
  • 打赏
  • 举报
回复
不是把,我这里都是用BDE的。要改的话工作量很大的。

难道不能使用QUERY,并且使DBGRID可修改?
tommy_linux 2002-12-25
  • 打赏
  • 举报
回复

用ADO吧~~~

另外最好给表建个索引,
sundog 2002-12-25
  • 打赏
  • 举报
回复
那怎么使DBGrid可以修改呢?
caixiaofei 2002-12-25
  • 打赏
  • 举报
回复
开发数据的时候不要用table,,最好不要用, 一个都不要用。

2,495

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧