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 26-10-2014
darkamerico darkamerico is offline
Miembro
 
Registrado: dic 2010
Posts: 225
Poder: 14
darkamerico Va por buen camino
Red face Comprobar si existe una BD

saludos amigos, estoy realizando una aplicación usando la librería UNIDAC (de devart) sobre Delphi 2010, y requiero comprobar si una base de datos existe a fin de evitar que la aplicación colapse y se cierre. Agradezco cualquier ayuda que puedan darme.

Atte
Americo
Responder Con Cita
  #2  
Antiguo 26-10-2014
[FGarcia] FGarcia is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Cordoba, Veracruz, México
Posts: 1.123
Poder: 20
FGarcia Va por buen camino
Tal vez te falto decir que BD estas usando y en que sistema operativo y su versión y tipo
__________________
ESTO ES UN FORO ... NO UN MÓVIL
¿Por qué no escribir de una manera comprensible para que los humanos lo podamos entender?
Responder Con Cita
  #3  
Antiguo 27-10-2014
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.269
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Depende de si la Base de Datos es de "tipo fichero" o de "otro tipo".
Siempre puedes intentar la conexión y capturar el correspondiente error.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 27-10-2014
darkamerico darkamerico is offline
Miembro
 
Registrado: dic 2010
Posts: 225
Poder: 14
darkamerico Va por buen camino
Saludos

Estoy usando un servidor de bd mysql.
Responder Con Cita
  #5  
Antiguo 27-10-2014
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.269
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Utiliza Open/Connect con un Try..Except.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 27-10-2014
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Prácticamente cualquier biblioteca de conexión a bases de datos incluirá métodos para listar las bases y tablas de un servidor. Unidac no es la excepción:

Así que, sin importar el motor específico, puedes usar estos métodos y buscar en la lista (TStrings) que te devuelven, la base o tabla en cuestión.

Otra opción, específica de MySQL, es usar una consulta del tipo:

Código SQL [-]
show databases like "nombre de la base"

y ver si te devuelve algún regitro o no.

// Saludos
Responder Con Cita
  #7  
Antiguo 27-10-2014
camiz camiz is offline
Miembro
 
Registrado: ene 2012
Posts: 69
Poder: 13
camiz Va por buen camino
Hola darkamerico,
Prueba con esto yo lo uso así en PostgreSQL, solo cambia algunas cositas y devería funcionar, suerte...


Código Delphi [-]
var
  List: TStringList;
  i :string;
  posicion :integer;
  comprobacion :boolean;
begin
  with UniConnection1 do
  begin
    Connected := False;
    ProviderName := 'PostgreSQL';
    UserName := 'postgres';
    Password := '1234';
    Server := '127.0.0.1';
    Port := 5432;
    LoginPrompt := False;
    List := TStringList.Create;
    try
      GetDatabaseNames(List);
      posicion := 0;
      List.Sort;
      comprobacion := List.Find('MyBasedeDatos',posicion);
      if comprobacion = True then
        MessageBox(0,'Base de datos encontrada','Mensaje', MB_ICONINFORMATION or MB_OK)
      else
        MessageBox(0,'La base de datos indicada no existe','Mensaje', MB_ICONSTOP or MB_OK);
    finally
      List.Free;
    end;
  end;
Responder Con Cita
  #8  
Antiguo 04-11-2014
darkamerico darkamerico is offline
Miembro
 
Registrado: dic 2010
Posts: 225
Poder: 14
darkamerico Va por buen camino
Question Saludos

Gracias a todos por responder, lo que estoy implementando son unos indicadores gráficos en el formulario de login que me indican :
1. Si el servidor mysql esta On/Off

Lo que quería era agregar otro indicador grafico que este en verde si la BD se encuentra presente en el servidor mysql. Por eso, mi preocupación era de que forma utilizar las funciones de verificación en el OnActivate() del formulario de Login, como lo hice con el primer indicador:

Código Delphi [-]
procedure TForm1.FormActivate(Sender: TObject);
begin
  if(TestMySQLServer('127.0.0.1',3306)) then
    statusServer.Active:=true
  else
    statusServer.Active:=false;
end;

donde TestMySQLServer es:

Código Delphi [-]
function TForm1.TestMySQLServer(ipAddressStr:AnsiString; dwPort : Word):boolean;
var
 client : sockaddr_in;
 sock : Integer;
 ret : Integer;
 wsdata : WSAData;

begin
 Result:=False;
 ret := WSAStartup($0002, wsdata); //Inicializa Winsock
 if ret<>0 then exit;
 try
 client.sin_family := AF_INET; //Establece el protocolo a usar en este caso (IPv4)
 client.sin_port := htons(dwPort);
 client.sin_addr.s_addr := inet_addr(PAnsiChar(ipAddressStr));
 sock :=socket(AF_INET, SOCK_STREAM, 0); //crea un socket
 Result:=connect(sock,client,SizeOf(client))=0; //Estable conexión con un socket
 finally
 WSACleanup;
 end;
end;

Si trato de usar un método de UniConnection es posible que aun no haya sido creado en ese momento y obtenga error.

Agradeceria luces en este sentido. Muchas gracias.
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
Comprobar que una unidad existe Khronos Trucos 0 12-08-2008 01:31:30
Comprobar si existe archivo Ken_Masters API de Windows 2 29-07-2007 17:14:19
Comprobar si un objeto existe kikecg HTML, Javascript y otros 3 21-07-2006 09:20:37
Comprobar si existe la tabla... Acanol Conexión con bases de datos 10 06-06-2006 17:41:58
Comprobar si una tabla existe. BECERRA OOP 2 03-01-2005 16:43:53


La franja horaria es GMT +2. Ahora son las 04:13:26.


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