Ver Mensaje Individual
  #4  
Antiguo 07-04-2007
niñotaliban niñotaliban is offline
Miembro
 
Registrado: nov 2005
Posts: 13
Reputación: 0
niñotaliban Va por buen camino
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.
Responder Con Cita