FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
pasar una variable a una sentencia sql
Me gustaria saber como puedo hacer para pasar una variable en una sentencia sql.
Situemonos, tengo un dbgrid, y lo que quiero es que me ordene los datos dependiendo del titulo de la columna que hayamos pulsado. Esto se supone que lo tengo que hacer en el evento OnTitleClick del dbgrid, el cual segun la ayuda, pone que captura la columna que hemos pulsado en la variable Column de tipo TColumn. Ahora bien, como se lo paso???; si la sentencia vendria a ser algo del tipo: select * from tabla order by ????, donde los ? serian la variable en cuestion. Un saludo. |
#2
|
||||
|
||||
Depende de qué base de datos uses. En Paradox pondrías:
select * from tabla order by :campo y asignarías el valor del parámetro con: Query1.ParamByName('campo').AsXXX donde XXX será String, Integer, Float, etc., dependiendo de qué tipo de campo sea. // Saludos |
#3
|
|||
|
|||
Estoy usando interbase, por cierto, no me ha quedado muy clara tu respuesta ... que dura es la vida del novato.
Muchas gracias! |
#4
|
||||
|
||||
Cita:
Lo qe puedes hacer es declarar una constante para la consulta: Código:
const fmtSql = 'select * from tabla order by %s'; Format(fmtSql, [nombre del campo]); Esto te regresa una cadena ya con la consulta adecuada. // saludos |
#5
|
|||
|
|||
Mas o menos entiendo por donde vas, pero con lo que tu me dices, necesito saber el campo en el que hacer la consulta, cosa que no se.
Como he puesto en el primer post, el evento OnTitleClick se supone que captura el titulo (campo) que he pulsado. Mi duda es como poder pasarselo a la sentencia sql. Gracias por la paciencia y la velocidad de las respuestas |
#6
|
||||
|
||||
Puedes usar Column.Field.FieldName en el evento OnTitleClick para saber el nombre del campo que corresponde. Así, lo que usarías sería:
Format(fmtSql, [Column.Field.FieldName]); // Saludos |
#7
|
|||
|
|||
Muchisimas gracias Roman, me funciona perfectamente tal y como queria.
|
|
|
|