问个关于TStrings和ADOQuery的问题(50)

  • 主题发起人 主题发起人 fadey
  • 开始时间 开始时间
F

fadey

Unregistered / Unconfirmed
GUEST, unregistred user!
在ADOQuery的sql属性类型为TStrings,而TStrings的类里面没有实现方法clear,而sql属性却可以调用clear,经过跟踪发现该clear调用的是TStringList的方法,不知道为什么这样?就是sql属性为什么调用TStringList的方法?
 
ADOQuery创建时,FSQL是由TStringList创建的,所以调用 TStringList的方法
 
楼上说的对constructor TADOQuery.Create(AOwner: TComponent);begin inherited Create(AOwner); FSQL := TStringList.Create; TStringList(FSQL).OnChange := QueryChanged; Command.CommandTextAlias := 'SQL'; { Do not localize }end;
 
楼主应该去了解一下多态的知识了。
 
TStrings := TStringList.Create;答案也许在这里
 
明白了,谢谢。
 
后退
顶部