P
ppqingyu
Unregistered / Unconfirmed
GUEST, unregistred user!
在数据库线程中,好多的例子都有这个释放
destructor QueryThread.Destroy;
begin
FAdoQuery.FREE;
FAdoQUserInfor.FREE;
Fadoconnection.Free;
strlist.Free;
iplist.free;
CoUnInitialize;//必须使用
inherited destroy;
end;
这段代码是何时才会调用的?我在那些例子当中找不到有安插这个方法的代码,是不是自动执行的?
procedure TThreadQuery.Execute;{ 执行线程的方法 }
begin
try
FQuery.Open;
{ 打开查询 }
Synchronize(ConnectDataSource);{ 线程同步 }
except
ShowMessage('Query Error');
{ 线程异常 }
end;
这段代码执行完了之后会释放线程了吗?因为我有一个疑问,这是一个数据库查询,FQuery在OPEN之后,要想保持显示所得出的数据,连接就不能段开,如果线程释放,FQuery不是也释放,连接就不是断开了吗?如果没有释放,如果查询的条件改变,再调用线程不是冲突了?
procedure TForm1.FormDestroy(Sender: TObject);
begin
Q1.Terminate;
{ 销毁之前终止线程执行 }
Q1.Destroy;
Q2.Terminate;
{ 销毁之前终止线程执行 }
Q2.Destroy;
end;
而且那个源码当中,还有这一样段,线程如果是执行完释放的话,这段话就没有用了吧?
destructor QueryThread.Destroy;
begin
FAdoQuery.FREE;
FAdoQUserInfor.FREE;
Fadoconnection.Free;
strlist.Free;
iplist.free;
CoUnInitialize;//必须使用
inherited destroy;
end;
这段代码是何时才会调用的?我在那些例子当中找不到有安插这个方法的代码,是不是自动执行的?
procedure TThreadQuery.Execute;{ 执行线程的方法 }
begin
try
FQuery.Open;
{ 打开查询 }
Synchronize(ConnectDataSource);{ 线程同步 }
except
ShowMessage('Query Error');
{ 线程异常 }
end;
这段代码执行完了之后会释放线程了吗?因为我有一个疑问,这是一个数据库查询,FQuery在OPEN之后,要想保持显示所得出的数据,连接就不能段开,如果线程释放,FQuery不是也释放,连接就不是断开了吗?如果没有释放,如果查询的条件改变,再调用线程不是冲突了?
procedure TForm1.FormDestroy(Sender: TObject);
begin
Q1.Terminate;
{ 销毁之前终止线程执行 }
Q1.Destroy;
Q2.Terminate;
{ 销毁之前终止线程执行 }
Q2.Destroy;
end;
而且那个源码当中,还有这一样段,线程如果是执行完释放的话,这段话就没有用了吧?