PDA

Ver la Versión Completa : deshabilitar mensajes de ADO


Diego666
05-11-2010, 05:10:51
Hola.. t
Tengo estoy programando en d7 y me estoy conectando a SQL Express 2008 con TADOConnection .. funcionaba correctamente al conectarme por autenticacion de windows.. los problemas me han surgido cuando quiero conectarme por autenticacion de Windows o autenticacion de SQL

Si pongo las contrasenas corectas se conecta perfectamente cuando pongo una contrasena erronea me aparece una excepcion de eoleexception ..
Tengo entendido que los errores de ADO son independientes del compilador
y mi pregunta es como Deshabilito los Mensajes en el ado??
De antemano Gracias Por leer
Saludos

Neftali [Germán.Estévez]
05-11-2010, 11:39:35
Puedes capturar los errores de ADO con las clases de excepciones que hay para ello como el resto de errores. Revisa EOLEException y prueba con un Try..except como se hace con el resto de errores.


try
ADOConn.Connect;
...
except
on E:EOLEException do begin
... errores de ADO
end
else begin
.. resto de errores
end;
end;

microbiano
05-11-2010, 17:39:01
como estas yo capturo los errores de la siguiente manera espero te sirva.
//boton de aceptar
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;
//Provider=MSDASQL.1;Persist Security Info=False;User ID=sa;Data Source=sapa
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);
//creo y abro el form del menu
Application.CreateForm(Tfmenu, fmenu);
fmenu.ShowModal;
f_acceso.Hide;
except
on E:EOleException do begin
// error
///MessageDlg(Format('Error: %s Codigo: %d', [E.Message, E.ErrorCode]), mtError, [mbOK], 0);
//end;
if (E.ErrorCode = -2147217843) then
begin
//MessageDlg('Nombre de Usuario y/o Contraseña incorrecta', mtError, [mbOK], 0);
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
//MessageDlg('Hay un Error de configuracion con la base de datos'+CHR(13)+'pongase en contacto con el administrador', mtError, [mbOK], 0);
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;

Diego666
06-11-2010, 16:10:37
Muchas Gracias Neftali y Microbiano.. me ha sido de gran utilidad su Ayuda... EOleException me ha servido de Maravillas...
Saludos y hasta Luego...