Ir al contenido



Foto

Uso de Firebird 3.0.4 con BDE

firebird bde

  • Por favor identifícate para responder
1 respuesta en este tema

#1 Camlost

Camlost

    Newbie

  • Miembros
  • Pip
  • 1 mensajes
  • LocationCiudad de México

Escrito 11 julio 2019 - 05:39

Buenas tardes, actualmente en la empresa estamos intentando actualizar la base de datos en la que se basa el sistema que desarrollamos, actualmente esta en Firebird 2.5, pero se piensa migrar a Firebird 3.0.4.

 

El problema que nos hemos encontrado es que parte del sistema esta codificado con componentes basados en BDE (es un sistema heredado y que se creó hace ya varios ayeres), por su tamaño, actualmente no es opción cambiar los componentes a base de datos por otros que no se basen en el BDE, por lo que al migrar una base de datos de firebird 2.5 a 3.0.4 y realizar una ejecución de prueba, nos encontramos con varios errores (poder dar de alta un alias en el BDE Adminidstrator, errores en la ejecución, etc.). El problema de la creación del alias ya esta resuelto, pero nos encontramos que las consultas con los TQuery usando parámetros y la relación de dos tablas como maestro detalle generan el siguiente mensaje de error: "Incorrect values within SQLDA structure. SQLDA version expected between 1 and 1, found 0.".

 

¿Alguno de ustedes ya ha lidiado con este problema?, agradecería pudieran darnos un poco de luz en este problema ya que una opción que estamos manejando sería el cambiar en tiempo de ejecución los querys en los TQuery  reescribiéndolos eliminando las referencias a los parámetros e insertando los valores que se enviaban por TQuery.parambyname('nombre_parametro').AsString al query, lo que sería algo engorroso dado la extensión del sistema, por lo que desearíamos encontrar una solución que implique la menor modificación de lo ya codificado.

 

Les agradezco de antemano su atención y la ayuda que puedan brindarnos.

 

El sistema esta el Delphi 2007, y como ya les comenté, se piensa usar Firebird 3.0.4.

 

Saludos y gracias.


  • 0

#2 César Salazar

César Salazar

    Newbie

  • Miembros
  • Pip
  • 1 mensajes

Escrito 13 julio 2019 - 07:51

Lamentablemente el BDE ha dejado de ser funcional para muchos motores, entre ellos Interbase del cual desciende Firebird, a partir de las versiones XE de Embarcadero se dejó en el olvido.

 

De ser posible trata de implementar nuevamente un nuevo gestor de componentes, entre los mejorcitos que han sustituido al BDE se encuentra FIREDAC, otra solución puede ser y digo puede ser ya que al cambiar a la versión 3.0.4 de Firebird la estructura de las tablas cambia de manera drástica es poder usar un Firebird Embebido con las estructuras de las bases de datos usando el FBClient.dll en vez de GDS32.dll misma que también ha dejado de ser compatible y solo se sigue usando en las versiones mas nuevas de Interbase que trae ahora Embarcadero.

 

También están los componentes IBX que se mantienen en la instalación de RAD Studio, pero lo aconsejable es migrar también los componentes de conexión.

 

Si emigras a 3.0 de Firebird, también debes migrar los componentes de conexión aun que eso signifique una reestructuración del software, en un momento fui renuente de cambiar el BDE, pero al ver que los Sistemas operativos Windows iban rumbo a 64 bits, tuve la necesidad de cambiar a FIREDAC.

 

Existe una versión de componentes pero reitero, usa FIREDAC y un poco de tiempo para reestructurar el Software.

 

En la Web oficial de Firebird Alex Peshkov menciona que la nueva arquitectura no funcionará con los viejos proveedores de conexión entre ellos el BDE, y que los nuevos proveedores de componentes, se están adaptando a la nueva estructura de Firebird 3.0, FIREDAC en su momento lo contempló e hizo los cambios pertinentes, para que sus componentes funcionen en las versiones 2.5 y 3.0 respectivamente.

 

Saludos.


  • 1





Etiquetado también con una o más de estas palabras: firebird, bde