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)
-   -   Uso GBAK para mover DataBase-Firibird en el mismo PC? (https://www.clubdelphi.com/foros/showthread.php?t=83178)

bulc 20-05-2013 11:14:21

Uso GBAK para mover DataBase-Firibird en el mismo PC?
 
Tengo que cambiar de ubicación una BaseDeDatos, Firebird, de una carpeta a otra dentro del mismo ordenador. Mi pregunta es si debo usar gbak para copiarla y restaurarla o me vale con moverla usando
el sistema operativo (Windows 7). ¿Se podrían corromper los datos de hacerlo vía Windows?

Casimiro Notevi 20-05-2013 11:46:36

Asegúrate de cerrar todas las conexiones (mejor incluso: desactiva el servicio firebird), la copias/mueves y luego vuelves a activar el servicio firebird.

bulc 20-05-2013 22:10:00

Osea, lo pongo en Stop y quito Running...
 
Cita:

Empezado por Casimiro Notevi (Mensaje 460758)
Asegúrate de cerrar todas las conexiones (mejor incluso: desactiva el servicio firebird), la copias/mueves y luego vuelves a activar el servicio firebird.

Supongo que es eso. Lo doy por supuesto si no me contestas.

Casimiro Notevi 20-05-2013 22:27:23

Cita:

Empezado por bulc (Mensaje 460806)
Lo doy por supuesto si no me contestas.

Mí, no entender :D

cointec 21-05-2013 01:15:32

Cuando no haya conexiones, renombra la base de datos, si te deja entonces puedes copiarla sin problemas. Si tuvieses varias bases de datos funcionando, no es una buena idea tener que parar el motor de base de datos para mover una base de datos de ubicación.

Yo suelo utilizar alias en las conexiones. Si cambias la ruta del alias en primer lugar, impides que se puedan conectar a la base de datos mientras la mueves, por supuesto, una vez que se ha renombrado. Una vez en el destino, dejas el nombre al que apunta el alias.

Casimiro Notevi 21-05-2013 01:23:02

Cita:

Empezado por cointec (Mensaje 460819)
Cuando no haya conexiones, renombra la base de datos, si te deja entonces puedes copiarla sin problemas..

Ese método no es muy fiable, no sería la primera vez que veo una BD copiada así y que estaba defectuosa, aunque se copió sin problemas.

La opción de cambiar el alias es una estupenda idea.

bulc 21-05-2013 11:35:04

Gracias pero, ¿cómo gestiono los ALIAS? Soy novato
 
Cita:

Empezado por cointec (Mensaje 460819)
Cuando no haya conexiones, renombra la base de datos, si te deja entonces puedes copiarla sin problemas. Si tuvieses varias bases de datos funcionando, no es una buena idea tener que parar el motor de base de datos para mover una base de datos de ubicación.

Yo suelo utilizar alias en las conexiones. Si cambias la ruta del alias en primer lugar, impides que se puedan conectar a la base de datos mientras la mueves, por supuesto, una vez que se ha renombrado. Una vez en el destino, dejas el nombre al que apunta el alias.

Sólo contacto con Firebird usando el ISQL y el Guardian. El resto es territorio indio. ¿Serías tan amable de dar alguna indicación sobre como gestionar
los alias en Firebird? Gracias de nuevo.

cointec 21-05-2013 16:28:07

En el raíz de la instalación de Firebird tienes un archivo (si no existe lo creas) llamado aliases.conf.
El formato es muy simple. En cada línea puedes establecer un par de valores alias=ruta+basededatos.

Por ejemplo,

Midb=c:\bd\midb.fdb

Cuando formas la cadena de conexión, por ejemplo para una conexión local, en vez de localhost:c:\bd\midb.fdb utiliza localhost:midb.

De esta forma es sencillo cambiar la ubicación de la base de datos sin tener que modificar las cadenas de conexión en los puestos cliente.

bulc 21-05-2013 21:52:33

Entendido, pero no... tanto.
 
Mi Firebird_2_5 se encuentra en C:\Program Files\Firebird\Firebird_2_5. El archivo de configuración de alias, ¿debe estar en Firebird_2_5?
Parece mentira que de cada paso avanzado, salgan tres o cuatro dudas más.
Yo no acabo de entender como es que mi antigua base de datos Paradox con sólo un TTable se tragara seis mil quinientos registros (y subiendo) como
si nada. Y ahora con Firebird no hace más que decir: "Insuficient memory". Pero bueno, eso es otra historia.
Me pregunto qué componentes son los menos "pesados" para conectar con Firebird. Pero bueno, mejor abro otro nuevo filamento a ver si se me enciende
la mente un poco.
Por cierto, nadie se conecta a mis bases de datos... salvo yo.

bulc 21-05-2013 21:57:12

En el pájaro de Firebird Guardian del Panel de Control
 
Cita:

Empezado por Casimiro Notevi (Mensaje 460810)
Mí, no entender :D

Perdona. Me refería a detener el servidor Firebird en el pájaro negro y de fondo amarillo del Panel de Control. Donde pone "running" pues que ponga "stop". Un fallo mío.
Eso es desconectar el servidor, ¿no?

Casimiro Notevi 21-05-2013 22:56:12

Cita:

Empezado por bulc (Mensaje 460881)
Yo no acabo de entender como es que mi antigua base de datos Paradox con sólo un TTable se tragara seis mil quinientos registros (y subiendo) como si nada. Y ahora con Firebird no hace más que decir: "Insuficient memory".

Está claro que ese mensaje no es de firebird.
Para que te hagas una idea, algunos foreros de clubdelphi y yo mismo, tenemos (nuestros clientes) bases de datos firebird de decenas de gigas y cientos de millones de registros por tabla. Con cientos de conexiones y sin problemas, por supuesto.

Cita:

Empezado por bulc (Mensaje 460882)
Eso es desconectar el servidor, ¿no?

Correcto :)

bulc 22-05-2013 12:11:37

Algo no encaja, tengo 4 gigas de Ram
 
Ahora ya más en serio. Tengo una base de datos con nueve campos, tres blobs de texto y uno de gráficos. En total tiene 6500 registros.
Uso IBDataBase, IBDataSet, IBTransaction, Provider y ClientDataSet. Cuando intento activar a true el ClientDataSet, éste se lo piensa, se toma un tiempo
y al final me dice: Insuficient Memory for this operation. Mi ordenador sobremesa tiene 4 gigas de ram.
En cambio estos mismos datos, en una tabla Paradox corren en un portátil de 1 giga de ram sin problemas.
¿Qué es lo que hago mal?

Casimiro Notevi 22-05-2013 12:24:57

Cita:

Empezado por bulc (Mensaje 460924)
¿Qué es lo que hago mal?

Me temo que no somos adivinos y necesitamos ver el proyecto o algún trocito de código ;)

bulc 22-05-2013 12:34:25

Pero, si estoy en la parte de diseño...
 
Te lo copiaría con mucho gusto, pero estoy en la parte de diseño. Date cuenta. Coloco los componentes en el Form (sin DataModule) y el atasco viene
al llegar al componente ClientDataSet. En el momento que intento poner Active=True.
De todos modos si me dices qué otra cosa puedo hacer, lo haré. Pero código-código es que no he llegado a poner ni una coma.
He puesto sólo los componentes. Si quieres que te dé detalles de conexión en el IBDataBase...u otros dímelo.
Muchas gracias por tu interés. Realmente estoy atascado...
Tal vez algún recurso (Tabla) que no se ha cerrado.

bulc 22-05-2013 18:00:30

AutoRespuesta al error de insuficiencia de memoria en ClientDataSet
 
Después de cerrar ClubDelphi me di una vuelta buscando ClientDataSet error y en Intitec.com me enteré que hay una propiedad en el TClientDataSe que
se llama PacketData. Normalmente está asignada a -1, lo cual quiere decir en lenguaje novato que se engulle toda la tabla y la pasa a la memoria.
Si se asigna a PacketData, por ejemplo 100; irá cargando de 100 en cien según se vayan agotando los cien anteriores. Lo que no entiendo es como va
marchar atrás. Supongo que será lo mismo. Lo que me intriga es que el ClientDataSet trabaja emparejado con el TDataSetProvider (como su nombre indica)
también tendría que poder controlar el nº de registros que se cargan. ¿Sabes si es así y cómo se hace?
El caso es que volví al Delphi y cambié el PacketData. Ay, amigo. entonces se cargan esos registros sin rechstar y sin molestar con el terrible y ominoso
"Insuficient memory".

Casimiro Notevi 22-05-2013 18:13:22

Bueno, lo que comentas y preguntas está explicado en los libros que te he recomendado varias veces "La cara oculta de delphi 4 y 6" ;)
Es algo que Al González también te puede haber explicado, pero, como te dije antes, no somos adivinos y no vemos tu código :p

bulc 22-05-2013 19:53:23

Bueno, todo acaba bien
 
Cita:

Empezado por Casimiro Notevi (Mensaje 460978)
Bueno, lo que comentas y preguntas está explicado en los libros que te he recomendado varias veces "La cara oculta de delphi 4 y 6" ;)
Es algo que Al González también te puede haber explicado, pero, como te dije antes, no somos adivinos y no vemos tu código :p

Es que no siempre el código lo resuelve todo. Los novatos dejamos el código para el final. Ya ves, al final todo se arregló y yo contento. Ahora a ver si acabo lo que me falta. Seguro que sí.
Un abrazo para los moderados.

Casimiro Notevi 22-05-2013 21:48:49

Cita:

Empezado por bulc (Mensaje 460974)
Después de cerrar ClubDelphi me di una vuelta buscando ClientDataSet error y en Intitec.com me enteré que hay una propiedad en el TClientDataSe que se llama PacketData. Normalmente está asignada a -1, lo cual quiere decir en lenguaje novato que se engulle toda la tabla y la pasa a la memoria.

Buen sitio es esa web.


La franja horaria es GMT +2. Ahora son las 01:17:20.

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