Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-10-2017
Rc96 Rc96 is offline
Miembro
 
Registrado: ago 2017
Posts: 75
Poder: 7
Rc96 Va por buen camino
Capturar Error de conexion

Hola buenos dias, espero esten bien. Queria saber si alguien sabe como capturar los errores que ocurran al conectar la base de datos. Veran al iniciar mi sistema verifica un archivo ini donde estan los parametros de conexion de la base de datos y procede a conectar pero si llegara a ocurrir un error en la coneccion como podria capturarlo y si se cumple esa condicion abrir el modulo donde configuro la conexion para la base de datos. Como base de datos uso PostgreSQL y para la coneccion FireDac.

Vi este codigo en la inter para obtener el error pero veo que es para un dataset no para el FDConnection1
Código Delphi [-]
       try
      DataSet.Post;
    except
      on E: Exception do
        ShowMessage(E.Message);
    end;

aca les dejo el codigo con el que conecto la BD al iniciar el sistema.
Código Delphi [-]
procedure Tfrmvp.FormShow(Sender: TObject);
var DriverID,DB,User,Pass,Server,Port: String;
begin
 if FileExists('ConexionBD.ini') then {Verificar si existe el .ini con la conexion}
 begin
    FDPhysPgDriverLink1.VendorLib:='libpq.dll';{Le indico la libreria de la BD}
    FDConnection1.Connected:=false;
    FDConnection1.Params.Clear;
    FDConnection1.Params.DriverID:='PG';  {escojo el drier de la BD}
    Conexion:=Tinifile.Create(ExtractFilePath(Application.ExeName)+'ConexionBD.ini'); {Extraigo los parametros del .ini}
     with Conexion do
   begin
    DB:= Conexion.ReadString('Conexion', 'DataBase', '');
    User:= Conexion.ReadString('Conexion', 'User_Name', '');
    Pass:= Conexion.ReadString('Conexion', 'Password', '');
    Server:= Conexion.ReadString('Conexion', 'Server', '');
    Port:= Conexion.ReadString('Conexion', 'Port', '');
   end;
      with Conexion do {paso los parametros al FDConnection para la conexion}
   begin
    FDConnection1.Params.Add( 'Server=' + Server  );
    FDConnection1.Params.Database:=DB;
    FDConnection1.Params.UserName:=User;
    FDConnection1.Params.Password:=Pass;
   end;
   Timer1.Enabled:=True;
   Barra_Estado;
 end
 else
 begin
   ShowMessage('BIENVENIDO');
 end;
end;
Si pueden corregir mi idea no esta de mas.
Espero puedan ayudarme. De antemano Gracias.
Responder Con Cita
  #2  
Antiguo 23-10-2017
Avatar de Soa Pelaez
Soa Pelaez Soa Pelaez is offline
Miembro
 
Registrado: nov 2015
Posts: 133
Poder: 9
Soa Pelaez Va por buen camino
Post

Buen día, una solución podría ser capturando el error en el evento OnError del TFDConnection

Código Delphi [-]

procedure TFDConnection.FDConnectionOnError(ASender,
  AInitiator: TObject; var AException: Exception);
var
  oExc: EFDDBEngineException;
begin
  if (AException is EFDDBEngineException) and (EFDDBEngineException(AException).Kind = ekRecordLocked) then
   AException.Message := 'Please, try the operation later. At moment, the record is busy';

  if AException is EFDDBEngineException then
  begin
    oExc := EFDDBEngineException(AException);
    if oExc.Kind = ekRecordLocked then
      oExc.Message := 'Mensaje cuando el registro está bloqueado'.
    else
    if (oExc.Kind = EkServerGone) then //and SameText(oExc[0].ObjName, 'UniqueKey_Orders') then
      oExc.Message := 'No hay Conexión a la base de datos'
    else
      oExc.Message:= 'Sucedio Otro tipo de error del lado del Servidor'  ;
  end;

end;
Responder Con Cita
  #3  
Antiguo 23-10-2017
Rc96 Rc96 is offline
Miembro
 
Registrado: ago 2017
Posts: 75
Poder: 7
Rc96 Va por buen camino
Hola Soa era lo que buscaba muchas gracias. Solo una cosa me gustaria incluir que al salir ese error se abra un modulo de mis istema donde hago la conexion. escribo un
Código Delphi [-]
FrmConfig.ShowModal;
pero me da este error
https://ibb.co/bU9SwR
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Capturar error de Conexion (EOleException) jeremiselxi Varios 1 02-11-2023 05:41:16
Capturar error de Conexión con las IB Manuel Conexión con bases de datos 4 20-04-2007 21:56:19
capturar error de conexion - ClientSocket Panchisco C++ Builder 1 10-07-2006 23:11:05
Capturar error silviodp Conexión con bases de datos 3 01-07-2005 12:59:36
Capturar error bbjb OOP 3 12-04-2005 20:19:46


La franja horaria es GMT +2. Ahora son las 17:58:06.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi