在delphi中如何捕获ADO出错消息

limitanger 2002-12-06 01:37:06
比如,我有一非空字段内没有填写数据,我希望table在onposterror事件内获得错误号
...全文
38 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
limitanger 2002-12-06
  • 打赏
  • 举报
回复
我现在用dbgrid连接一个ADOtable,在dbgrid内填写数据,但是我希望在必填字段为空时报错
Billy_Chen28 2002-12-06
  • 打赏
  • 举报
回复
//根据原生错误码显示错误提示
for I := 0 to AParam.AConnection.Errors.Count - 1 do
begin
case AParam.AConnection.Errors[I].NativeError of
547 : begin
if pos('insert',AParam.AConnection.Errors[I].Description) > 0 then
begin
//'外键约束insert,delete,update';
if sErrText <> '' then sErrText := sErrText + #13;
sErrText := sErrText + 's';
end
else
if pos('delete',AParam.AConnection.Errors[I].Description) > 0 then
begin
if sErrText <> '' then sErrText := sErrText + #13;
sErrText := sErrText + 's';
end
else
if pos('update',AParam.AConnection.Errors[I].Description) > 0 then
begin
if sErrText <> '' then sErrText := sErrText + #13;
sErrText := sErrText + 's';
end;
end;//end of 547

945 : begin
if sErrText <> '' then sErrText := sErrText + #13;
sErrText := sErrText + '您的内存不足!';
end;//end of 945

4850 : begin
if sErrText <> '' then sErrText := sErrText + #13;
sErrText := sErrText + '数据库表被锁定!';
end;//end of 1204

2627 : begin
if sErrText <> '' then sErrText := sErrText + #13;
sErrText := sErrText + '输入的关键属性值已经存在!';
end;//end of 2627

7303 : begin
if sErrText <> '' then sErrText := sErrText + #13;
sErrText := sErrText + '网络初始化失败!请检查网络设置!';
end;//end of 7303

10024: begin
if sErrText <> '' then sErrText := sErrText + #13;
sErrText := sErrText + '网络连接超时!请检查网络设置!';
end;//end of 10024

else begin
if
end;
end;//end of case

end;//end of for
delphi0build 2002-12-06
  • 打赏
  • 举报
回复
一般来说提交的sql语言delphi不对其进行语法匹配的
可以用事务
if 错误 rollback
else commit
limitanger 2002-12-06
  • 打赏
  • 举报
回复
但是我希望利用数据库来维护其完整性
hety 2002-12-06
  • 打赏
  • 举报
回复
自已写判断吧,提示都有,但是外国文的……

2,496

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧