Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Conexion a una BD Firebird (https://www.clubdelphi.com/foros/showthread.php?t=49043)

FelipeDiaz 11-10-2007 14:02:34

Conexion a una BD Firebird
 
Hola a todos,
Alguien podria ayudarme....

Necesito saber o estar seguro como conectarme desde delphi en tiempo de ejecucion a una BD firebird, por codigo.

No se si ya alguien trato el tema. Tengo componentes FIbPlus.

Gracias

Lepe 11-10-2007 15:04:24

abajo del todo tienes "hilos relacionados" que tienen enlaces muy interesante y ejemplos.

también en www.firebird.com.mx tienes ejemplos las "guías rápidas de firebird"

Saludos

FelipeDiaz 11-10-2007 16:50:05

Conexion a BD Firebird
 
hola Lepe muchas gracias, por la respuesta.


Ya se como lograr la conexion.... En un formulario dejo un FibDatabase configurado con las opciones comunes como son... servidor local, User, Passw, Charset, (Para ahorrar tiempo) y solo en modo ejecucion le escribo el path donde esta la BD, y hago la propiedad Connected = true. y listo.

Bueno ahora (la idea es ir incrementando la complejidad en el desarrollod e una aplicacion) y te agradecieria si me asistieras en una serie de inquietudes,

Quiero ahora hacer esto:

1. Supongamos que tengo una aplicacion que accede a una BD que esta en el directorio BDGENERAL (directorio en donde quiero guardar todas las BD a las que creare y a las que me conectare por medio d emi aplicacion). en ese directorio tengo desde un principio solamente una base de datos llamada MODELO (que sera como una BD Plantilla para crear las otras ).

2. A partir de la BD MODELO, la aplicacion (en delphi) debe Crear otra BD con la misma estructura pero vacias.

Imaginate algo asi como que abres la aplicacion y te presenta una ventana con la pocibilidad de:

a. Abrir Bases de datos (en un principio solo se podra abrir la BD MODELO) ..- ....como Abrir la BD, fue el paso de arriba.

b. Crear una nueva base de datos (A partir de la Modelo)

c. Eliminar.


Ahora necesito saber ......

1. Como crear una base de datos a partir de la estructura de una existente.

2. asi como las tabals de la BD Modelo estan en el Directorio MODELO, la nueva BD debe quedar en un directorio por ejemplo BDNUEVA1.


Observacion:
La aplicacion estara conectada desde un principio de forma persistente a una peuqeña BD que tendra guardado en un campo el ALIAS ( ejemplo MODELO, BDNUEVA1, BDNUEVA2) y en el otro campo la Ruta para poder conectar la correppondiente base de datos, segun la eleccion del Uruario.

Espero no haber sido confuso en al explicacion.

Se que hay muchos ejemplo, pero quisiera que me dijeran en palabras (no necesariamente con codigo) en palabras ....que instrucciones puedo utilizar, y mas o menos ideas o sugerencias, al respecto.

Agradezco toda la colabroacion perstada.

Saludos y gracias.

FelipeDiaz 11-10-2007 20:58:36

Bueno... Lepe antes que me contestes... se me ocurrio esta solucion y creo que me funcionara y es sencilla.

1. Gbak -b permite hacer copia de cada BD. pero si cambias -b por -m Copiaras los Metadatos. osea la estructura.

2. Luego se vuelve a restaurar con el nuevo nombre. Y listo.

En el mismo directorio tienes otra BD igualita.

El primer problema que em surgio es como ejecutar Gbak desde Delphi, luego de varios intentos por codigo... no obtuve sino una copia que al parecer estaba mala.

El codigo es algo parecido a esto:
ShellExecute(handle,'open','"C:\Archivos de programa\Firebird\bin\gbak.exe"',' -m -user SYSDBA -password masterkey "C:\Documents and Settings\Luis Felipe\AGENDA.FDB C:\Documents and Settings\Luis Felipe\COPIA.GBAK"',nil, SW_SHOWNORMAL);

En todo caso.....

Creo haberlo resuelto usando IBBackupService1 y pFIBRestoreService1, son dos componentes que vienen en la paleta FIBPLUSservices que s einstala junto a los FIBPLUS....solo se configuran y se puede hacer copia y restaurar BD de Firebird haciendo un solo Click.

.... Con todo esto ya creo poder crear la Aplicacion que me permita interactuar entre varias BD's Sobretodo, Crear nuevas a partir de un modelo.


En la medida que avance espero compartir mis inquietudes,


Saludos

Lepe 11-10-2007 22:25:56

Otra idea:

Con Ib Expert o EMS puedes extraer todos los metadatos. Esos metadatos los guardas en un archivo de texto. Dicho archivo se carga en un FIBScript (no conozco ese componente, pero debe tenerlo).

Quedaría algo así:
Código SQL [-]
/******************************************************************************/
/****         Generated by IBExpert 2005.06.07 11/10/2007 22:19:27         ****/
/******************************************************************************/

SET SQL DIALECT 3;

SET NAMES ISO8859_1;

CREATE DATABASE 'd:\sistema\nombre1.FDB'
USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE 4096
DEFAULT CHARACTER SET ISO8859_1;

.... aqui continua, pero lo corto para no extenderme más

Para crear una nueva BBD, solo tienes que modificar la línea del "CREATE DATABASE", después ejecutas el script: FIBScript.Execute y listo, BBDD creada y sin datos.



Saludos


La franja horaria es GMT +2. Ahora son las 10:11:10.

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