![]() |
Ordenar datos en IBDataSet
Hola, quisiera poder ordenar las columnas de un dbgrid, buscando por este foro he encontrador algunas soluciones que me gustan pero todas hacen uso de ADODataSet y su propiedad Sort, la cuestión es que yo utilizo IBDataSet y en él no encuentro la propiedad Sort ni algo que se le parezca. Seguro que IBDataSet tiene alguna propiedad o metodo para ordenar pero la verdad es que no la encuentro.
Como me las arreglo para ordenar los datos en un IBDataSet?? |
Hay que volver a ejecutar el IBDataSet, mediante un Close y Open correspondiente, y cambiar en la sentencia SQL el 'Order By' que deseas. :o
|
ok
aaaah ok! me suele suceder que me sumerjo buscano entre las propiedades y metodos de algun componente y se me olvida la de cosas que se pueden hacer directamente en la sentencia SQL, tan simple como hacer un ORDER BY jejeje
ahora mismo adapto el metodo para ordenar el dbgrid que mas me ha gustado y si funciona lo pongo aquí para que alguien lo encuentre rapido jejeje grácias gluglu. |
bueno pues al final se me ha simplificado bastante el metodo, aquí lo dejo para contribuir un poquito.
bAsc es una variable global que utilizo como semáforo. OrderBy és un string donde guardo la parte de la sentencia que su nombre indica. Código Delphi [-] procedure dbgBuscarTitleClick(Column: TColumn); begin inherited; if (bAsc)then begin OrderBy := 'ORDER BY '+Column.DisplayName+ ' ASC'; end else begin OrderBy := 'ORDER BY '+Column.DisplayName+ ' DESC'; end; LanzarSentencia; bAsc:= not bAsc; end; LanzarSentencia es el encargado de montar las diferentes partes de la sentencia (select, from, where y orderby) y ejecutarla, es algo parecido a esto: Código Delphi [-] procedure LanzarSentencia; begin with IBDataPrincipal do begin Close; SelectSQL.Clear; SelectSQL.Add(Select); SelectSQL.Add(From); SelectSQL.Add(Where); SelectSQL.Add(OrderBy); Open; end; end; ...ya sé que tendria que hacer paso de parametros en vez de tanta variable global pero la cosa aún no está moldeada jejeje solo és funcional. |
La franja horaria es GMT +2. Ahora son las 06:22:30. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi