Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   error en parametros (https://www.clubdelphi.com/foros/showthread.php?t=38306)

emeritos 11-12-2006 10:29:18

error en parametros
 
Hola

Tengo una sentencia SQL que es :

MQnumperdido.SQLInsert.Clear;
MQnumperdido.SQLInsert.Add('INSERT INTO num_perdido (codigo_mp, numero_perdido) VALUES (:codigo_mp, :numero_perdido)');
MQnumperdido.ParamByName('codigo_mp').AsInteger := MQentradamp['codigo_mp'];
MQnumperdido.ParamByName('numero_perdido').AsInteger := MQentradamp['n_entrada'];
MQnumperdido.Execute;

Pues bien espero que la sentencia este bien contruida por quer me da errores en la sentencia de ParamByName diciendo que el parametro 'codigo_mp' no funciona, y no se ya que hacer. Lo mismo para Delete y Update.

¿ Que estoy haciendo mal ?

Bicho 11-12-2006 11:05:21

Hola yo a bote pronto lo que veo, es que los campos y los parámetros tienen los mismos nombres, y de allí puede haber confusión y liarse.
Prueba a cambiar los nombres de los parámetros a ver que tal. Ponles una letra delante al estilo pCodigo_mp para identificar que es un parámetro.

Saludos

emeritos 11-12-2006 11:49:13

Igual, da el mismo error.

kuan-yiu 11-12-2006 11:55:37

¿Qué dice exactamente el error?

emeritos 11-12-2006 12:10:52

El error dice :

Proyect Almacen.exe raised exception class EDatabaseError with message
'Parameter 'codigo_mp' not found' . Proccess stopped. Use Steo or Run to continue.

emeritos 11-12-2006 12:21:08

Le he puesto esta sentencia y ha funcionado.

MQnumperdido.SQL.Clear;
MQnumperdido.SQL.Add('INSERT INTO num_perdido (codigo_mp, numero_perdido) VALUES (:codigo_mp, :numero_perdido)');
MQnumperdido.ParamByName('codigo_mp').AsInteger := MQentradamp['codigo_mp'];
MQnumperdido.ParamByName('numero_perdido').AsInteger := MQentradamp['n_entrada'];
MQnumperdido.Execute;

En vez de poner SQLInsert he puesto solo SQL. Para el caso deberia de dar lo mismo. Pero no se por que no ha funcionado el anterior.

kuan-yiu 11-12-2006 13:27:43

¿De qué tipo es MQnumperdido? Porque salvo que sea un TUpdateSQL, y aún así la propiedad se llama InsertSLQ...

Lepe 11-12-2006 15:20:59

¿No puedes usar un simple Query?

Si es una inserción oculta para el usuario, es lo más simple.

Saludos

emeritos 11-12-2006 15:37:48

MQnumperdido es del tipo del objeto TQuery.

Un simple Query creo que seria igual que un TQuery pero este ultimo lo trae MyDac, de todas maneras para las eliminaciones y modificaciones lo utilizare y haber que tal.

kuan-yiu 11-12-2006 17:45:51

Cita:

Empezado por emeritos
MQnumperdido es del tipo del objeto TQuery.

Un simple Query creo que seria igual que un TQuery pero este ultimo lo trae MyDac, de todas maneras para las eliminaciones y modificaciones lo utilizare y haber que tal.

Es que si es un TQuery no sé porqué no te ha dado error de compilación al usar "SQLInsert".


La franja horaria es GMT +2. Ahora son las 07:25:35.

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