如何获得异常类的错误代码?(100分)

  • 主题发起人 主题发起人 joesquare
  • 开始时间 开始时间
J

joesquare

Unregistered / Unconfirmed
GUEST, unregistred user!
本人需要做一函数,函数的目的只是连接指定的数据库。
代码如下:
try
......
ADOConnection.Open;
except e: exception do
result := e. //此处不知道如何得到异常e的错误码,以作为函数的返回值。
end;
或者是否有其他方法可以得到类似上面异常的错误码?
我其实想通过该函数去连接数据库,当连接出错时返回错误码,而在主程序中以此错误码来决定显示那些错误文本信息。
当然,我可以这样做:
except e: exception do
ShowMessage(e.Message)
end;
但我还是希望函数能够返回整型的错误码。
 
来自:yzhshi, 时间:2002-1-25 18:55:00, ID:885239
看看这个,也许有用。
function GetErrCode(DataSet: TDataSet; E: EDatabaseError; var msg: string): Longint;
var
i, nCode, eCode: integer;
begin
if DataSet is TQuery then
msg := E.Message + #13#10 + TQuery(DataSet).Sql.Text
else
msg := E.Message;

if E is EDBEngineError then
with EDBEngineError(E) do
begin
eCode := 13059;
nCode := 0;
for i := 0 to ErrorCount - 1 do
if Errors.NativeError <> 0 then
nCode := Errors.NativeError
else if Errors.ErrorCode <> 13059 then
eCode := Errors.ErrorCode;

if nCode <> 911 then {eCode in [9733, 9734, 9729, 10024, 10038]}
result := eCode
else
result := nCode;
end
else
result := -1;
end;


 
这个问题刚才不是回答过了吗?

楼上的处理的是BDE,我那个函数处理的是ADO。
 
后退
顶部