H
hygsxy
Unregistered / Unconfirmed
GUEST, unregistred user!
我想在ACCESS数据库.mdb中删除一个表某条记录。
该数据表的结构是:
工号 年龄 职位
123 25 工人
589 35 干部
都是文本字段。
我想用SQL语句删除某一条记录,但必须满足两个条件才可删除,否则一个条件满足或者都不满足则发生异常。
看我的例子。
begin
try
adoquery1.sql.clear;
adoquery1.sql.add('delete from 数据表 where 工号=:工号 and 年龄=:年龄 ')
parameters.parambyname('工号').value:=edit1.text;
parameters.parambyname('年龄').value:=edit2.text;
execsql;
except
messagebox(handle,'发生异常','警告',mb_ok+mb_iconstop);
exit;
end;
messagebox(handle,'删除成功','提示,mb_ok+mb_iconinformation);
end;
我的代码就这些,运行时:如果两个条件满足,删除没问题,但如果工号,年龄有一个正确,另一个不正确,或者两个都不正确则异常根本扑捉不到,也会出现删除成功的对话框,误导人。但实际表里内容并没有删除。
我的目的就是当两个条件满足时删除,一个满足或者两个都不满足,则产生异常,显示产生异常对话框。
--------------------
是否delphi在采用ADO删除ACCESS某个表里记录时,如果没找到满足条件的记录,本身就不会产生异常,而直接返回。还是,我写的有错误?
该数据表的结构是:
工号 年龄 职位
123 25 工人
589 35 干部
都是文本字段。
我想用SQL语句删除某一条记录,但必须满足两个条件才可删除,否则一个条件满足或者都不满足则发生异常。
看我的例子。
begin
try
adoquery1.sql.clear;
adoquery1.sql.add('delete from 数据表 where 工号=:工号 and 年龄=:年龄 ')
parameters.parambyname('工号').value:=edit1.text;
parameters.parambyname('年龄').value:=edit2.text;
execsql;
except
messagebox(handle,'发生异常','警告',mb_ok+mb_iconstop);
exit;
end;
messagebox(handle,'删除成功','提示,mb_ok+mb_iconinformation);
end;
我的代码就这些,运行时:如果两个条件满足,删除没问题,但如果工号,年龄有一个正确,另一个不正确,或者两个都不正确则异常根本扑捉不到,也会出现删除成功的对话框,误导人。但实际表里内容并没有删除。
我的目的就是当两个条件满足时删除,一个满足或者两个都不满足,则产生异常,显示产生异常对话框。
--------------------
是否delphi在采用ADO删除ACCESS某个表里记录时,如果没找到满足条件的记录,本身就不会产生异常,而直接返回。还是,我写的有错误?