Ver Mensaje Individual
  #4  
Antiguo 02-09-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Reputación: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Parece que encontraste información relativa a los parámetros (o argumentos) que pueden pasarse a un programa, pero, no es el caso de los parámetros que tratamos aquí. En este caso... cómo explicarlo, el parámetro vendría a indicar una especie de "clave", donde se insertaría (en el lugar de la clave) el valor correspondiente.

Es, si no me equivoco, algo similar a como funciona la función "Format" de la unidad "SysUtils". Considera el siguiente código:

Código Delphi [-]
var
  s, nombre: string;
begin
  nombre := 'Pepito Grillo'; 
  s := Format('Tu nombre es: %S',[nombre]);
  ShowMessage(s);
end;

Piensa en "nombre" como un argumento, un parámetro, cuyo valor será situado (dentro de la cadena "s") en el lugar de la clave "%S". De tal modo que "ShowMessage" mostraría:

Código:
Tu nombre es Pepito Grillo
Pues en el caso de las consultas SQL es algo parecido. Tú indicas el lugar de la consulta donde habrá que situar el valor del parámetro oportuno. De este modo el lugar de ":z_nombre" en la cadena que forma parte de la consulta SQL:

Código Delphi [-]
Q3.SQL.Add('UPDATE TCARGO SET Descripcion=:z_nombre');

Será sustituído (en tiempo de ejecución) por el valor del parámetro "z_nombre". Para eso está más abajo:

Código Delphi [-]
Q3.ParamByname('z_nombre').AsString := ENombre.Text;

Con la que esa parte de la cadena de la consulta SQL quedaría en tiempo de ejecución:

Código SQL [-]
UPDATE TCARGO SET Descripcion=Pepito Grillo

... suponiendo que en "ENombre.Text" contenga la cadena "Pepito Grillo".

Como decía más arriba, todo esto es una elegante forma de evitar cosas como esta:

Código Delphi [-]
Q3.SQL.Add('UPDATE TCARGO SET Descripcion='+ENombre.Text+');

Y mucho peores... ni siquiera sé si funcionaría tal como lo escribo...
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita