Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Ordenar una MySQLQuery al dar clic en columna de RXDBGrid (https://www.clubdelphi.com/foros/showthread.php?t=26977)

gilberto_1126 09-11-2005 01:11:37

Ordenar una MySQLQuery al dar clic en columna de RXDBGrid
 
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

aqui esta la sentencia
 
Código SQL [-]
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.
Código Delphi [-]
ModuloDatos1.MySQLQReporte.MacroByName('ORDER').AsVariant:='ORDER BY campoorden desc' ;
ModuloDatos1.MySQLQReporte.Open;
Suerte

gilberto_1126 09-11-2005 02:00:31

ya la probe
 
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

MySQL
 
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

ya lo vi
 
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


La franja horaria es GMT +2. Ahora son las 12:14:27.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi