var ADOQuery: TADOQuery;
S: ShortString;
begin
try
ADOQuery := TADOQuery.Create(nil);
ADOQuery.Connection := ADOConnect;
whih ADOQuery do
begin
ADOQuery.SQL.Clear;
........
end;
except
end;
if ADOQuery <> nil then
ADOQuery.Free;
这时编译器有警告:Variable "ADOQuery" might not have been initialized
如何正确释放ADOQuery ?
S: ShortString;
begin
try
ADOQuery := TADOQuery.Create(nil);
ADOQuery.Connection := ADOConnect;
whih ADOQuery do
begin
ADOQuery.SQL.Clear;
........
end;
except
end;
if ADOQuery <> nil then
ADOQuery.Free;
这时编译器有警告:Variable "ADOQuery" might not have been initialized
如何正确释放ADOQuery ?
解决方案 »
- 关于界面的问题
- vCard 数据格式,******
- 怎样取得ie历史纪录的地址呢?
- 非常简单?关于DBGrid的问题?
- 为何我在打开一个Access数据库后然后再关闭,这时再删除它时却怎么也删不掉?
- 为什么不能动态创建?
- procedure func1; virtual;//virtual;这个是做什么的procedure func1; override;//override这个是做什么的
- ado连access添加记录的奇怪问题
- 高分求教!!!!发布C/S结构的应用程序需要哪些文件?
- ?我在win2000下作的调access库的程序在win97下运行发现库里的汉字在程序里都显示成#,怎么回事呀?,
- 100分提问,如何将一单机版得软件改为B/S结构得?
- QUERY属性??哪位能解释一下
try
ADOQuery.Connection := ADOConnection1;
with ADOQuery do
begin
ADOQuery.SQL.Clear;
end;
except
end;
adoquery:=tadoquery.create(nil);
...
except
raise exception.create('adoquery component create failed!');end;
var ADOQuery: TADOQuery;
begin
ADOQuery := TADOQuery.Create(nil);
ADOQuery.Connection := ADOConnect;
with ADOQuery do
begin
SQL.Clear;
sql.add('select * from userinfo' );
open;
end;
datasource1.DataSet:=adoquery;
if Assigned(ADOQuery) then
ADOQuery.Free;
end;
不知然否?
try
ADOQuery.Connection := ADOConnection1;
with ADOQuery do
begin
ADOQuery.SQL.Clear;
end;
finally
ADOQuery.free;
end;
try
ADOQuery.Connection := ADOConnection1;
with ADOQuery do
begin
ADOQuery.SQL.Clear;
end;
finally
ADOQuery.free;
end;
var ADOQuery: TADOQuery;
S: ShortString;
begin
try
ADOQuery := TADOQuery.Create(nil);
try
ADOQuery.Connection := ADOConnect;
whih ADOQuery do
begin
ADOQuery.SQL.Clear;
........
end;
finally
FreeAndNil(ADOQuery);
end;
except
end;
你的代码问题在于一旦发生异常程序终止了,你的ADOQuery根本没机会释放
aquery : TADOQuery;
begin
aquery := TADOQuery.create(nil); //这一句写在Try的上面不会出现WARNING nil就必须自己来释放自己创建的对象.所以要用Finally。
Try
with aquery do
begin
Connection := ADOConnect;
close;
sql.clear;
sql.add(s);
open;
用完后close;
end;
Finally
aquery.free;
aquery := nil;
End;
end;
try
if 1=1 then exit;//注意此处已经退出
ADOQuery := TADOQuery.Create(nil);
{你的处理语句}
except
end;
ADOQuery.Free;
编译器只是告诉你容易发生这样的错误而已。