Cómo saber si una DATABASE existe? (SOLUCIONADO)

Cómo saber si una DATABASE existe? (SOLUCIONADO)

Postby Armando » Sat Jun 17, 2023 5:23 am

Amigos del foro:

Desde código FW, cómo saber si una base de datos (no tabla) existe?, y sin usar
el comando CREATE IF NOT EXISTS BaseDeDatos pues no quiero crearla, solo
necesito saber si existe o no.

Saludos
Last edited by Armando on Wed Jun 21, 2023 1:59 am, edited 2 times in total.
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3229
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Cómo saber si una DATABSE existe?

Postby cmsoft » Sat Jun 17, 2023 11:31 am

Armando:
Con TDolphin hay un metodo que te permite saberlo
oCn:DBExist("midatabase")
En la clase nativa de Fivewin no se si existe el método homónimo
Pero puedes sino hacerlo desde el esquema
Code: Select all  Expand view  RUN

ocn:Query('SELECT schema_name FROM information_schema.schemata WHERE schema_name = "midatabase"'):RecCount() > 0 // Existe
 

Espero te sirva
User avatar
cmsoft
 
Posts: 1291
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Cómo saber si una DATABSE existe?

Postby JoseAlvarez » Sat Jun 17, 2023 12:07 pm

Hola Armando,

Yo lo Hago Asi:

Primero que nada me aseguro de tener una base de datos de CONTROL que SÍ exista para poder conectar al servidor, esa base de datos debe estar en el mismo schema de la que voy a validar, ya que no se como conectar al servidor con TDolphin sin indicar un nombre de base de datos válido.

Luego hago esto:

Code: Select all  Expand view  RUN
    cDataBaseName:="nombreBaseDeDatos"

    cQuery:="SHOW DATABASES LIKE '"+cDataBaseName+"';"

    TRY
       oFacturas:=_oSqlConex:Query( cQuery )
    CATCH
       Fnct_MsgErrorBD("NoMySql"  , .f. , "No hay conexión al Servidor de Datos" , "Sin Acceso a La Red","Error en servicio de Datos",)
       _Close()
       return .f.
    END TRY

    if oFacturas:RecCount>0
        msginfo('Si Existe')
    else
        Msginfo('No existe')
    endif
 


PD: César amigo, como conectas al servidor sin abrir una base de datos? si nos indicas por aca estaria agradecido, ya que asi me evito la creacion de la base de datos de control. La unica forma que se de conectar con TDolphin es asi, indicando una base de datos:

Code: Select all  Expand view  RUN
_oSqlConex:=tDolphinSrv():New( _cHost, _cUser, _cPasswordUser, val(_cPuertoMysql),, _cDataBase,  { | oConex, nError |  SQL_ConnetError( oConex, nError ) })


Gracias !!
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
JoseAlvarez
 
Posts: 797
Joined: Sun Nov 09, 2014 5:01 pm

Re: Cómo saber si una DATABSE existe?

Postby Armando » Sat Jun 17, 2023 2:27 pm

César y José, José y César

Muchas gracias, voy a probar y aviso.

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3229
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Cómo saber si una DATABASE existe?

Postby nageswaragunupudi » Tue Jun 20, 2023 7:57 pm

oCn:DBExist("midatabase")
In the Fivewin native class I don't know if the homonymous method exists

In Fivewin Native class we have
Code: Select all  Expand view  RUN
? oCn:DbExists( cDbName )


If using ADO
Code: Select all  Expand view  RUN
aDb := FW_AdoCatalogs( oCn )
? AScan( aDb, { |c| Lower( c ) == cDatabase } )

This works for all RDBMS including MySql
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10646
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: Cómo saber si una DATABASE existe?

Postby Armando » Wed Jun 21, 2023 1:59 am

Mr. Rao:

Thank you so much.

Regards
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3229
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 67 guests