Ver Mensaje Individual
  #16  
Antiguo 26-05-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por bulc Ver Mensaje
Por cierto, las subpropiedades de la Prop. Params del Query me dejan un poco al pairo. ¿Se pueden explicar aqui?
Hola bulc.

A ver si puedo aclarar un poco el asunto...

Los parámetros se definen en la consulta y siempre se escriben precedidos por dos puntos ':'. La consulta se puede asignar en tiempo de diseño o en tiempo de ejecución.

Si en tiempo de diseño, desde el Object Inspector, asignamos a la propiedad SQL el valor:
Código SQL [-]
SELECT * 
FROM TABLA
WHERE NAME = :PNAME
Se habrá creado un parámetro llamado "PNAME", cosa que podes comprobar desde el mismo Object Inspector haciendo click sobre los '...' de la propiedad Params.

Habiendo sido creada la consulta y su parámetro, se puede llamar bién por su propiedad vectorial Params:
Código Delphi [-]
  with IBQuery1 do
  begin
    Close;
    Params[0].AsString := Edit1.Text;
    Open;
  end;
O bién mediante el método ParamByName:
Código Delphi [-]
  with IBQuery1 do
  begin
    Close;
    ParamByName('PNAME').AsString := Edit1.Text;
    Open;
  end;


De otro modo, si consulta y parámetro son creados en tiempo de ejecución, se deben especificar ámbos.

Mediante la propiedad vectorial Params:
Código Delphi [-]
  with IBQuery1 do
  begin
    Close;
    SQL.Text := 'SELECT * FROM TABLA WHERE NAME = :PNAME';
    Params[0].AsString := Edit1.Text;
    Open;
  end;
Mediante el método ParamByName:
Código Delphi [-]
  with IBQuery1 do
  begin
    Close;
    SQL.Text := 'SELECT * FROM TABLA WHERE NAME = :PNAME';
    ParamByName('PNAME').AsString := Edit1.Text;
    Open;
  end;

Existe un tercer modo de acceso a los parámetros y es mediante la propiedad ParamValue:
Código Delphi [-]
  with IBQuery1 do
  begin
    Close;
    SQL.Text := 'SELECT * FROM TABLA WHERE NAME = :PNAME';
    Params.ParamValues['PNAME'] := Edit1.Text;
    Open;
  end;

Por último cabe acotar que si existe una definición de consulta/parámetros en tiempo de diseño, al asignar una nueva definición de consulta/parámetros en tiempo de ejecución, se sobreescribirá lo realizado en tiempo de diseño.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita