PDA

Ver la Versión Completa : Ordenar una MySQLQuery al dar clic en columna de RXDBGrid


gilberto_1126
09-11-2005, 01:11:37
Estoy bien desesperadoooooooooooooooooooooooooooo.

Aqui esta el detalle
Tengo una consulta en MySQL la que muestro en un RXDBGrid. Lo que quiero hacer es lo que he visto mucho en este foro, de ordenar de acuerdo a que se le da un clic en una columna. Investigando aqui encontre la forma de mostrar el triangulito de ordenamiento, pero lo que si no puedo es ordenar la consulta.
Como les mostre en un hilo anterior al momento de dar un clic en el titulo pongo lo siguiente:

ModuloDatos1.MySQLQReporte.MacroByName('ORDER').AsString:='ORDER BY' + RXDBGrid1.Columns.Items[Acol].FieldName + '' + 'desc' ;
ModuloDatos1.MySQLQReporte.Open;

Aqui me marca el error que les digo de que no se encuentra el parametro ORDER

pero tambien ya lo hice de la sig manera:

ModuloDatos1.MySQLQReporte.IndexFieldNames:=RXDBGrid1.Columns.Items[Acol].FieldName;

y nada

ya me desespere completamente

Espero y me puedan ayudar ya que este programa ya lo tengo que entregar

Por su atencion muchas gracias

vtdeleon
09-11-2005, 01:34:02
Saludos

Podrias mostrarnos la sentencia que usas en el Query

gilberto_1126
09-11-2005, 01:37:38
SELECT M.Clave, M.Establo, MAX(M.Fecha) AS Fecha, M.Tot_vacas, M.Ordena,

M.Secas, M.Crianza, M.Vacas_PDysecas, M.Crianza_pd, M.Parking,M.v1Lact,

M.V2lact, V3lact, M.Del, M.Dab, M.Dpe, M.Din, M.Dpiv, M.Dpic, M.fert, M.Prod,

M.Prod305, M.ProdMin, M.Prodmax, M.T_ord,M.Dps, M.V_ord, M.V_noord
FROM Manejo AS M

GROUP BY M.Clave, M.Establo

ORDER BY M.Clave

vtdeleon
09-11-2005, 01:47:57
Saludos

No conozco ese componente, entonces lo que te diré estara basado en otro.
Creo que MacroByName funciona como ParamByName (espero no equivocarme). Si es asi, no veo el parametro declarado en la sentencia.
Nunca he usado un Param para ordenar una sentencia pues el componente hace el arreglo correspondiente dependiendo si es AsString(' '), AsInteger, AsVariant.

Prueba con un campo qeu esté en la tu tabla antes de usar el nombre de la columna.

ModuloDatos1.MySQLQReporte.MacroByName('ORDER').AsVariant:='ORDER BY campoorden desc' ;
ModuloDatos1.MySQLQReporte.Open;
Suerte

gilberto_1126
09-11-2005, 02:00:31
Ya lo checque con .ASVARIANT y no me lo reconoce.

No necesariamente tiene que ser asicomo yo lo estoy haciendo. Ando buscando otra posibilidad (si es que la hay) para poder orednarla. Si saben de otra manera por favor me la podrian mostrar?????

Gracias por su tiempo

roman
09-11-2005, 02:02:28
¿Y serías tan amable de indicarnos qué componentes usas? Porque eso de MacroByName...

// Saludos

gilberto_1126
09-11-2005, 02:28:58
Es toy trabajando en una base de datos en MySQL y el componente que estoy utilizando es un MySQLQuery.
Trabajo en Delphi 7.0

roman
09-11-2005, 02:41:52
Realmente se me hace desconocida tal componente. Me da la impresión de que estás usando una componente TMyQuery de las componentes MyDac. En todo caso, ¿ya revisaste el archivo de ayuda? Ahí te explica el uso de MacroByName.

// Saludos

gilberto_1126
09-11-2005, 15:52:15
Si de hecho ya lo busque en la ayuda de delphi y si viene y me explica como funciona y todo lo demas.

De hecho viene un ejemplo de como funcionan las MacroByName y las fucniones las puse como vienen ahi pero nada.

Como le dije, no necesriamente lo tengo que hacer asi. si alguien me puede decir como orednar una consulta en MySQL ordenando por cualquier campo.

Bueno me despido
Graciasd por su tiempo valioso que les he robado

roman
09-11-2005, 16:25:57
Deberías esforzarte un poco más al plantear tus dudas. Aún no confirmas si se trata de las componentes MyDac. Y, como te dije antes, si son éstas las componentes que usas, en la ayuda de ellas- que no la de Delphi -el ejemplo no tienen nada que ver con lo que tú pones. Para empezar, en tu sentencia SQL no hay nada que sustituir, que sería el propósito de MacroByName, y además.

// Saludos