请教各位大鲨,小鱼有个简单的问题(50分)

  • 主题发起人 主题发起人 nansha
  • 开始时间 开始时间
N

nansha

Unregistered / Unconfirmed
GUEST, unregistred user!
当我在插入一条记录时时,发现该库中已经有了这个记录,例如‘姓名’,我就是把姓名
这个字段作为索引的,当发现有重时,显示Violation of UNIQUE KEY constraint
'IX_telphone'.Cannot insert duplicae key in object 'telphone',我现在想把它加入
到try except 语句中去做一解释‘库中已有该条记录’,我不知怎样去做,还请各位大鲨
帮帮小鱼。
 
啊,每人能回答我的问题吗,小鱼块渴死了
 
小鱼还有一口气了,那位大鲨给点虾米吧
 
在OnPostError事件中
 
我是在onposterror事件中写的if e.message='Violation of UNIQUE KEY
constraint 'IX_telphone'.Cannot insert duplicae key in object 'telphone''
then showmessage('该库中已有该条记录')
 
在插入之前先用Table1.locate(姓名),判断返回值.如果存在就报错.
 
try

except
On E: Exception do
begin
if pos(E.message,'Violation of UNIQUE KEY constraint ') > 0 then
ShowMessage('库中已有该条记录');
end;

end;

不过本人并不推荐用这种方法来判断错误,应通过获得其原生错误号来判断
关于原生错误号判断异常的方法不妨浏览一下在下以前问的问题
 
我编译了,但还是出错,不知为啥,还请萧月禾、薄荷兄给诊断一下
[Error] Unit2.pas(41): Undeclared identifier: 'ShowMessage'
[Error] Unit2.pas(47): ';' expected but '.' found
[Error] Unit2.pas(49): Declaration expected but end of file found
[Fatal Error] Unit1.pas(81): Could not compile used unit 'Unit2.pas'
 
编译错误?
能不能把关键代码贴出来?
 
就是楼上萧月禾些的那一段,我加入到我的adotable1的onposterror事件中去了,你
还需要什么?
 
萧兄,我用的是adotable不是table,你的那段代码适用于table的吧
 
1。要引用Dialogs单元
2。查查是不是语句有问题,应是没写好
 
用这种方法,显得太被动,建议:
写个存储过程,if 同名 then 返回一个标志 else 插入记录
这样效率高

 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部