FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Como sustituir variables en SQL
Buenos dias,
La situacion es la siguiente tengo un reporte de una tabla cualquiera que lo hago con Quick Report al cual le coloco un componente Query de SQL yo quiero organizar este reporte por diferentes campos de esta tabla y que yo pueda seleccionar el campo por el cual quiero hacerlo, en fin esa parte esta controlada la parte que no se como hacer es sustituir en el order by que en vez del campo de la tabla sea una variable que contiene el campo por el cual quiero organizar. Ej.: Select * From Clientes Order by codigo esa seria la instruccion normal yo quisiera algo como esto Select * From Clientes Order by variable en donde variable contiene el campo por el cual quiero ordenar como puedo hacer esta sustitucion que en otros lenguaje se llama macrosustitucion. Un Saludo |
#2
|
||||
|
||||
Buenas!
La forma más fácil sería montar la sentencia SQL justo antes de abrir el report: query.sql.text := 'SELECT * FROM CLIENTES order by ...' Espero que te sirva Un saludo Edu |
#3
|
||||
|
||||
Hola estoy de acuerdo con lo que dice epuigdef, solo quiero aumentar este pequeño detalle que talvez sea innecesario porque la idea ya esta dada.
query.sql.text := 'SELECT * FROM CLIENTES order by '+variable; Saludos |
#4
|
||||
|
||||
Hola:
algo así debería ser..
No tengo delphi en estos momentos, así que no sé si está bien la sentencia, pero en definitiva debes usar parametros... Hasta luego..
__________________
No todo es como parece ser... |
#5
|
|||
|
|||
hasta ahora conosco 2 modos.
Una utilizando el parámetro del tquery (parambyname..(creo que asi)., que mas abajo pusieron un ejemplo. Y otro pasando la variable directamente a la sentencia sql, que es lo que estoy utilizando. Por ejemplo: supongamos las varialbles a:integer; b:string; sería: ('select * from personas where dni='+inttostr(a)+''); ('select * from personas where apellido='+quotedstr(b)+''); En limpio seria ( '+FUNCION(VARIABLE)+' ) sin los parentesis. Tene en cuenta el nombre de la funcion inttostr, quotedstr...y asi cualquier otro valor que vayas a insertar en el query. Si, queres ver como sale el query antes de dispararlo, generalemente acostumbro mostrar el query con un showmessage(query.sql.text); donde query es componente o variable tquery. Vilte, Alejandro |
#6
|
||||
|
||||
Otra más:
saludos.
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
|
|