我qryDoABC
在函数中有一个查询DoABC
。当我第一次调用此函数时,一切正常,但第二次调用它时,与 qryDoABC 一致,它会引发访问冲突异常。
procedure TMyForm.DoABC;
begin
with qryDoABC do
--
--
end;
我用谷歌搜索,发现我应该检查是否分配了查询。所以现在我也在检查是否像这样分配了查询:
procedure TMyForm.DoABC;
begin
if assigned qryDoABC then
with qryDoABC do
--
--
end;
现在也不例外,因为没有分配第二次查询。但我也必须第二次解雇这个 qry。我应该如何第二次分配这个查询。
完整代码:
function TMyForm.DoABC:boolean;
begin
try
if assigned(qryDoABC)then
with qryDoABCdo
begin
Close ;
SQL.Clear;
SQL.Text :=
'Some query';
Parameters.ParamByName('ABC').Value := ABC;
Parameters.ParamByName('XYZ').Value := XYZ;
Open;
if (Recordcount = 0) then
result := false
else
begin
result := true;
end;
Close;
end;
except
on E : Exception do
begin
result := false;
exit;
end;
end;
end;