Ver Mensaje Individual
  #4  
Antiguo 31-01-2016
Kenobi Kenobi is offline
Miembro
 
Registrado: mar 2007
Posts: 191
Reputación: 18
Kenobi Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
No puedes pasar el nombre de un campo como parámetro.
Hola, creo que si se puede de hecho lo estoy haciendo en este momento, claro con algo mas en el código:

tengo 2 tquery

personas:
Código SQL [-]
SELECT * from personas WHERE campo=:dNI

autos:
Código SQL [-]
SELECT * from autos WHERE campo=:matricula


Código Delphi [-]
procedure cargar_query(nombreParametro,valorParametro:String;
begin
  query.close;
  query.paramByName(nombreParametro).asVariant := valorParametro;
  query.open;
end;

y luego para llamar al procedure pues :
Código Delphi [-]
cargar_query('DNI','007');  // ....aca me carga al agente ....
cargar_query('matricula','bmw-007'); // ....  y su auto ....

a lo que me refiero es que le puedo pasar el nombre y el valor de un parametro al paramByName ya que lo que espera es un String ....

claro que es lo que falta pues como decir con un parametro cual es la query en cuestion, lo intente con

Código Delphi [-]
procedure cargar_query(query:TdataSet;nombreParametro,valorParametro:String);
begin
  query.close;
  query.paramByName(nombreParametro).asVariant := valorParametro;  // un tdataset no acepta el metodo paramByname ....
  query.open;
end;

mi idea es hacer algo asi

Código Delphi [-]
 tquery(query).paramByName(nombreParametro).asVariant:=valorParametro;

, pero no funciona

y alli esta el detalle ....lo que quiero es hacer ese casting y eliminar muchas declaraciones de este procedure para cada query en particular y asi reduciria mucho el codigo ...

Saludos ...
Responder Con Cita