![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Poca documentacion
Realmente hay poca documentación de la migracion de FB 3 a FB 4. Hay determinadas funciones (UDF) que son validas en FB 3 y que cambian de nombre y quizás de propiedades en FB 4.
Hay, en la carpeta MISC de fb 4 un SQL para actualizar funciones, que se lo pasé a mi base de datos, tras lo cual, al hacer de nuevo backup/restore me dio un warning advirtiendo que la funcion FLOOR() no existe en FB 4. Parece ser que por un olvido, la función FLOOR no ha sido incluida en el mencionado SQL actualizador de nombres de UDFs de FB3 a FB4. Tampoco se si ese warning es suficiente para que el restore no se haya hecho completamente y de ahí que no funcionen los métodos de edición de los controles de datos de la pestaña Interbase de Delphi. |
#2
|
||||
|
||||
Lo he probado y funciona normalmente.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal Última edición por Casimiro Notevi fecha: 17-03-2021 a las 19:49:15. |
#3
|
|||
|
|||
Efectivamente...
Muchas gracias Casimiro Notevi.
Tengo que buscar entonces en el proceso de migración de mi base de datos FB 3 a FB 4. Como comenté me dió un warning en el restore, con la función FLOOR. Es decir, no hizo un restore limpio y puede que esté ahí el motivo. También puede influir que mi Delphi es Delphi 6. He de suponer que la prueba que has hecho tu ha sido con una base de datos creada directamente en FB 4. Cuando consiga que funcione correctamente con mi base de datos migrada, pondré por aquí el motivo. Saludos. |
#4
|
||||
|
||||
Recuerda que para cambiar de versión una BD o de sistema operativo, hay que crear el backup transportable.
gbak -t ..... Lo de la versión de delphi no tiene nada que ver, o al menos no debería influir, salvo que los componentes que estés usando no estén adaptados a las nuevas versiones.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#5
|
|||
|
|||
Te cuento mi experiencia al migrar de Firebird 1.5.6 a Firebird 3.0, resulta que se recomienda no usar UDF's pero las permite, lo que sucedió es que nos resulto la BD en Firebird 3.0 pero con UDF's de la versión 1.5, no se si las funciones al ejecutarse se hacían por el lado de las UDF's o de las funciones internas del motor. Lo que nos tocó hacer fue eliminar todas las funciones de las UDF's, las que no se dejaron pues, porque se usaban en triggers y procedimientos almacenados, pusimos en comentarios donde se usaban. La función FLOOR es una de esas que generan problema, nos toco hacer una hoja en Excel con el nombre del trigger o procedimiento almacenado afectado, comentar las líneas, luego bakup/restore y quitar los comentarios.
__________________
Luis Fernando Buelvas T. |
#6
|
|||
|
|||
Resuelto!
Indicaciones para migrar de firebird 3.0 a firebird 4.0
1) Realizar un backup con el parámetro -t en firebird 3.0 2) Realizar un restore normal en firebird 4.0 - Nos dará una serie de warnings relativos, sobre todo, a UDFs. pero creará la base de datos, aunque esta base de datos no es utilizable. 3) Nos conectamos con Ibexpert u otro RDBMS a dicha base de datos y lo primero que hacemos es pasar el script UDF_REPLACE que viene en la ruta c:\archivos de programa\firebird\firebird_4_0\misc\upgrade\v4.0 4) Hacemos backup normal de la base de datos, ya en la 4.0 y luego otra vez restore. Si no nos da ningún tipo de warning, la base de datos así genereada ya es utilizable. Si da algún warning, como fue mi caso, con la función FLOOR, toca entrar a la base de datos y localizar las dependencias de FLOOR y cambiarlas por otra función similar (en mi caso usé CAST ({valor} as integer). Luego volver a hacer backup/restore hasta que no de ningún warning. Lo bueno que tiene firebird 4 es la replicación nativa, entre otras cosas. No obstante, en la RC1 no he visto que mejore las prestaciones en cuanto a velocidad de Firebird 3.0 o firebird 2.5 Saludos. |
#7
|
|||
|
|||
En mi caso pasé de Firebird 2.5 a Firebird 4.0 RC1, lo unico que puedo decir que el proceso de conversión no me dió ningún fallo, pero cuando desde delphi algo una simple suma con SQL no me devuelve ningun valor y la misma consulta con los mismos parametros desde el ibexpert si que me da resultado. Será un problema de delphi, del firedac o de la RC1, estoy con Delphi Rio, solo me queda decir que con la consulta en firebird 2.5 si devuelve la suma. Es una consulta muy sencilla " Sum(Campo),Sum(Campo1) Where xxxxxxxx, lo raro es que no devuelve 0, devuelve blancos. Me da que voy a tener que eliminar la FB4 y volver a FB 2.5 que funciona de perlas.
Saludos.
__________________
SI UN PROBLEMA TIENE SOLUCION, YA NO ES UN PROBLEMA, Y SI NO LA TIENE PARA QUE PREOCUPARSE. |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Sobre Release Notes de Firebird | Delphius | Firebird e Interbase | 10 | 13-11-2008 04:25:03 |
Firebird 2.1 Final Release | RolphyReyes | Noticias | 3 | 18-04-2008 22:41:56 |
Traducción Release Notes de Firebird | guillotmarc | Firebird e Interbase | 10 | 24-10-2003 03:02:02 |
Diferencias en Firebird 1.5 Release Candidate 3 | AMO | Firebird e Interbase | 0 | 16-06-2003 00:48:44 |
Firebird 1.5 Release Candidate 3 | __cadetill | Firebird e Interbase | 0 | 04-06-2003 16:13:32 |
![]() |
|