Ver Mensaje Individual
  #2  
Antiguo 01-06-2004
Avatar de __marcsc
__marcsc __marcsc is offline
Miembro
 
Registrado: may 2003
Ubicación: Girona
Posts: 577
Reputación: 22
__marcsc Va por buen camino
Buenas

Vamos a ver, si te he entendido bien (disculpa si no es así) tienes una pequeña confusión con dos funciones relacionadas con los query.

Una es la función ParamByName que forma parte de la coleción Parameters del ADOQuery. La otra es la función FieldByName que se encuentra en la clase TDataSet.

Si tu tienes una select del tipo

Código SQL [-]
select Propietario, Ubicacion, Nota 
from PELICULAS
WHERE ID = :MyID

significa que que tienes un parámetro variable MyID que debe instanciarse durante la ejecución del programa. Como supongo que ya sabes, debes instanciarlo con un código del tipo

Código Delphi [-]
with Query, Parameters do
begin
  Close;
  ParamByName('MyID').Value:= 1000; //por ejemplo
  Open;
end;

Ahora bien si lo que quieres es recuperar el valor de un campo mediante su nombre debes utilizar la otra función que mencionaba al principio, FieldByName. El código que tu quieres sería algo como:

Código Delphi [-]
edPropietario.Text := qPeliDetalle.FieldByName('Propietario').Value;
edubicacion.Text := qpeliDetalle.FieldByName('Ubicacion').Value;
mNota.Lines.Text := qPeliDetalle.FieldByName('nota').value;

Como ves el error que te salta es normal, dado que el único parámetro que existe en tu query es MyID. Lo otro son los campos resultantes.

Espero haber entendido tu problema y haber sido de ayuda.

Un saludo!

Última edición por __marcsc fecha: 01-06-2004 a las 23:00:49.
Responder Con Cita