PDA

Ver la Versión Completa : error al insertar


beatriz g
23-08-2006, 14:37:48
Hola otra vez, tengo un problema la insertar, os cuento. Tengo una base de datos Mysql y estoy desarrollando una aplicación para manipular esta base de datos.Para insertar creo un formulario con campos edit, un campo edit por cada valor de la tabla, tambien utilizo un componente SQLQuery y modifico sus propiedades (Add: para añadir la sentencia a ejecutar y modifico el valor de los parametros con los de los campos edit introducidos), despues por ultimo ejecuto la sentencia SQL con ExecSQL.
Este es mas o menos el código:


query_pres.SQL.Clear;
query_pres.SQL.Add('INSERT INTO PRESTACIONES_ECONOMICAS (ID,ID_P,TIPO,ESTADO,F_SOLICITUD,F_RESOLUCION,RESULTADO,TRAMITADO,OBSERVACIONES_PREST,JUSTIFICACION, F_JUSTIFICACION,OBSERVACIONES_JUST)');
query_pres.SQL.Add('VALUES (p1,p2,....);
query_pres.ParamByName('p1').AsInteger:=id;
query_pres.ParamByName('p2').AsString:=e_id_p.Text;

{...}

query_pres.ExecSQL();


El problema es que a veces (no es en ningun caso en especial) al ejecutar el 'query_pres.ExecSQL' me genera la siguiente excepcion de violacion de memoria:

Access violation at address 002C... in module dbexpmysql.dll

No tengo ni idea de porque me genera esta violacion de segmento,
¿se os ocurre algo?
Muchas gracias

Lepe
23-08-2006, 16:36:03
Values (p1,p2....)

debe ser:
Values (:p1, :p2)


¿ha sido fallo al postear o lo tienes así?

Saludos

beatriz g
23-08-2006, 19:55:50
Si, los parametros los tengo bien, con :p1,:p2,....

Lepe
24-08-2006, 10:29:33
Así que me "enseñas la lengua" (:p) ¿no? ... muy bien... muy bien... jajajaja.

Bromas aparte, quizás se esté pasando valores inconsistentes en los parámetros.

Guarda en un fichero de texto las cadenas SQLs antes de ejecutarlas, cuando se produzca un error, puedes examinarlas para ver donde está el fallo.

Saludos y suerte.