Cita:
Empezado por delphi.com.ar
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.
|
1- El archivo no es mio.Debe ser de Delphi.
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:
Código Delphi
[-] (SQLInsertar.ParamByName('IPOR_RETE').AsFloat := StrToFloat(getToken(slinea,'|',10));
SQLInsertar.ParamByName('IPOR_COMIS').AsFloat := StrToFloat(getToken(slinea,'|',11));
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