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 20-02-2012
cahp cahp is offline
Miembro
 
Registrado: may 2003
Ubicación: Alicante
Posts: 90
Poder: 22
cahp Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 20-02-2012
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
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.
Responder Con Cita
  #3  
Antiguo 20-02-2012
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
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.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #4  
Antiguo 20-02-2012
cahp cahp is offline
Miembro
 
Registrado: may 2003
Ubicación: Alicante
Posts: 90
Poder: 22
cahp Va por buen camino
Gracias por las respuestas

Cita:
Empezado por Casimiro Notevi Ver Mensaje
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.
es MS sql.
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:
Empezado por guillotmarc Ver Mensaje
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.
Como he dicho, es la forma en que hibernate realiza las consultas. Por ejemplo

Código SQL [-]
Hibernate: select unidadenti0_.id_unidad as id1_2_0_, unidadenti0_.descripcion as descripc2_2_0_, unidadenti0_.id_empresa as id8_2_0_, 
unidadenti0_.fecha_baja as fecha3_2_0_, unidadenti0_.pedir_alto as pedir4_2_0_, unidadenti0_.pedir_ancho as pedir5_2_0_, 
unidadenti0_.pedir_largo as pedir6_2_0_, unidadenti0_.simbolo as simbolo2_0_ 
from pre_unidades unidadenti0_ 
where unidadenti0_.id_unidad=?

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.

Última edición por Casimiro Notevi fecha: 20-02-2012 a las 12:44:41.
Responder Con Cita
  #5  
Antiguo 20-02-2012
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
A eso quería llegar, puedes recortar mucho:

Código SQL [-]
select unidadenti0_.id_unidad as id1_2_0_, unidadenti0_.descripcion as descripc2_2_0_, unidadenti0_.id_empresa as id8_2_0_, 
       unidadenti0_.fecha_baja as fecha3_2_0_, unidadenti0_.pedir_alto as pedir4_2_0_, unidadenti0_.pedir_ancho as pedir5_2_0_, 
       unidadenti0_.pedir_largo as pedir6_2_0_, unidadenti0_.simbolo as simbolo2_0_ 
from pre_unidades unidadenti0_ 
where unidadenti0_.id_unidad=?

Puedes sustituir unidadenti0_ por u, por ejemplo, o directamente eliminarlo en este caso, no hace falta.

Código SQL [-]
select id_unidad as id1_2_0_, descripcion as descripc2_2_0_, id_empresa as id8_2_0_, 
       fecha_baja as fecha3_2_0_, pedir_alto as pedir4_2_0_, pedir_ancho as pedir5_2_0_, 
       pedir_largo as pedir6_2_0_, simbolo as simbolo2_0_ 
from pre_unidades  
where id_unidad=?
Responder Con Cita
  #6  
Antiguo 20-02-2012
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Código SQL [-]
Hibernate: select U.id_unidad as id1_2_0_, U.descripcion as descripc2_2_0_, U.id_empresa as id8_2_0_, 
U.fecha_baja as fecha3_2_0_, U.pedir_alto as pedir4_2_0_, U.pedir_ancho as pedir5_2_0_, 
U.pedir_largo as pedir6_2_0_, U.simbolo as simbolo2_0_ 
from pre_unidades U 
where U.id_unidad=?

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
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #7  
Antiguo 20-02-2012
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
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:

Código SQL [-]
select id_unidad, descripcion, id_empresa, fecha_baja, pedir_alto, pedir_ancho, pedir_largo, simbolo
from pre_unidades
where id_unidad=?
Responder Con Cita
  #8  
Antiguo 20-02-2012
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Cita:
Empezado por cahp Ver Mensaje
Como he dicho, es la forma en que hibernate realiza las consultas. Por ejemplo

Código SQL [-]Hibernate: select unidadenti0_.id_unidad as id1_2_0_, unidadenti0_.descripcion as descripc2_2_0_, unidadenti0_.id_empresa as id8_2_0_, unidadenti0_.fecha_baja as fecha3_2_0_, unidadenti0_.pedir_alto as pedir4_2_0_, unidadenti0_.pedir_ancho as pedir5_2_0_, unidadenti0_.pedir_largo as pedir6_2_0_, unidadenti0_.simbolo as simbolo2_0_ from pre_unidades unidadenti0_ where unidadenti0_.id_unidad=?


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.
Por eso te decía de modificar la estructura de la base de datos. Si separas los datos en varias tablas, las consultas serán más pequeñas, y si pones nombres de tabla más cortos, los alias automáticos también serán probablemente más cortos.

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).
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #9  
Antiguo 20-02-2012
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 21
RONPABLO Va por buen camino
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:

Código SQL [-]
select first 1 anananananananana.IDANAMNESIS, anananananananana.IDANAMNESIS_TEXTO, 
anananananananana.COMPARACION, anananananananana.FECHA_INGRESO, 
anananananananana.FECHA_INGRESO_DATE, anananananananana.NOMBRES, 
anananananananana.APELLIDOS, anananananananana.NOMBRE_PACIENTE, 
anananananananana.FECHAN_DIA, anananananananana.FECHAN_MES, anananananananana.FECHAN_ANO, 
anananananananana.DOCUMENTO_IDENTIDAD, anananananananana.SEXO, 
anananananananana.EDAD, anananananananana.EDADMES, 
anananananananana.DIRECCION_PACIENTE, 
anananananananana.TELF_P, anananananananana.TELF_P_OTRO, 
anananananananana.CELULAR_P, anananananananana.NOMBRE_RESPONS, 
anananananananana.DIRECCION_RESPONSABLE, anananananananana.TELF_RESP, 
anananananananana.TELF_OF_RESP, anananananananana.CELULAR_RESPONSABLE, 
anananananananana.BEEPER_RESPONSABLE, anananananananana.COD_BEEPR_RESP, 
anananananananana.E_MAIL_RESP, anananananananana.REFERIDO_POR, 
anananananananana.TRAT_ODONT_PREV_SI_NO, anananananananana.TRAT_ODONT_PREV_CUALES, 
anananananananana.PADC_ENFERM_SI_NO, anananananananana.PADC_ENFERM_CUALES, 
anananananananana.RECIBE_ALGUN_MEDIC_SI, anananananananana.RECIBE_ALGUN_MEDIC_CUAL, 
anananananananana.PROCED_QUIRUR_SI_NO, anananananananana.PROCED_QUIRUR_CUALES, 
anananananananana.REACC_ALERGIC_SI_NO, anananananananana.REACC_ALERGIC_CUALES, anananananananana.ANTECEDENTES_MEDICOS, 
anananananananana.ANTECEDENTES_ODONTOLO, anananananananana.OBSERVACIONES, anananananananana.CEDULA_NUMERO, 
anananananananana.HIGIENEHORAL, anananananananana.FRECUENCICEPILLADO, anananananananana.USASEDADENTAL, 
anananananananana.ENFERMEDAD, anananananananana.CARIES, anananananananana.RECIDIVA, anananananananana.AMALGAMA, 
anananananananana.IONOMERO, anananananananana.NOMBREPADRE, anananananananana.TELEFONO_PADRE,
 anananananananana.TELEFONOPADRE, anananananananana.NOMBRE_MADRE, anananananananana.TELEFONO_MADRE, 
 anananananananana.TELEFONOMADRE, anananananananana.NUMEROHERMANOS, anananananananana.RELACIONPADRES, 
 anananananananana.ENFERMEDADESHERE, anananananananana.ESTADOCIVIL, anananananananana.NIVELESCOLAR, 
 anananananananana.PESO, anananananananana.ALTURA, anananananananana.SALUDGENERAL, anananananananana.CARDIOP, 
 anananananananana.PRESION, anananananananana.DIABETES, anananananananana.HEPATITIS, anananananananana.FIEBREREUMATICA,
  anananananananana.CONVULCIONES, anananananananana.AMIGDALITIS, anananananananana.ANEMIA, anananananananana.ASMA, 
  anananananananana.TRAUMAFACIAL, anananananananana.ENFERMEDADESE, anananananananana.HERPES, anananananananana.ALERGIA,
   anananananananana.ESTATOMANDO, anananananananana.AESTADOH, anananananananana.AESTADOPORQUE, anananananananana.OTROS,
    anananananananana.HPORQUE, anananananananana.ALG_MEDIC_CUALES, anananananananana.A_ESTADO_HOSPIT_MOTIVO, 
    anananananananana.TIPO_HISTORIA, anananananananana.HEMORRAGIAS, anananananananana.GASTRICOS, 
    anananananananana.FUMA, anananananananana.EMBARAZO, anananananananana.RADIOTERAPIA, anananananananana.FOTOGRAFIA,
     anananananananana.ESTADOCIVILP, anananananananana.PROFESION, anananananananana.NOMBRE_PADRE, 
     anananananananana.TEL_REMITIDOPOR, anananananananana.ODONTOLOGO, anananananananana.TEL_ODONTOLOGO, 
     anananananananana.RECOMENDADOPOR, anananananananana.TEL_RECOMENDADOPOR, anananananananana.TRAUMATISMOS,
      anananananananana.EMPRESA, anananananananana.TIPO_HISTORIA_ORTODONCIA, anananananananana.TIPO_HISTORIA_ORTOPEDIA,
       anananananananana.TERMINOTRAT, anananananananana.DOCTOR, anananananananana.TIPO_PACIENTE, 
       anananananananana.ESTADO_TRATAMIENTO, anananananananana.RH, anananananananana.CELULAR, 
       anananananananana.BARRIO, anananananananana.TIPO_USUARIO, anananananananana.CODIGO_EPS, 
       anananananananana.CODIGO_CIUDAD, anananananananana.CODIGO_DEPARTAMENTO, anananananananana.CODIGO_ZONA,
        anananananananana.APELLIDO_SEG, anananananananana.NOMBRE_SEG, anananananananana.ZONA_RECIDENCIAL,
         anananananananana.SIDA_SI_NO, anananananananana.TELEFONOACROM, anananananananana.CIRUGIAS, 
         anananananananana.OBS1, anananananananana.OBS2, anananananananana.OBS3, anananananananana.OBS4, 
         anananananananana.OBS5, anananananananana.OBS6, anananananananana.OBS7, anananananananana.OBS8, 
         anananananananana.OBS9, anananananananana.OBS10, anananananananana.OBS11, anananananananana.OBS12, 
         anananananananana.OBS13, anananananananana.OBS14, anananananananana.OBS15, 
         anananananananana.CODIGO_EPS_LISTADO, anananananananana.FECHA_AUTORIZADA, 
         anananananananana.FECHA_INGRESO_REAL, anananananananana.PARENTESCO, anananananananana.NUMERO_AUTORIZACION,
          anananananananana.FECHA_NUMERO_AUTORIZACION, anananananananana.HORA_INGRESO, anananananananana.EPS_TELEFONO,
           anananananananana.EMERGENCIA, anananananananana.ACOMPANATE, anananananananana.ACOMPANATE_TEL, 
           anananananananana.PARENTESCO_RESPONSABLE, anananananananana.DOMICILIO, anananananananana.TITULAR, 
           anananananananana.NUMERO_TTITULAR, anananananananana.FECHA_FINAL, anananananananana.NRO_AFILIACION,
            anananananananana.NIVEL_BENEFICIARIO, anananananananana.COD_DOCTOR, anananananananana.ACTIVO, 
            
            anananananananana.OBS_ANTESEDENTES, anananananananana.ATENDIDO_POR, anananananananana.CONVENIO,
             anananananananana.NOTA_IMPORTANTE, anananananananana.MEDICO, anananananananana.LUGAR, 
             anananananananana.PROBLE_ESQUE_FACIALES_SN, anananananananana.PROBLE_ESQUE_FACIALES_OBS, 
             
             anananananananana.TRAUMA_DENTAL_SN, anananananananana.TRAUMA_DENTAL_OBS, anananananananana.MENARCA_SN, 
             anananananananana.MENARCA_OBS, anananananananana.MALARES, anananananananana.ASIMETRIAS_SN, 
             anananananananana.ASIMETRIAS_OBS, anananananananana.IMPORTANTE, anananananananana.DOCUMENTO_RESPONS,
              anananananananana.ESTRATO, anananananananana.MOTIVO_DE_CONSULTA, anananananananana.TRAT_ODONT_PREV_CUALES_S,
               anananananananana.PADC_ENFERM_CUALES_S, anananananananana.A_ESTADO_HOSPIT_MOTIVO_S, 
               anananananananana.RECIBE_ALGUN_MEDIC_CUAL_S, anananananananana.REACC_ALERGIC_CUALES_S, 
               anananananananana.CIRUGIAS_S, anananananananana.CEL_PADRE, anananananananana.CEL_MADRE,
                anananananananana.ENFERMEDADESHERE_S, anananananananana.MEDICO_TEL, anananananananana.OCUPACION_PADRE,
                 anananananananana.OCUPACION_MADRE, anananananananana.TRATAMIENTO_ORTODONCIA_S, 
                 anananananananana.TRATAMIENTO_ORTODONCIA, anananananananana.CIRUGIA_ORAL, anananananananana.CIRUGIA_ORAL_S,
                  anananananananana.FOTOTERAPIA, anananananananana.FOTOTERAPIA_OBS, anananananananana.REVISION_SISTEMAS,
                   anananananananana.ENFERMEDAD_TIROIDEA, anananananananana.ENFERMEDAD_TIROIDEA_SN, anananananananana.DISLIPIDEMIA,
                    anananananananana.DISLIPIDEMIA_SN, anananananananana.OVARIO_POLIQUISTICO,
                     anananananananana.OVARIO_POLIQUISTICO_SN, anananananananana.ENFERMEDAD_ACTUAL, 
                     anananananananana.EDAD_PADRE, anananananananana.EDAD_MADRE, anananananananana.ACTIVIDAD_ECONOMICA,
                      anananananananana.ALTERACIONES_HEMATOLOGICAS, anananananananana.COMPLICACIONES_TTO, 
                      anananananananana.TRASTORNO_EMOCIONAL, anananananananana.LUGAR_NACIMIENTO, anananananananana.CORONARIA, 
                      anananananananana.CORONARIA_SN 
             from TANAMNESIS anananananananana
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H"
Responder Con Cita
  #10  
Antiguo 20-02-2012
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
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:
Empezado por cahp
Tendremos que intentar optimizar y olvidarnos de Firebird.
Puede que esté equivocado, pero parece que van por ahí los tiros
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
Ejecutable muy grandes GerTorresM Lazarus, FreePascal, Kylix, etc. 3 21-07-2010 09:12:58
Se busca: biblioteca para números grandes (muy grandes) Lord Delfos Varios 7 06-02-2010 01:26:35
try-except - grandes problemas pmfras Conexión con bases de datos 1 12-06-2007 02:53:33
Consultas SQL V.S. Consultas Clipper AGAG4 SQL 7 20-12-2005 15:59:31
Grandes frases de grandes personas Nuria Humor 7 18-04-2004 05:40:17


La franja horaria es GMT +2. Ahora son las 17:53:11.


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