Try
DM.TbReader.Post;***
Except
On EDBEngineError Do
Begin
MessageDlg('编号为当前主索引,不能重复!请键入另外的值!',mtError,[mbYes],0);
StudentNoDBEdit.SetFocus;
Exit;
End;
End;
我键入一个与数据库主索引有重复的记录,***这一行当然要出现异常EDBEngineError,
可是这个异常却没有被Try.. Except..捕捉到,相当于Try.. Except..没有起作用~
why?
DM.TbReader.Post;***
Except
On EDBEngineError Do
Begin
MessageDlg('编号为当前主索引,不能重复!请键入另外的值!',mtError,[mbYes],0);
StudentNoDBEdit.SetFocus;
Exit;
End;
End;
我键入一个与数据库主索引有重复的记录,***这一行当然要出现异常EDBEngineError,
可是这个异常却没有被Try.. Except..捕捉到,相当于Try.. Except..没有起作用~
why?
解决方案 »
- 我遇到一个窗口的小问题
- 如何判断流对象是否建立
- 开发midas程序,在服务器端定义了一接口方法,客户端调用提示Invalid variant operation
- 记得有一个API的函数可以使edit中只能输入整数,可惜忘了,谁知道!!
- 如何更改文本文件中指定行的数据?
- 动态修改access表时怎么才能将字符型字段的“允许有空子符”设置为“是“ 缺省都是“否”
- 如何调用*.exe应用程序?
- TeTheme********类控件,谁有?急!
- 在线等待,菜单事件?请高手指点。
- TreeView的Item在插入的时候如何始终显示在首行?
- 重庆程序员、系统开发员请留贴,让我们组成重庆社区!
- 谁有delphi7.0的制作安装程序软件?
你将这个判断条件去掉就可以了;另外;不能在delphi环境下运行;要编译出去;独立运行才可以;
要是还不行的话就是你的程序问题了
DM.TbReader.Post;
except
on E: Exception do
begin
MessageDlg('编号为当前主索引,不能重复!请键入另外的值!',mtError,[mbYes],0);
StudentNoDBEdit.SetFocus;
exit;
end;
end;
你用ON……DO 的话就是指定了异常类,如果主键重复不是这个异常类的话,是不会执行DO下面的语句的。
而且异常在DELPHI的调试环境下是无论如何都要触发的,要看TRY……EXCEPT有没有起作用,要编译成可执行文件再运行的。
优点,运行时,系统会自动处理有异常的地方,不会因为程序员忘记处理而导致程序突然中止
缺点,调试时,系统异常无条件出现.