Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-05-2014
Avatar de Carmelo Cash
Carmelo Cash Carmelo Cash is offline
Miembro
 
Registrado: jul 2003
Ubicación: Buenos Aires
Posts: 261
Poder: 21
Carmelo Cash Va por buen camino
Migrando de InterBase a Firebird

Hola Foro:

Trabajo con Delphi 7 y he comenzado la migración de un sistema que utiliza InterBase 6.0 y se conecta con BDE 5.01.

Actualmente para conectarme utilizo un TDatabase de la paleta BDE y para las consultas utilizo (cientos de) TQuery tambien de la paleta BDE.

Ya hice la migración de la Base de datos a Firebird

Para conectarme probé usar un TIBDatabase + TIBTransaction de la paleta InterBase. Hasta acá va bien.

El problema surge cuando quiero conectar los (cientos de) Tquery con el TIDataBase. No lo logro.

Encontré que puedo usar TIBQuery de la paleta InterBase, pero esto me obligaría a reemplazar todos los Tquerys que tengo por nuevos.

Leí en otros hilos que migrar de InterBase a Firebird es sencillo, entonces esta es la pregunta:


¿que tengo que reemplazar los cientos de Tquerys por TIBQuerys?
o
¿me puedo conectar de otra manera que no signifique hacer este engorroso trabajo?

Desde ya muchas gracias por su atención.
Responder Con Cita
  #2  
Antiguo 12-05-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
En teoría, no tienes que tocar nada en el programa.

Con interbase instalado, haces un backup transportable de la base de dato.
Desinstala interbase completamente y borras gds32.dll
Instalas firebird.
Restauras el backup.
Se acabó.
Responder Con Cita
  #3  
Antiguo 12-05-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Carmelo Cash.
Cita:
Empezado por Carmelo Cash Ver Mensaje
¿que tengo que reemplazar los cientos de Tquerys por TIBQuerys?
Es lo que yo te aconsejaría sin dudarlo.
Cita:
¿me puedo conectar de otra manera que no signifique hacer este engorroso trabajo?
En principio sería posible compartir el handle de un TDatabase con el TIBDatabase. Pero, aunque resulte un trabajo engorroso migrar los componentes, es preferible a trabajar con ese tipo de engendros y los futuros rompederos de cabeza que te va a traer...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 12-05-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Edito, no me había fijado en los componentes:
Cita:
Empezado por Casimiro Notevi Ver Mensaje
En teoría, no tienes que tocar nada en el programa.
Aunque los componentes debes cambiarlo, como indica ecfisa.

Y también, antes, haces el traspaso de la base de datos de interbase a firebird:
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Con interbase instalado, haces un backup transportable de la base de dato.
Desinstala interbase completamente y borras gds32.dll
Instalas firebird.
Restauras el backup.
Responder Con Cita
  #5  
Antiguo 13-05-2014
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Hay que tener en cuenta que los tQuery trabajan con texto, osea se pueden leer como tal.
Entendido esto es facil darse cuenta que si un query contiene una sentencia sql (que es texto) se puede leer y pasar a otro query, sea del componente que sea.
Por consiguiente:
Si se tienen miles de querys lo único que se necesita es colocar uno solo en el datamodule y pasarle el texto que contenga en el momento que se necesite (bien pueden ser dos o tres máximo )
Sera muy rara la ocasión en la que mas de un query este conectado a la vez, es mas, es una mala practica hacerlo.
Osea:
No se necesita cambiar nada al programa simplemente la conexión la hará el nuevo componente sin necesidad de complicarse la vida.
Muy a lo novato, lo se......
Saludos
__________________
Siempre Novato
Responder Con Cita
  #6  
Antiguo 13-05-2014
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 21
RONPABLO Va por buen camino
Cita:
Empezado por Caral Ver Mensaje
Hola
Hay que tener en cuenta que los tQuery trabajan con texto, osea se pueden leer como tal.
Entendido esto es facil darse cuenta que si un query contiene una sentencia sql (que es texto) se puede leer y pasar a otro query, sea del componente que sea.
Por consiguiente:
Si se tienen miles de querys lo único que se necesita es colocar uno solo en el datamodule y pasarle el texto que contenga en el momento que se necesite (bien pueden ser dos o tres máximo )
Sera muy rara la ocasión en la que mas de un query este conectado a la vez, es mas, es una mala practica hacerlo.
Osea:
No se necesita cambiar nada al programa simplemente la conexión la hará el nuevo componente sin necesidad de complicarse la vida.
Muy a lo novato, lo se......
Saludos

lo dificil de cambiar de TQuery a un TIBQuery radica en que muchos componentes TQuery pueden tener eventos programados, también pueden tener campos personalizados en el editor de campos.

Yo miraría la posibilidad de hacer la conexión por medio de ADO y seguiría usando los TQuerys.
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H"
Responder Con Cita
  #7  
Antiguo 13-05-2014
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 21
RONPABLO Va por buen camino
Cita:
Empezado por RONPABLO Ver Mensaje
lo dificil de cambiar de TQuery a un TIBQuery radica en que muchos componentes TQuery pueden tener eventos programados, también pueden tener campos personalizados en el editor de campos.

Yo miraría la posibilidad de hacer la conexión por medio de ADO y seguiría usando los TQuerys.

bueno, teniendo en cuenta que tenga mucha programación, de lo contrario, si los TQuerys están solos con las consultas y no tienen eventos o cosas similares ahí si me quedaría con los componentes IBX y dejaría los del BDE a un lado
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H"
Responder Con Cita
  #8  
Antiguo 13-05-2014
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Creo que es logico pensar que la mejor manera de programar un query es por medio de la generación del texto por código y no usando su propio editor ya que asi se puede usar una y otra vez el query en el mismo programa, ademas de ser mas limpio y facil de entender.
Si partimos de que la persona que pregunta tiene muchos query en su programa podemos pensar que no es un programador avanzado (como yo), por consiguiente dudo que tenga eventos programados, campos personalizados, vistas u otros menesteres.
Usando esta analogia si simplemente se le cambia la ubicación al nuevo query (en el datamodule) y se le nombra igual que el query al que se reemplazara el programa no se dara cuenta de que paso, simplemente usara el nuevo query con su nueva conexión.
Para mi es lo mas sencillo, mas teniendo en cuenta que revisar y cambiar todos los componentes de un programa sera una labor ardua y se necesitara probarlo muy bien por si algo quedo suelto, que sera muy probable.
Como siempre metiéndome en camisa de once varas....
Saludos
__________________
Siempre Novato
Responder Con Cita
  #9  
Antiguo 13-05-2014
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 21
RONPABLO Va por buen camino
Cita:
Empezado por Caral Ver Mensaje
Hola
Creo que es logico pensar que la mejor manera de programar un query es por medio de la generación del texto por código y no usando su propio editor ya que asi se puede usar una y otra vez el query en el mismo programa, ademas de ser mas limpio y facil de entender.
Si partimos de que la persona que pregunta tiene muchos query en su programa podemos pensar que no es un programador avanzado (como yo), por consiguiente dudo que tenga eventos programados, campos personalizados, vistas u otros menesteres.
Usando esta analogia si simplemente se le cambia la ubicación al nuevo query (en el datamodule) y se le nombra igual que el query al que se reemplazara el programa no se dara cuenta de que paso, simplemente usara el nuevo query con su nueva conexión.
Para mi es lo mas sencillo, mas teniendo en cuenta que revisar y cambiar todos los componentes de un programa sera una labor ardua y se necesitara probarlo muy bien por si algo quedo suelto, que sera muy probable.
Como siempre metiéndome en camisa de once varas....
Saludos
Teniendo en cuenta que él dice:
Cita:
Empezado por Carmelo Cash Ver Mensaje
Hola Foro:

Trabajo con Delphi 7 y he comenzado la migración de un sistema que utiliza InterBase 6.0 y se conecta con BDE 5.01.

Actualmente para conectarme utilizo un TDatabase de la paleta BDE y para las consultas utilizo (cientos de) TQuery tambien de la paleta BDE.
Creo que puede estar en un punto en el que yo estuve hace varios años y fue migrar de paradox a MySQL y luego a Firebird, en ese momento la aplicación usaba los TTable (algo muy malo que pone muy lento la aplicación), pero afortunadamente no tenía programación en los eventos de dichos componentes aunque si tenida muchos campos editados, el cambiar de base de datos (2 veces) fue un proceso largo, monótono y tedioso ya que se tenía cientos de componentes TTable, unos pasaron casi derecho, solo era poner con el mismo nombre el componente TTable, pero muchos más tenían algunas referencias maestro detalle que no fueron muy transparentes... Particularmente creo que hay que ver cual es el caso particular en los cientos de TQuerys que tiene.
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H"
Responder Con Cita
  #10  
Antiguo 13-05-2014
Avatar de Carmelo Cash
Carmelo Cash Carmelo Cash is offline
Miembro
 
Registrado: jul 2003
Ubicación: Buenos Aires
Posts: 261
Poder: 21
Carmelo Cash Va por buen camino
Gracias a todos los que ayudaron

Gracias a todos los que ayudaron.

Les comento que hice. Hice lo que dijo Casimiro

"En teoría, no tienes que tocar nada en el programa....."

Luego de instalar fb, Instalé el BDE en una pc con windows 7, copié la aplicación y se conectó y abrió y funcionó rapidísimo y se pinchó.

En realidad funciona todo menos un proceso que genera facturas, luego de generar alrededor de 2000 (dosmil) me aparece "OUT of memory"

En la versión de InterBase para XP genera sin problema 8000 (ochomil) y no da ese error.

Ahora no sé si tratar de detectar y solucionar ese error o cambiar todos los componentes y ver si será eso.
Responder Con Cita
  #11  
Antiguo 13-05-2014
Avatar de Carmelo Cash
Carmelo Cash Carmelo Cash is offline
Miembro
 
Registrado: jul 2003
Ubicación: Buenos Aires
Posts: 261
Poder: 21
Carmelo Cash Va por buen camino
Se me olvido decir que aveces aparece

"Out of memory" y otras veces

"Out of memory while expanding memory stream"
Responder Con Cita
  #12  
Antiguo 14-05-2014
Avatar de Carmelo Cash
Carmelo Cash Carmelo Cash is offline
Miembro
 
Registrado: jul 2003
Ubicación: Buenos Aires
Posts: 261
Poder: 21
Carmelo Cash Va por buen camino
Bueno, encontré el problema, era un TMemoryStream que creaba al crear el formulario y lo liberaba al cerrarlo.
Ahora lo creo y lo libero cuando lo voy a usar y listo. ya se arreglo.

Ahora hay que ver otras cositas pero creo que ya estamos

Gracias mil por todo.
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
Migrando triggers de Firebird a PostgreSQL macugi PostgreSQL 6 02-05-2013 19:47:57
Migrando a Firebird mjjj Conexión con bases de datos 6 26-09-2007 01:14:39
Migrando a Delphi7 Amos Varios 2 06-08-2007 15:24:43
Migrando a .NET JULIPO Internet 1 15-09-2006 13:23:03
migrando a firebird JoseQ Firebird e Interbase 1 13-08-2004 01:49:47


La franja horaria es GMT +2. Ahora son las 08:52:09.


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