![]() |
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 |
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 |
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 |
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.. :eek: |
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 |
Otra más:
saludos. |
| La franja horaria es GMT +2. Ahora son las 23:18:08. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi