想在一个增加系统帐户程序里面用同一个TADOQuery控件完成查找帐户和增加帐户两个操作,程序如下:
with query_data do
begin
close;
sql.Clear ;
sql.Text :='select * from systemuser where id="'+uppercase(E_id.Text)+'"';
try
open;
except
messagedlg(Errormsg0001+'0001',mtError,[mbok],0);
close;
self.Close ;
end;
if RecordCount > 0 then //工号已存在
begin
messagedlg(Errormsg0003+'0004',mtError,[mbok],0);
E_id.SetFocus ;
close;
exit;
end
else //工号不存在则增加
begin
close;
sql.Clear ;
sql.Text :='insert into systemuser ......;
try
execsql;
except
messagedlg(Errormsg0004+'0005',mtError,[mbok],0);
close;
self.Close ;
end;
end;
messagedlg(Infmsg0001,mtInformation,[mbok],0);
close;
self.Close ;
end;
可是系统执行到execsql程序提示内存非法访问。请教应该如何修正?
with query_data do
begin
close;
sql.Clear ;
sql.Text :='select * from systemuser where id="'+uppercase(E_id.Text)+'"';
try
open;
except
messagedlg(Errormsg0001+'0001',mtError,[mbok],0);
close;
self.Close ;
end;
if RecordCount > 0 then //工号已存在
begin
messagedlg(Errormsg0003+'0004',mtError,[mbok],0);
E_id.SetFocus ;
close;
exit;
end
else //工号不存在则增加
begin
close;
sql.Clear ;
sql.Text :='insert into systemuser ......;
try
execsql;
except
messagedlg(Errormsg0004+'0005',mtError,[mbok],0);
close;
self.Close ;
end;
end;
messagedlg(Infmsg0001,mtInformation,[mbok],0);
close;
self.Close ;
end;
可是系统执行到execsql程序提示内存非法访问。请教应该如何修正?
解决方案 »
- delphi编程怎么实现公网和局域网计算机的通信?
- 老树开新花 DirectX游戏窗口化 100分送上
- 如何隐藏其他程序的任务栏按钮???
- 如何实现Active DLL 和 EXE 之间的数据通讯?(在线,高分!!)
- ◆◆◆救急:那里有这样一个字符.在字母X上加一横.
- 《DELPHI 7高效数据库程序设计》李维
- 欲编一个测试打字速度的小软件,求测每分钟打字速度的公式!(200分相送。)
- 关于OLE的问题?
- 关于用循环语句控制控件的问题,高手请进(在线等待...)
- 程序作好后,并用IS生成安装文件后,请问如何将这些文件打包,然后再安装。是不是有什么工具。谢谢
- getkeystate 返回值问题?
- 一个小算法问题
open;
except
messagedlg(Errormsg0001+'0001',mtError,[mbok],0);
close;//以及后面的异常处理多此一举