Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   table name como parametro (https://www.clubdelphi.com/foros/showthread.php?t=39625)

soldierxp 25-01-2007 18:32:21

table name como parametro
 
Que tal amigos. :(

Estoy trabajando con Delphi 5, zeos 6.5.1 alpha y mysql 4.1 en una aplicacion cliente servidor.

Tengo un problema al querer pasar por parametro el nombre de una tabla para que esta sea la que se utilice en dicho momento.

El programita es simple, se requiere que la persona que inicia session utilice la tabla que le corresponde.

He leido en muchos foros americanos que segun mysql no permite el paso por parametros de nombre de tablas. Yo insisto en que debe haber una forma. Ojala puedan ayudarme a buscar una alternativa diferente.

Gracias a todos.

roman 25-01-2007 20:21:16

Dudo que sea exclusivo de MySql, normalmente sólo se pueden parametrizar los valores de los campos. Sin embargo no es nada que no se pueda solventar de una u otra manera. Por ejemplo, si tu consulta es

Código SQL [-]
select * from tabla

y quieres parametrizar tabla, puedes poner:

Código SQL [-]
select * from %s

y asignar el texto vía Format:

Código Delphi [-]
Query.SQL.Text := Format('select * from %s', [NombreTabla]);

donde NombreTabla es una variable con el nombre de la tabla.

Algunas componentes, como MyDac, te facilitan esto usando lo que ellos llaman macros, que son similares a los parámetros pero con los que puedes sustituir cualquier cosa. Desconozco si Zeos tiene algo similar.

// Saludos

soldierxp 25-01-2007 22:56:28

Gracias roman
 
Te agradezco la respuesta.

Si mira en realidad lo que deseo es indicar en el query el nombre de la tabla, este cambio depende de cada usuario que inicia sesion.

Lepe 26-01-2007 12:58:46

Cita:

Empezado por roman
Dudo que sea exclusivo de MySql, normalmente sólo se pueden parametrizar los valores de los campos.

¿Y esto qué?

Saludos

roman 26-01-2007 17:52:08

Pero eso es un procedimiento almacenado. Ahí no sé como sea el funcionamiento.

// Saludos

soldierxp 26-01-2007 20:43:31

Gracias a todos
 
:)Ya encontre como: :)

ZQuery1.SQL.Text := Format('INSERT INTO %s', [tabla])+' '+'('+'titulo, destinatario, fecha, hora, remitente, mensaje) VALUES (:asunto, :usuario, :fecha, :hora, :remitente, :mensaje'+')';

Este es un ejemplo del query que hice ayudandome de los atinados comentarios de todos.

Espero que a todos los que buscan algo parecido les sirva.


La franja horaria es GMT +2. Ahora son las 10:39:22.

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