关于Query数据集问题(50)

  • 主题发起人 主题发起人 tsoftware
  • 开始时间 开始时间
T

tsoftware

Unregistered / Unconfirmed
GUEST, unregistred user!
我在一个单元里var Query:TQuery;....Function aa:Query;beginQuery := TQuery.Create(Nil);Query.DataBaseName := 'demo';Query.Close;Query.Sql.Text := 'select * from animal'; Try Query.Open; Finally Query.Free; End;Result := Query;end;Query.Create还要这样创建,还是可以直接调用,不用Free,以后继续使用,还有很多函数用到这个全局Query,如果是这样每一个函数就要重复这一段代码Query := TQuery.Create(Nil);Query.DataBaseName := 'demo';请高手指教。
 
像这种全局用的公共类,最好指定它的拥用者为APPLICATION,这样应用程序关闭时,会FREE掉他.如果是局部临时类,可以通过指定FORM做为拥有类来,然后在FORM的DESTROY里写FREE就可以了.Query := TQuery.Create(APPLICATION) OR Query := TQuery.Create(FORM);另外,你这代码有很大问题,对象被创建后马上释放,那么你使用时它以经不存在了.一般都是让他的拥有类来释放,或在拥有类中写手工释放事件.
 
不好,不如直接写在代码中。 若database等可能变化,可以用全局变量,在程序启动时赋初值
 
多人接受答案了。
 
后退
顶部