怎么实现对DataSet.Post的错误捕获
如何实现对DataSet.Post的异常捕获?小弟初学,在cxGrid的使用中遇到如下疑惑:开发环境:Delphi7、MSDE要对输
如何实现对DataSet.Post的异常捕获?
小弟初学,在cxGrid的使用中遇到如下疑惑:
开发环境:Delphi7、MSDE
要对输入的内容做验证,验证是由数据库进行的(非空和触发器),经由对异常的处理实现验证用户输入
通过网上的搜索基本知道了思路:在TDataSet.BeforePost中处理,代码如下:
Delphi(Pascal) codeprocedure TForm1.tbl1BeforePost(DataSet: TDataSet);begin try DataSet.Post;//手动提交更改 except //异常处理的代码... end; Abort;//取消自动提交end;
运行时报错:EStackOverFlow,消息:Stack Overflow。不知道原因,遂来请教。
[解决办法]你程序写得事件不对,不应该放在beforepost,所以堆栈溢出。
[解决办法]执行Post的话是会先执行beforpost的,所以你写的代码就造成了循环,就会出错。解决办法,5楼的可行。另外,你不用 try..except.. //异常处理的代码... end;
这样写,你可以,在save的地方直接写DataSet.Post;beforpost里面写你要检查的项目就行了。还有,如果出错了,当前行的记录是要取消,还是不变等待用户输入,你要想好思路才行。取消用Abort;停在当前行的话就出一个提示框给用户。