建议大家采用另外一种编码风格,不要在程序中到处都有这种LZ程序生成的代码:
begin with qryMain do begin try Close; SQL.Clear; SQL.Add('Delete From MONTASK where TASKID=:TASKID'); ParamByName('TASKID').AsString := AID; Execute; finally Close; end; end; end;实际上,在一般的项目中,整个程序中,只需要在统一的一个dm中,放置一个DB Connection,和一个Query控件(TempQuery),再写一个OpenQuery的过程就基本够用了,而且代码更简洁:
function TdmMain.OpenQuery(const ASelectSQL: string; const AUniDirectional: Boolean = False; AQuery: TUniQuery = nil): Boolean;
var Qry: TUniQuery; begin Result := False; if AQuery = nil then Qry := TempQuery else Qry := AQuery;try
with Qry do begin Close; UniDirectional := AUniDirectional; //如果这个数据集准备用来编辑和使用dbGrid等浏览,就必须 UniDirectional = False SQL.Text := ASelectSQL; Open; Result := not IsEmpty; end; except On E: Exception do begin //***** raise end end end;