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什么的,我这段代码需不需要啊?应该如何优化啊?有什么好处?
解决方案 »
- ADOQuery 修改记录怎么变成新增加记录???
- 跟潮流,散200祝大家新年愉快!狗年行狗运!
- 一个报表的问题请教了
- 调用VC写的DLL的问题,高手请入,菜鸟求救!!!
- 在 DELPHI6 的单元文件中, 输入中文乱码? 有办法处理吗?
- DBTEXT显示一行的问题,急!!!!!!!!!! 在线等待!!!!!!!
- 请用Delphi开发中间件的朋友与我讨论
- oracle数据库问题,进来帮忙阿!!!
- 学Delphi是否要先学Pascal? 能否推荐几本Pascal书(包括电子书)?
- 为什么现在用DELPHI的人越来越多啊??
- 关于用delphi通过串口发送文件的问题
- 请问CSDN排名是以什么进行排的
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后的代码则一定执行.常用来关闭资源,回收内存等。