PDA

Ver la Versión Completa : Quitar comillas simple para un Paramater.String


Comandant
14-09-2012, 22:37:20
Hola todos quería saber cual es el código para quitar las comillas a un string, debido a que cuando hago una consulta con un zquery (uso zeos) y le pongo por ej:

zquery.sql.add:= 'Select * from :D ';
Fdm.ZQuery4.ParamByName('D').AsString:= 'clientes';

Me he dado cuenta que le envía un 'cliente' y no un cliente, estaba viendo el comando QuotedStr pero es justamente lo contrario de lo que necesito. Muchas Gracias

Comandant
14-09-2012, 22:38:40
Ha ya me confundí en poner el zquery a zquery4 pero aun la pregunta es válida porque fue por copiar y pegar al azar.

Casimiro Notevi
14-09-2012, 23:07:59
Depende de varios factores, pero en principio, no puedes pasarle como parámetro el nombre de la tabla.

Si usas firebird, haz una búsqueda por execute statement

Comandant
15-09-2012, 00:57:25
Es un ejemplo nada mas el del parámetro 'clientes' pero me da curiosidad si se puede mas que nada debido a que sino tengo que emplear el sql.clear y luego escribir toda la consulta de nuevo cuando lo que quiero es un parámetro pero sin las comillas simples

MartinS
15-09-2012, 01:32:00
Hola: y esto?

Procedure TPAlta.SeleccionTabla(Tabla:String);
Begin
IBQuery1.Close;
IBQuery1.SQL.Add('Select * From '+Tabla);
//...
//...
End;


// Ejemplo de llamada
procedure TPalta.Button1Click(Sender: TObject);
begin
SeleccionTabla('Clientes');
end;

Con componentes para interbase/firebird pero la metodologia es la misma. Ojo solo para que pruebes ya que me parece medio innecesario hacer todo un procedimiento para evitar escribir una sentencia SQL.- ;)

Saludos ^\||/

roman
15-09-2012, 03:42:36
Es como dice Casimiro, los parámetros son sólo para valores de campo. Algunos componentes, como MyDac, permiten otro tipo de elementos usando macros:


Query.MacroByName('tabla').AsString := 'clientes';


Ahora, si la sentencia que pusiste no marca error entonces quizá, repito, quizá, te sirva ponerlo así:


Fdm.ZQuery4.ParamByName('D').Value:= 'clientes';


ya que el AsString es posibllemente el que pone las comillas.

// Saludos