como estas yo capturo los errores de la siguiente manera espero te sirva.
Código Delphi
[-]procedure Tf_acceso.BaceptarClick(Sender: TObject);
begin
if trim(f_acceso.txtnombre.Text)='' then
begin
application.MessageBox('Proporciona Nombre de usuario','Error',mb_ok + mb_iconerror);
f_acceso.txtnombre.SetFocus;
f_acceso.txtnombre.Color:=clyellow;
exit;
end;
if trim(f_acceso.txtcontrasena.text)='' then
begin
application.MessageBox('Contraseña del usuario','Error',mb_ok + mb_iconerror);
f_acceso.txtcontrasena.SetFocus;
f_acceso.txtcontrasena.Color:=clyellow;
exit;
end;
fmodulo.con.Close;
fmodulo.con.ConnectionString:=
'Provider=MSDASQL.1;' +
'Persist Security Info=false;' +
'User ID=' + f_acceso.txtnombre.Text + ';' +
'Password=' + f_acceso.txtcontrasena.Text + ';' +
'Data Source=' + f_acceso.txtbase.Text;
try
fmodulo.con.Connected:= true;
MessageDlg('Se ha conectado correctamente a la BD: ' +
txtbase.Text + '.', mtInformation, [mbok], 0);
Application.CreateForm(Tfmenu, fmenu);
fmenu.ShowModal;
f_acceso.Hide;
except
on E:EOleException do begin
if (E.ErrorCode = -2147217843) then
begin
application.MessageBox('Nombre de Usuario y/o Contrasena Incorrectos'+chr(13)+' '+chr(13)+'Intentelo Nuevamente','Error',mb_ok + mb_iconerror);
f_acceso.txtnombre.Text:='';
f_acceso.txtcontrasena.Text:='';
exit;
end;
if (E.ErrorCode = -2147467259) then
begin
application.MessageBox('Hay un Error de Configuracion con la base de datos'+CHR(13)+'pongase en contacto con el Administrador','Error',mb_ok + mb_iconerror);
exit;
end;
end;
end;
end;