Ver Mensaje Individual
  #9  
Antiguo 07-07-2020
identsoft identsoft is offline
Miembro
 
Registrado: abr 2006
Posts: 282
Reputación: 19
identsoft Va por buen camino
Cita:
Empezado por delphi.com.ar Ver Mensaje
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

Última edición por Casimiro Notevi fecha: 07-07-2020 a las 11:15:56.
Responder Con Cita