Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Consulta de existencia de BD y creación (https://www.clubdelphi.com/foros/showthread.php?t=95287)

LIA_GUILLERMO 15-07-2021 17:13:53

Consulta de existencia de BD y creación
 
Buen día, tengo la siguiente duda e inquietud, yo tengo creada mi base de datos para mi aplicación, la base de datos la cree manualmente, pero ahora quisiera que se creara automáticamente al iniciar la aplicación, lo que yo hacía primero era verificar si la base de datos existía y en caso de no existir pues la mandaba a crear, pero me di cuenta que al quitar la base de datos pues me marcaba error en el componente de FireDAC obviamente por que yo lo conectaba a esa base de datos y al no haber pues hay error, ahora mi duda es como verificar que la base de datos exista y crearla si no me eh conectado a alguna base de datos para que trabaje el componente bien y no me marque error.

Espero me puedan orientar en mi duda, Gracias!!!!

Casimiro Notevi 15-07-2021 20:28:15

No tengas conectada la BD en modo diseño, conecta a ella cuando inicies tu aplicación.

Neftali [Germán.Estévez] 16-07-2021 08:42:54

Cita:

Empezado por LIA_GUILLERMO (Mensaje 541839)
ahora mi duda es como verificar que la base de datos exista y crearla si no me eh conectado a alguna base de datos para que trabaje el componente bien y no me marque error.

No comentas qué Base de Datos estás utilizando.

Si es una Base de Datos que utiliza fichero (tipo MSAccess, SQLite,...) pues deberás comprobar si el fichero existe en disco en la ubicación esperada. Con FileExists, por ejemplo.
Si estás trabajando con un SGBD (tipo SQLServer, Oracle, Firebird, Interbase,...) lo que se suele hacer es intentar conectar a la Base de Datos y capturar la excepción con un try..except.

Cita:

Empezado por Casimiro Notevi (Mensaje 541842)
No tengas conectada la BD en modo diseño, conecta a ella cuando inicies tu aplicación.

+1

LIA_GUILLERMO 16-07-2021 16:30:13

Las conexiones que hago las manejo en tiempo de ejecución, el motor de base de datos que manejo es Firebird, y si ya cambie la forma de comprobación, ahora lo hago por medio de FileExists, esa parte ya quedo, pero ahora cuando no existe tengo que crearla y al mandar a crear la base de datos me marca error, yo utilizo el componente de FireDAC TFDConnection y ocupo su función ExecSQL para mandar la sentencia de crear la Base de datos, y ese componente requiere una base de datos para conectarse, pero al no tener ninguna no se que puedo hacer, o existe alguna otra forma en la que yo pueda crearla?

Casimiro Notevi 16-07-2021 17:18:49

Cita:

Empezado por LIA_GUILLERMO (Mensaje 541864)
... me marca error...?

¿ ? :)

LIA_GUILLERMO 16-07-2021 17:50:00

Error while trying to open file
El sistema no puede encontrar el archivo especificado

Lo que pasa que el componente TFDConnection se conecta a una base de datos para poder realizar las sentencias, y yo la conecto a la base de datos que pues no existe y por eso el error, esa es mi duda que puedo hacer para que pueda crear esa base de datos.

Casimiro Notevi 16-07-2021 19:32:28

En todo caso deberías usar un componente para ejecutar scripts sql.
Aunque también podrías incluir en el proyecto una BD vacía y copiarla cuando te haga falta, en lugar de crearla.

LIA_GUILLERMO 02-08-2021 17:17:22

Si Gracias, me fui por el segundo camino, aunque un poco diferente, añadí una base de datos extra solo para poder crear la base final, ya que el nombre lo elige el usuario final entonces puede cambiar, agradezco la ayuda!!


La franja horaria es GMT +2. Ahora son las 12:58:29.

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