Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-09-2007
Avatar de Damian666
Damian666 Damian666 is offline
Miembro
 
Registrado: sep 2005
Posts: 27
Poder: 0
Damian666 Va por buen camino
MySql puede almacenar datos en una tabla virtual?

Hola a todos, esta es una pregunta que me salio al ver el codigo de un programa, bueno esto es una parte.


Código Delphi [-]
 
2 : begin // reemplazar a datos ya existentes
Q3.SQL.Clear;
Q3.SQL.Clear;
Q3.SQL.Add('UPDATE TCARGO SET Descripcion=:z_nombre');
Q3.SQL.Add(' WHERE CodCargo=:z_codigo');
Q3.ParamByname('z_codigo').AsInteger := trunc(FNECodigo.value);
Q3.ParamByname('z_nombre').AsString := ENombre.Text;
Q3.ExecSQL;
end;


hasta donde entiendo Q3 es un TQuery, TCARGO la tabla y Descripción es el campo pero z_nombre y z_codigo que son? y como los interpreta Mysql? ya que estos campos o no se que puedan ser no los encontre en toooda la base de datos, ni declarados en tooodas las unidades del sistema.

gracias y hasta pronto
__________________
El que da primero da dos veces.
Responder Con Cita
  #2  
Antiguo 02-09-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Son parámetros. Son parámetros que pueden usarse para conformar la consulta SQL. Fíjate en las instrucciones que usan el método "ParamByName". Ahí se les está dando el valor adecuado a los parámetros. En definitiva, es una forma más o menos elegante de conformar consultas SQL, porque evitan posibles problemas y quebraderos de cabeza con comillas, dobles comillas, dobles comillas dobles...
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 02-09-2007
Avatar de Damian666
Damian666 Damian666 is offline
Miembro
 
Registrado: sep 2005
Posts: 27
Poder: 0
Damian666 Va por buen camino
Gracias por responder Dec Según SanGoogle parametro es:

Cita:
Una información que determina el funcionamiento de un programa. También se conoce como "argumento". Los parámetros pueden tener valores de todo tipo. Por ejemplo: números, textos, expresiones o incluso el nombre de un archivo. Estos valores siempre van acompañados de una instrucción o un identificador HTML que indica qué es lo que se debe hacer con ellos.
Aun no lo tengo claro, en realidad estaria almacenando información para realizar la consulta y luego de culminar la consulta el valor de este se pierde? aunque se visualizara en el campo ENombre.Text

Creo que estoy ya cansado y con sueño porque no entiendo gracias y saludos
__________________
El que da primero da dos veces.

Última edición por Damian666 fecha: 02-09-2007 a las 08:11:46.
Responder Con Cita
  #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
Poder: 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
  #5  
Antiguo 02-09-2007
Avatar de Damian666
Damian666 Damian666 is offline
Miembro
 
Registrado: sep 2005
Posts: 27
Poder: 0
Damian666 Va por buen camino
Muchas gracias por el ejemplo Dec creo que fue la unica forma de entender, ahora si podre investigar mas sobre este codigo ya que como me dijiste si se ve elegante y esta muy ordenado eh.

Gracias y hasta la proxima.
__________________
El que da primero da dos veces.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Consulta a tabla mysql remota y copiar datos en modo local coletaun Varios 1 29-12-2006 14:49:45
No puedo insertar datos (por parámetros) en una tabla - Zeos, Mysql belen MySQL 2 13-10-2006 00:16:51
Obtener los datos de una tabla en Mysql dcidt MySQL 5 28-09-2005 03:10:48
Almacenar Imagen en una BD se Puede?? (VIH)Lestat Conexión con bases de datos 1 17-06-2005 18:26:15


La franja horaria es GMT +2. Ahora son las 09:47:39.


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
Copyright 1996-2007 Club Delphi