读书人

在往数据库插入记录时,捕捉主键冲突的

发布时间: 2012-04-03 12:38:19 作者: rapoo

在往数据库插入记录时,捕捉主键冲突的except
oracle主键错误号为:ORA-00001
希望能填写这里
except
   ////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
delphi 要在这里捕捉主键冲突的错误?????????????????????????????
result:=false;


//插入部门记录
function InsertDepartMent(Const DepartM : TDepartMent) : Boolean;
var
//ADODep : TADOQuery;
sql : String;
begin
result := False;
DM.adoCn.Connected := True;
//ADODep := TADOQuery.Create(nil);

DM.qrySql1.Connection := DM.adoCn;
sql := 'Insert into Department(DEPT_ID,DEPT_NAME,DIR_LD1,DIR_LD1_PHONE, '+
'DIR_LD2,DIR_LD2_PHONE,DEP_LD1,DEP_LD1_PHONE,DEP_LD2,DEP_LD2_PHONE, '+
'DEP_LD3,DEP_LD3_PHONE) values( '+DepartM.Dept_ID+ ', ' ' '+
DepartM.Dept_Name+ ' ' ', ' ' '+DepartM.DirLeader1 + ' ' ', ' ' '+
DepartM.DirLeader1_Mobile + ' ' ', ' ' '+DepartM.DirLeader2+ ' ' ', ' ' '+
DepartM.DirLeader2_Mobile+ ' ' ', ' ' '+DepartM.DeptLeader1 + ' ' ', ' ' '+
DepartM.DeptLeader1_Mobile + ' ' ', ' ' '+DepartM.DeptLeader2+ ' ' ', ' ' '+
DepartM.DeptLeader2_Mobile+ ' ' ', ' ' '+DepartM.DeptLeader3+ ' ' ', ' ' '+
DepartM.DeptLeader3_Mobile+ ' ' ') ';
//application.messagebox(sql, 'DAMN IT ');
//exit;
try
DM.qrySql1.Close;
DM.qrySql1.SQL.clear;
DM.qrySql1.SQL.Add(sql);
DM.qrySql1.ExecSQL;
result:=true;
except
   ////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
delphi 要在这里捕捉主键冲突的错误?????????????????????????????
result:=false;

end;
DM.qrySql1.close;
DM.adoCn.Connected := False;
end;


[解决办法]
try
DM.qrySql1.Close;
DM.qrySql1.SQL.clear;
DM.qrySql1.SQL.Add(sql);


DM.qrySql1.ExecSQL;
result:=true;
except
On E:Exception do
begin
ShowMessage(E.message);
result:=false;
end;

end;
[解决办法]
不是有错误代码吗,在OnPostErr里写吧,根据返回的错误代码。
[解决办法]
在except内写
ShowMessage( '主键冲突 ');

读书人网 >.NET

热点推荐