FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Error al insertar en bd con parametros
Un saludo para todos.
Al insertar datos en una tabla con sql y parámetros me da el error :'Assertion failure (c:\user\code\....\firebird.sql.pas, line 1004)'. Lo que hago es : 1.-leer un fichero de texto plano con separador de campos('|'). 2.-Separar cada campo para asignárselo a cada parámetro 3.- Insertarlo en la base de datos. El error lo da al ejecutar la linea :SQLInserta.ExecSQL. El tipo de parámetro (asinteger,..) es correcto( es decir coincide con el tipo de campo de la BD) y la separación de campos también lo hace bien. GetToken es una función para separar campos. Utilizo Dephi XE7 y Firebird 2.5 con Windows 10 Alguna idea? Gracias por vuestro tiempo |
#2
|
||||
|
||||
¿Con qué componentes estás trabajando?
¿No hay más info. del error? ¿Si intentas lanzar la misma consulta (sustituyendo los parámetros) directamente sobre la Base de Datos (con el Administrador que tengas), te da algún error?
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#3
|
|||
|
|||
1.-Estoy trabajando con DBExpres (perdón por no decirlo antes).
2.- No hay más info del error. Eso es todo lo que sale. 3.- Si sustituyo los parámetros por sql directo, funciona bien. No da error:
Pero hasta ahora confiaba más en parámetros. |
#4
|
||||
|
||||
Falta información, suponemos que estás haciendo un bucle al leer de un fichero de texto.
Seguramente es una línea de ese fichero de texto que tiene datos que no son correctos. Además, si es así, o sea, es un bucle, por lógica, ese código no debería ser así, sino así:
|
#5
|
|||
|
|||
Tienes razón Casimiro y ya está arreglado, pero el error es otro: "Assertion failure (c:\user\code\....\firebird.sql.pas, line 1004).
Voy a seguir tu consejo y revisar el fichero por si viene alguna linea con datos no correctos. Gracias a ambos |
#6
|
||||
|
||||
Pon un simple contador y muéstralo para saber en qué línea ocurre, algo temporal, como esto:
Código:
iContador:=0; inicio bucle lee línea; inc(iContador); label1.caption := intTostr(icontador); application.processmessages; q.close; q.param... q.param... q.exec fin de bucle |
#7
|
||||
|
||||
Correcto, es lo recomendable. Siempre utilizar parámetros. El hacer la prueba sin ellos es simplemente para ver si la misma consulta directamente da algún problema y descartar así otros errores.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#8
|
||||
|
||||
Mi segundo offtopic del día:
1. ¿El archivo "firebird.sql.pas" es tuyo?... De ser así, ¿Cuál es la línea 1004? 2. ¿Tienes alguna garantía, o has validado anteriormente que "slinea" tenga 14 elementos? PD: A simple vista parecería mucho mas óptimo hacer un "SplitString" por única vez por línea, para luego tomar cada uno de los elementos del array.
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#9
|
|||
|
|||
Cita:
2.- Sí, está validado y con valores correctos, no viene ningún carácter extraño. Después de mucho probar conseguí saber donde está el error. El error me da en los campos POR_RETE y POR_COMIS. Si quito estos campos, el proceso de inserción lo hace correctamente. Estos campos están definidos en la BD. como campos decimal(5,2) En slinea vienen (ambos) con valor 0,0. El parámetro los defino como asFloat:
Y aquí es cuando se produce el error en el momento de insertar (sqlinsertar.execsql). No da ningún error cuando se hace la asignación. ¿Que es lo que estoy haciendo mal? Gracias a todos por vuestro tiempo Última edición por Casimiro Notevi fecha: 07-07-2020 a las 11:15:56. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Error de Parametros IBX | Chaja | Conexión con bases de datos | 3 | 06-12-2010 04:12:04 |
Error En Los Parametros | DISAC_FIGO | Conexión con bases de datos | 1 | 13-01-2007 20:27:34 |
error en parametros | emeritos | Conexión con bases de datos | 9 | 11-12-2006 17:45:51 |
No puedo insertar datos (por parámetros) en una tabla - Zeos, Mysql | belen | MySQL | 2 | 13-10-2006 00:16:51 |
error en parametros con ado | redlyon13 | Conexión con bases de datos | 10 | 24-05-2004 01:32:22 |
|