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 02-08-2018
Avatar de gmontes
gmontes gmontes is offline
Miembro
 
Registrado: jul 2004
Ubicación: Culiacán, Sinaloa, México
Posts: 668
Poder: 21
gmontes Va por buen camino
error al guardar un xml cfdi 3.3 en un campo blob type 1 segment 80

saludos


tengo el siguiente problema


guardo mi xml que obtengo de respuest de mi pac en un campo blob text 80, todo funciona perfectamente pero al ser de un tamaño de mas de 700 lineas marca error el sql insert


un ejemplo de los articulos

<cfdi:Concepto ClaveProdServ="51161800" NoIdentificacion="7501034655073" Cantidad="1" ClaveUnidad="H87" Unidad="PIEZA" Descripcion="MUCOSOLVAN SOL. 12H 600 MG." ValorUnitario="166.48" Importe="166.48" Descuento="16.65">
<cfdi:Impuestos>
<cfdi:Traslados>
<cfdi:Traslado Base="149.83" Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.000000" Importe="0"/>
</cfdi:Traslados>
</cfdi:Impuestos>
</cfdi:Concepto>



es una factura hecha de varias remisiones por eso es larga y me sale este error:


EZSQLException: SQL Error: Dynamic SQL Error SQL error code = -104 Unexpected end of command - line 756, column 13833. Error Code: -104. can't format message 13:896 -- message file C:\siu\firebird.msg not found The SQL: INSERT INTO cfdi_documentos (empresa, documento, tipo, serie_certificado, cadena_original, sello_digital, contenido_xml, fecha_timbrado, folio_sat, serie_certificado_sat, sello_sat,fecha_cancelacion_sat, status_sat) VALUES('



ya vi el xml y no encuentro ni parentesis abiertos o cerrados ni cosas asi




el campo blob donde se guarda es :contenido_xml


para probar que no es el tamaño del xml

entro en el registro , pego el xml manualmente y no hay problema





en resumen , todo funciona bien y se guardan perfectamente todos los datos incluido el xml, pero cuando el xml a guardar tiene un numero considerable de articulos marca ese error.



no he hecho pruebas con un campo blob mas grande (tengo blob type 1 segment 80), ademas no se si tenga un limite de caracteres la instruccion sql del "INSERT"
__________________
Todos llevamos nuestros demonios a cuestas..

Última edición por gmontes fecha: 02-08-2018 a las 05:59:58.
Responder Con Cita
  #2  
Antiguo 02-08-2018
Avatar de gmontes
gmontes gmontes is offline
Miembro
 
Registrado: jul 2004
Ubicación: Culiacán, Sinaloa, México
Posts: 668
Poder: 21
gmontes Va por buen camino
parece ser que tiene que ver con el tamaño del insert con sus campos y valores,



puse la instruccion completa en el ibexpert y me marca el mismo error


voy a tratar de hacer una sola linea con el xml para ver si lo puedo compactar y hacer la prueba

firebird manual
Inserting into BLOB columns

Inserting into BLOB columns is only possible under the following circumstances:

The client application has made special provisions for such inserts, using the Firebird API. In this case, the modus operandi is application-specific and outside the scope of this manual.

The value inserted is a text string of no more than 32767 bytes.
__________________
Todos llevamos nuestros demonios a cuestas..

Última edición por gmontes fecha: 02-08-2018 a las 07:08:08.
Responder Con Cita
  #3  
Antiguo 02-08-2018
Avatar de gmontes
gmontes gmontes is offline
Miembro
 
Registrado: jul 2004
Ubicación: Culiacán, Sinaloa, México
Posts: 668
Poder: 21
gmontes Va por buen camino
no creo que sea el largo del xml, por el tipo de campo, pero no encuentro el caracter que me marca el error
__________________
Todos llevamos nuestros demonios a cuestas..

Última edición por gmontes fecha: 02-08-2018 a las 07:28:34.
Responder Con Cita
  #4  
Antiguo 02-08-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Diría que es la sentencia que está mal.
Responder Con Cita
  #5  
Antiguo 02-08-2018
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.757
Poder: 21
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
No se si lo que pones es el mensaje de error completo.
Si te fijas en el final del mensaje de error, verás que abre una comilla simple y nunca la cierra.
Parece que en el campo EMPRESA estás tratando de poner un texto...

Cita:
EZSQLException: SQL Error: Dynamic SQL Error SQL error code = -104 Unexpected end of command - line 756, column 13833. Error Code: -104. can't format message 13:896 -- message file C:\siu\firebird.msg not found The SQL: INSERT INTO cfdi_documentos (empresa, documento, tipo, serie_certificado, cadena_original, sello_digital, contenido_xml, fecha_timbrado, folio_sat, serie_certificado_sat, sello_sat,fecha_cancelacion_sat, status_sat) VALUES('
Responder Con Cita
  #6  
Antiguo 02-08-2018
Avatar de gmontes
gmontes gmontes is offline
Miembro
 
Registrado: jul 2004
Ubicación: Culiacán, Sinaloa, México
Posts: 668
Poder: 21
gmontes Va por buen camino
saludos


voy a buscar una sentencia con error y postearla. como comento. es al guardar el xml donde ocurre el error, pero solo en xml con mas de 500 lineas, todos los demas se guardan correctamente
__________________
Todos llevamos nuestros demonios a cuestas..
Responder Con Cita
  #7  
Antiguo 03-08-2018
Avatar de gmontes
gmontes gmontes is offline
Miembro
 
Registrado: jul 2004
Ubicación: Culiacán, Sinaloa, México
Posts: 668
Poder: 21
gmontes Va por buen camino
SALUDOS


este es el xml que marca error y de 50 xml timbrados correctamente bajo el mismo codigo


la diferencia es el numero de conceptos que componen el xml


lo corro en https://www.eversql.com/sql-syntax-check-validator/ y marca 100% correcto



en ibexpert marca el siguiente error:


can't format message 13:896 -- message file C:\Program Files (x86)\HK-Software\firebird.msg not found.
Dynamic SQL Error.
SQL error code = -104.
Unexpected end of command - line 750, column 14298.



el error lo marca dentro del sql editor de IBExpert


eliminando el campo contenido_xml y su datos no marca error


no lo puedo postear por que es mas de 30000 caracteres de largo.


esta en el adjunto


gracias
Archivos Adjuntos
Tipo de Archivo: zip sql con error.zip (8,2 KB, 2 visitas)
__________________
Todos llevamos nuestros demonios a cuestas..
Responder Con Cita
  #8  
Antiguo 03-08-2018
Avatar de gmontes
gmontes gmontes is offline
Miembro
 
Registrado: jul 2004
Ubicación: Culiacán, Sinaloa, México
Posts: 668
Poder: 21
gmontes Va por buen camino
solucion

listo, despues de quebrarme la cabeza todos estos dias encontre la solucion




End of command usually means that the parser reached the end of the statement while it was still expecting tokens, or reached a parser state where it should be complete but there are still tokens left. The fact you are concatenating values into the query is a red flag. Also the "column 532676549" could be an indication of problem, as that exceeds query length limits (64k in Firebird 2.5 and earlier), and also suggests you have literals that are larger than supported (32k). Mark Rotteveel


https://stackoverflow.com/questions/...e-statement-in


el construir el query con los campos y los valores excedia el limite del largo de este


la solucion es parametrizar el insert o update como en este ejemplo . se timbra correctamente y guarda en mi base de datos

Código Delphi [-]
Close;
               SQL.Clear;
                SQL.Text:= 'UPDATE cfdi_documentos SET  contenido_xml = :Variable_xml where  empresa=''CAMSI''  and tipo=''F'' and documento= :Folio_xml';   

               ParamByName('Variable_xml').AsBlob:= facturaCFDIv33.XML;   //aqui va el xml de 912 lineas               
               ParamByName('Folio_xml').AsString:= sFolio;               
               ExecSQL;                                                               
               Close;




listo, gracias por todo
__________________
Todos llevamos nuestros demonios a cuestas..

Última edición por gmontes fecha: 03-08-2018 a las 07:35:44.
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
Error al guardar Jpeg en Campo Blob El_Perrito Gráficos 6 28-04-2012 21:06:38
guardar archivos en un campo blob a_f_g Firebird e Interbase 10 07-11-2008 21:46:28
Error en Query.Open : Invalid field type (BLOB) natalinuyo Gráficos 4 15-10-2008 21:16:29
Problema con Campo BLOB SUB_TYPE TEXT SEGMENT SIZE 80 philadelfia2006 Firebird e Interbase 2 11-12-2007 22:53:58
guardar un fichero en un campo blob apicito Firebird e Interbase 2 02-03-2005 13:01:54


La franja horaria es GMT +2. Ahora son las 02:10:34.


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