Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Duda con ORDER BY (https://www.clubdelphi.com/foros/showthread.php?t=45985)

MaMu 19-07-2007 21:11:15

Duda con ORDER BY
 
Resulta que necesito visualizar en un DBGrid los datos de una tabla, lo cual consigo por medio de esta consulta:

Código Delphi [-]
  QTareasDiarias.Close;
  QTareasDiarias.SQL.Clear;
  QTareasDiarias.SQL.Add('select * from tareasdiarias where mes='+IntToStr(mes)+' and año='+IntToStr(anio)+' order by tarea, tld');
  QTareasDiarias.ExecSQL;
  QTareasDiarias.Open;

El tema es que el campor "tarea" es un string, pero el "tld" es booleano, asi que unicamente me ordena por tarea.

Como puedo hacer para que, respetandome el orden alfabetico, ademas, visualize primero los ordenados alfabeticamente y que ademas tld=True?

No se me ocurre como hacerlo.

Saludos

roman 19-07-2007 21:30:18

No entiendo cuál es la pregunta. Si lo que quieres es que aparezcan primero los true y luego los false basta agregar la directiva desc:

Código SQL [-]
order by tarea, tld desc

Esto sigue ordenando primero por tarea, y luego por tld.

// Saludos

MaMu 19-07-2007 21:48:47

Cita:

Empezado por roman
No entiendo cuál es la pregunta. Si lo que quieres es que aparezcan primero los true y luego los false basta agregar la directiva desc:


Código SQL [-]
order by tarea, tld desc





Esto sigue ordenando primero por tarea, y luego por tld.

// Saludos

Lo he probado, pero no me ordena, osea, alfabeticamente si, pero los True y False, siguen mezclados.

egostar 19-07-2007 22:12:40

Hola y si cambias esto

Código SQL [-]
  
order by tarea, tld

por esto

Código SQL [-]
  
order by tld, tarea

Salud OS.

ContraVeneno 19-07-2007 23:15:35

Y:
Código Delphi [-]
 QTareasDiarias.ExecSQL; //esto no es necesario
 QTareasDiarias.Open;

ExecSQL se utiliza cuando alguna instrucción ejecuta una acción (update, delete, drop, insert, etc)

Si solo es una consulta que regresa algún registro, se puede utilizar:
Código Delphi [-]
 QTareasDiarias.Open;

//o tambien aunque menos recomendable:
 QTareasDiarias.Active := True;

MaMu 20-07-2007 03:59:12

Cita:

Empezado por ContraVeneno
Y:

Código Delphi [-]
QTareasDiarias.ExecSQL; //esto no es necesario
QTareasDiarias.Open;





ExecSQL se utiliza cuando alguna instrucción ejecuta una acción (update, delete, drop, insert, etc)

Si solo es una consulta que regresa algún registro, se puede utilizar:

Código Delphi [-]
QTareasDiarias.Open;

//o tambien aunque menos recomendable:
QTareasDiarias.Active := True;



SOLUCIONADO

Efectivamente el problema era el ExecSql.


La franja horaria es GMT +2. Ahora son las 05:16:45.

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