关于ado的问题。

rain152 2003-08-22 11:56:22
请教各位高手,self.ado.close;self.ado.open与ado.close;ado.open有什么区别,那一种的执行效率更高。多谢。
...全文
97 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Little2000 2003-08-22
  • 打赏
  • 举报
回复
二者是等同的,一般都是指窗体,应该没有执行效率的不同。
lemon_wei 2003-08-22
  • 打赏
  • 举报
回复
我想也是没区别,如果Form1中有ado组件的话,当写成ado.XXX时,默认的窗体就是form1
madyak 2003-08-22
  • 打赏
  • 举报
回复
没什么区别尤其是在代码优化开关打开时,SELF只是代表对象的所有者!
请看下面:
with Self.Ado do
begin
close;
open;
end;

with Ado do
begin
Close;
Open;
end;
有一种说法是加With后,会把远程访问优化为近程访问,效率要高些!
至于不加with如楼主所说,都是远程访问!效率应该是一样!
我对此了解不深随便说
用ADO的话影响执行效率的不是"self.ado.close;self.ado.open与ado.close;ado.open有什么区别",即使有区别,在整个模块中也是可以乎略的!
想提高执行效率,还是把精力集中在后台,以及SQL的代码和ADO的工作模式中来吧!这才是提高执行效率的关键之处
madyak 2003-08-22
  • 打赏
  • 举报
回复
没什么区别尤其是在代码优化开关打开时,SELF只是代表对象的所有者!
请看下面:
with Self.Ado do
begin
close;
open;
end;

with Ado do
begin
Close;
Open;
end;
有一种说法是加With后,会把远程访问优化为近程访问,效率要高些!
至于不加with如楼主所说,都是远程访问!效率应该是一样!
我对此了解不深随便说
用ADO的话影响执行效率的不是"self.ado.close;self.ado.open与ado.close;ado.open有什么区别",即使有区别,在整个模块中也是可以乎略的!
想提高执行效率,还是把精力集中在后台,以及SQL的代码和ADO的工作模式中来吧!这才是提高执行效率的关键之处
lxpbuaa 2003-08-22
  • 打赏
  • 举报
回复
完全一样的,
编译器将:
self.ado.open
和ado.open
看作完全等同。

————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————
大地精灵 2003-08-22
  • 打赏
  • 举报
回复
没有什么效率问题吧,
Self是内部由系统定义的变量
代表类本身


假设你的窗体是这么定义的
type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;

然后你申明它的一个实例变量
var
Form1: TForm1;

实际上Self.ado.clos;就等于Form1.ado.close;
因为你的代码在窗体类的过程和函数里写的,也可以省略Self,那就变成了这样adl.close;
MMisLady 2003-08-22
  • 打赏
  • 举报
回复
应该是一样的,Self一般指窗体的,如果没有Self,默认的Ado的Parant也是该窗体,所以执行效率是一样的

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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