procedure TAdmin_Form.Button8Click(Sender: TObject);
var
ChanOpid:TQuery;
begin
ChanOpid := TQuery.Create(nil);
ChanOpid.SessionName := Start_Form.Database1.SessionName;
ChanOpid.DatabaseName := Start_form.Database1.DatabaseName;
ChanOpid.SQL.Text := 'update operid set type = '''+Type_Ed.Text+''',name = '''+Name_Ed.Text+''',password = '''+Password_Ed.Text+''',department = '''+Department_Ed.Text+''' where operid = '''+Operid_Ed.Text+'''';
ChanOpid.ExecSQL;
QryOperid.Close;
QryOperid.Open;
end;这是我写的一段修改数据库的代码,我看书上总是写try什么的,我这段代码需不需要啊?应该如何优化啊?有什么好处?
var
ChanOpid:TQuery;
begin
ChanOpid := TQuery.Create(nil);
ChanOpid.SessionName := Start_Form.Database1.SessionName;
ChanOpid.DatabaseName := Start_form.Database1.DatabaseName;
ChanOpid.SQL.Text := 'update operid set type = '''+Type_Ed.Text+''',name = '''+Name_Ed.Text+''',password = '''+Password_Ed.Text+''',department = '''+Department_Ed.Text+''' where operid = '''+Operid_Ed.Text+'''';
ChanOpid.ExecSQL;
QryOperid.Close;
QryOperid.Open;
end;这是我写的一段修改数据库的代码,我看书上总是写try什么的,我这段代码需不需要啊?应该如何优化啊?有什么好处?
var
ChanOpid:TQuery;
begin
ChanOpid := TQuery.Create(nil);
try
ChanOpid.SessionName := Start_Form.Database1.SessionName;
ChanOpid.DatabaseName := Start_form.Database1.DatabaseName;
ChanOpid.SQL.Text := 'update operid set type = '''+Type_Ed.Text+''',name = '''+Name_Ed.Text+''',password = '''+Password_Ed.Text+''',department = '''+Department_Ed.Text+''' where operid = '''+Operid_Ed.Text+'''';
ChanOpid.ExecSQL;
QryOperid.Close;
QryOperid.Open;
finally
ChanOpid.Free;
end;
end;
var
ChanOpid:TQuery;
begin
ChanOpid := TQuery.Create(nil);
try
ChanOpid.SessionName := Start_Form.Database1.SessionName;
ChanOpid.DatabaseName := Start_form.Database1.DatabaseName;
ChanOpid.SQL.Text := 'update operid set type = '''+Type_Ed.Text+''',name = '''+Name_Ed.Text+''',password = '''+Password_Ed.Text+''',department = '''+Department_Ed.Text+''' where operid = '''+Operid_Ed.Text+'''';
ChanOpid.ExecSQL;
QryOperid.Close;
QryOperid.Open;
finally
ChanOpid.Free;
end;
end;
好处: 无论try后面的代码成立与否,finally后的代码则一定执行.
如果给QryOperid用的话,
不能释放的,释放就没了!
确实需要的话,要把它声明成类私用变量或者公共变量,在适当的时候释放。
引用楼上的
try...finally...end
好处: 无论try后面的代码成立与否,finally后的代码则一定执行.常用来关闭资源,回收内存等。