![]() |
Consultas muy grandes
Hola a todos,
tenemos una aplicacion con hibernate y SQL server, estoy intentando migrar a Firebird, pero las consultas muy grandes que genera Hibernate (mas de 100000 caracteres), no las soporta Firebird. Alguien sabe si se puede cambiar el numero maximo de caracteres en una consulta SQL en firebird, o bien alguie sabe de otra solucion? Muchas gracias. Saludos. |
Con Sql server, ¿te refieres a MS sql?
Quizás puedas dividir la sentencia en un par de ellas o también podrás reducirla, supongo. En fin, no sabría decirte porque no sabemos qué sentencia sql es. ¿Has visto el documento de pasar mssql a firebird? Por cierto, otra vez procura poner un título más descriptivo, gracias. |
Hola.
Que yo sepa el tamaño máximo de una fila en Firebird es de 64.535 bytes, y no se puede modificar. http://firebirdmanual.com/firebird/e...de-firebird/36 Si no puedes modificar tu estructura/consultas, no sé si vas a poder sortear este problema. Saludos. |
Gracias por las respuestas
Cita:
el documento lo he visto, pero no es problema de algo ms sql, es tema de Hibernate. Tomo nota para lo del titulo gracias. Cita:
siempre utiliza todas los campos con sus alias definidos por el. Y lo hace automaticamente. Tendremos que intentar optimizar y olvidarnos de Firebird. Saludos y gracias. |
A eso quería llegar, puedes recortar mucho:
Puedes sustituir unidadenti0_ por u, por ejemplo, o directamente eliminarlo en este caso, no hace falta.
|
No recuerdo en qué ocasión me ocurrió, pero me pasó lo mismo. Lo solucionamos incluyendo alias en las tablas, y quitando o modificando los alias de los campos. En definitiva, lo que propone también Casimiro. Creo que era con Oracle y Delphi 2. Saludos |
Y se puede reducir mucho más, teniendo en cuenta que es para una exportación no hace falta los alias, sólo los datos:
|
Cita:
Aparte de eso, solo te queda interceptar y simplificar, con las indicaciones que te han dado, las consultas que genera Hibernate (cosa que no sé si es posible). |
tal vez me pierdo en algo, pero lo que entiendo es que cuando trata de crear un query muy largo le da un erro?.... sí eso es lo que crees creo que debes buscar por otro lado, yo tengo que soportar de vez en cuando una tabla moustruosa que tiene muchos campos y sobre esa tabala acabo de hacer un query consultando todos sus campos.. miralo acá... y funciona:
|
Si se trata de pasar datos de mssql a firebird también se puede usar ibpump, por ejemplo. En fin, creo que este mensaje, nada más empezar, refleja que no tiene muchas ganas de resolver el asunto:
Cita:
|
Gracias a todos por vuestro tiempo.
No se trata de una migracion. Es una aplicacion web, que pretendemos que sea validad para varia plataformas y BBDD, esta inicialmente desarrollada y funcionando sobre MS sql, pero queremos ahora ponerla sobre Firebird, Posgressql, etc. Si fuera solo para firebird, no habria problema, se rediseñarian y optimiarian las consultas necesarias, pero hibernate se supone que trabaja una capa por encima y es transaparente al SGDB que tiene por debajo. hemos solcionado de momento el problema, quitando relaciones a las identidades de hibernate y acortando nombres de campo y de tablas. Saldudos. |
Cita:
estas equivocado, he trabajado mucho tiempo con firebird y por eso es la primera que estamos intentando hacer funcionar. Hay un error en mi comentario: Cita:
Perdon por la confusion. Saludos |
Aclarado :)
|
Cita:
|
RONPABLO, el problema es que la sentencia tal y como la genera el programa mencionado "hibernate" ocupa unos 100.000 caracteres. Y el "compilador" de sentencias de firebird admite hasta 65500 caracteres.
Por lo que he entendido, puede reducirla como hemos comentado, pero quiere que sea algo que no se tenga que tocar porque necesita que funcione automáticamente con distintas bases de datos, sin tener que ajustar nada. Es lo que me ha parecido entender. |
Cita:
la sentencia es de mas de 100000 caracteres, y la resctriccion de firebird como bien han comentado, es de 65000 y pico. ya lo tenemos casi solucionado. Gracias de todas formas. |
Cita:
Efectivamente, esa es la idea.:D:D Y ya que estoy, si alguien esta interesado en usar firebird con hibernate para que sea transparente a la BD, que me lo indique, y estare encantado en ayudarle, ya que me estoy peleando yo,que pueda servirle a alguien mas. Saludos. |
ups, disculpas, creo que no se leer, no vi el punto que dice que crea una consulta de más de 100.000 mil caracteres
|
Cita:
|
La franja horaria es GMT +2. Ahora son las 21:48:24. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi