Ver Mensaje Individual
  #2  
Antiguo 06-12-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Reputación: 24
Bicho Va por buen camino
Hola,

Vamos a ver si yo tambien me aclaro.

Cita:
Empezado por emeritos

1.- Estoy utilizando el objeto MyQuery y he visto que exite una propiedad llamada SQLInsert, y que ha generado automaticamente una insercion:

INSERT INTO num_perdido
(codigo_mp, numero_perdido)
VALUES
(:codigo_mp, :numero_perdido)

Pues bien, que se pondria en el VALUES si el codigo_mp o el otro campo, fuese o viniese de otra tabla (ejemplo MyQuerycodigos['codigo_mp']) o biniese de un EDIT o de un DBEdit (campo enlazado).
A la hora de asignarlos los parámetros lo harías así:
Código Delphi [-]
MyQuery.ParamByName('codigo_mp').AsString := MyQueryCodigos['codigo_mp']; //creo que iria así, si me equivoco que me corrigan.
Cita:
Empezado por emeritos
2.- Ha por cierto que siginifica en el borrado o en la modificacion

**** =:Old_codigo_mp

no lo veo claro, aunque todo funciona bien.
Supongo que te refieres a lo que sigue a los dos puntos, ¿no?
En este caso, los dos puntos delante de un nombre de lo que en teoria debiera ser un valor, indica parámetro, es decir, ese valor se le manda por parámetro a la consulta (al igual que en el insert anterior). Lo que haces es indicarle al SQL que le pasarás un valor por parámetro, y ese parámetro se llama Old_codigo_mp.
Para pasarle ese parámetro, lo harás de la siguiente manera:

Código Delphi [-]
MyQuery.ParamByName('Old_codigo_mp').AsString := //aquí pones el valor que le mandes;
 //He puesto AsString, pero tu le mandas el tipo de dato que esté esperando esa columna en la tabla.

Cita:
Empezado por emeritos
3.- Por ultimo, para ejecutar una sentencia SQL dentro de un MyQuery hay que poner MyQuerycodigos.Execute.
Depende, si la sentencia es de consulta (SELECT), no necesitas el Execute, puede usar el método Open o la propiedad Active := True;
En caso de que la sentencia implique modificación de datos (inserta, delete, update, drop, create, ...) si debes usar el método Execute.

Espero te sirva.

Saludos
Responder Con Cita