Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   pasar una variable a una sentencia sql (https://www.clubdelphi.com/foros/showthread.php?t=4941)

acrophet 03-11-2003 16:17:39

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.

roman 03-11-2003 16:24:28

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

acrophet 03-11-2003 16:26:22

Estoy usando interbase, por cierto, no me ha quedado muy clara tu respuesta:confused: ... que dura es la vida del novato.
Muchas gracias!

roman 03-11-2003 16:40:12

Cita:

acrophet comentó:
Estoy usando interbase, por cierto, no me ha quedado muy clara tu respuesta:confused: ... que dura es la vida del novato.
Muchas gracias!

Disculpa, me equivoqué. No se trata de parámetros como los que usa una consulta SQL.

Lo qe puedes hacer es declarar una constante para la consulta:

Código:

const
  fmtSql = 'select * from tabla order by %s';

Cada vez que quieras ejecutar la consulta pasas como sentencia SQL lo siguiente:

Format(fmtSql, [nombre del campo]);

Esto te regresa una cadena ya con la consulta adecuada.

// saludos

acrophet 03-11-2003 16:52:25

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 ;)

roman 03-11-2003 16:57:51

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

acrophet 03-11-2003 17:01:02

Muchisimas gracias Roman, me funciona perfectamente tal y como queria. :D


La franja horaria es GMT +2. Ahora son las 04:51:24.

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