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 Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-10-2011
Avatar de Manuel
Manuel Manuel is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz/Chile
Posts: 324
Poder: 21
Manuel Va por buen camino
saber si existe mi archivo datos.gdb

tengo lo siguiente en mi sistema :

IBDatabase1.DatabaseName := 192.168.1.100:c:\datos\datos.gbd

Como podría saber antes de realizar esto y abrir mi base de datos, si existe el fichero a través de esta ruta 192.168.1.100:c:\datos\datos.gbd
__________________
Manuel Muñoz L. Trabajando con delphi 7.0 , migrando sistema a Delphi XE8, matando BDE y pasando FIREDAC.
Responder Con Cita
  #2  
Antiguo 18-10-2011
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
mmm... no sé me ocurre nada óptimo para tu caso Manuel.

Una solución fácil sería habilitar "Compartir archivos en red" y compartir la carpeta dónde está la base de datos. Pero esto sería un remedio peor que la enfermedad.

La solución única que se me ocurre es manejar el error devuelto por Firebird cuando el archivo de la base de datos. Pero esto requiere que se haga el intento de conexión y no estoy seguro si se verifican las credenciales antes de la existencia de la base de datos. Firebird 2.1 Error Codes.

Saludos!
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #3  
Antiguo 18-10-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Puedes controlar si ha conectado o no, algo así:

Código Delphi [-]
try
  IBDatabase1.DatabaseName := 192.168.1.100:c:\datos\datos.gbb
  IBDatabase1.active := true;
except
  showmessage('no se pudo conectar');  // Esto no quiere decir que no exista, sólo que no se pudo conectar
end;

Pues eso, que puede existir, aunque no conecte.
Responder Con Cita
  #4  
Antiguo 18-10-2011
Avatar de Manuel
Manuel Manuel is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz/Chile
Posts: 324
Poder: 21
Manuel Va por buen camino
Casimiro:

coloque tu sugerencia, pero no se ejecuta la excepción, solo me muestra los mensajes del sistema, no mi mensaje personalizado.
__________________
Manuel Muñoz L. Trabajando con delphi 7.0 , migrando sistema a Delphi XE8, matando BDE y pasando FIREDAC.
Responder Con Cita
  #5  
Antiguo 18-10-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pon tu código, que lo veamos
Responder Con Cita
  #6  
Antiguo 18-10-2011
Avatar de Manuel
Manuel Manuel is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz/Chile
Posts: 324
Poder: 21
Manuel Va por buen camino
Es el mismo que me diste como ejemplo, lo coloco en el 'on create' del proyecto.
__________________
Manuel Muñoz L. Trabajando con delphi 7.0 , migrando sistema a Delphi XE8, matando BDE y pasando FIREDAC.
Responder Con Cita
  #7  
Antiguo 18-10-2011
Avatar de Manuel
Manuel Manuel is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz/Chile
Posts: 324
Poder: 21
Manuel Va por buen camino
rectifico el el on create del 'Data Module' del proyecto.
__________________
Manuel Muñoz L. Trabajando con delphi 7.0 , migrando sistema a Delphi XE8, matando BDE y pasando FIREDAC.
Responder Con Cita
  #8  
Antiguo 18-10-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Y ejecutas el programa desde delphi o desde fuera?
Responder Con Cita
  #9  
Antiguo 18-10-2011
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Manuel, hay varios códigos de error que pueden indicar un problema con la conexión a la base de datos. Ya sea que ésta no esté disponible, porque no exista el archivo o que halla sido dañada. Un ejemplo para manejar estos casos sería:

Código Delphi [-]
try
    with IBDatabase1 do
    begin
        DatabaseName := '192.168.1.100:c:\datos\datos.gbd';
        Open;
    end;
except
    on E: EIBError do
        case E.IBErrorCode of
            336723983, // gsec_cant_open_db (Unable to open database)
            336920605: // gstat_open_err (Can't open database file)
            begin
                // el archivo de la base de datos no existe o
                // no está disponible para el servicio de Firebird.
                
                // TU CÓDIGO ACÁ
            end;
            
            335544335, // db_corrupt (Database file appears corrupt)
            335544404, // corrupt (Database corrupted)
            335544415: // badrelation (Database corrupted)
            begin
                // hay un error interno en la base de datos. Puede ser
                // que el archivo .gdb o .fdb esté dañado.
                
                // TU CÓDIGO ACÁ
            end;
        end;
end;

Saludos,
Chris
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #10  
Antiguo 18-10-2011
Avatar de Manuel
Manuel Manuel is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz/Chile
Posts: 324
Poder: 21
Manuel Va por buen camino
Gracias Chriss

Código Delphi [-]
on E: EIBError do
        case E.IBErrorCode of

Me informa un error, habrá que colocar algo en los uses?
__________________
Manuel Muñoz L. Trabajando con delphi 7.0 , migrando sistema a Delphi XE8, matando BDE y pasando FIREDAC.
Responder Con Cita
  #11  
Antiguo 18-10-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Manuel Ver Mensaje
Me informa un error
¿Quieres que adivinemos el error?
Responder Con Cita
  #12  
Antiguo 18-10-2011
Avatar de Manuel
Manuel Manuel is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz/Chile
Posts: 324
Poder: 21
Manuel Va por buen camino
Disculpa Casimiro, pero de repente me dan unos arranque de humanidad y se me olvidan las cosas:

este es el error Undeclared identifier: 'EIBError', un error de compilación
__________________
Manuel Muñoz L. Trabajando con delphi 7.0 , migrando sistema a Delphi XE8, matando BDE y pasando FIREDAC.
Responder Con Cita
  #13  
Antiguo 18-10-2011
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Cita:
Empezado por Manuel Ver Mensaje
Gracias Chriss

Me informa un error, habrá que colocar algo en los uses?
Tienes que agregar la unidad IB a tu sección de uses.

Saludos!
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #14  
Antiguo 18-10-2011
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 23
maeyanes Va por buen camino
Hola...

Manuel, espero que no estés usando "copy-paste" crudo del código que te están proporcionando. Investiga un poco antes de usar el código, por que a veces hay que hacer modificaciones para que te sea útil. En tu caso, lo más seguro es que o te hace falta agregar una unidad a la cláusula uses de tu código o el tipo EIBError se llame diferente.


Saludos...
__________________
Lee la Guía de Estilo antes que cualquier cosa. - Twitter
Responder Con Cita
Respuesta



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
Saber si existe un archivo en servidor FTP pablopessoa Conexión con bases de datos 2 15-01-2009 18:32:55
saber si archivo existe cahosoft API de Windows 2 09-01-2006 11:42:07
Saber si un dominio existe. D-MO Internet 7 19-10-2005 02:01:22
Saber si un campo existe Fita Conexión con bases de datos 2 04-10-2005 19:10:10
Como puedo saber si existe un archivo maravert Varios 3 23-10-2004 00:12:25


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


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