Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-02-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Si vas a trabajar solamente local, una solución muy simple sería tener una tabla con los campos necesarios vacia y cuando actives la consulta, haces un insert sobre esta tabla que tendrá los índices que necesites, luego solamente te queda ordenar por el campo que quieras.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #2  
Antiguo 26-02-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Movido por la curiosidad he hecho la siguiente prueba con Paradox:

Código:
Select Nombre, apellidos, apellidos||nombre as apel
 From alumnos
 order by 3
 
 //o esta otra
 
 Select Nombre, apellidos, apellidos||nombre as apel
  From alumnos
  order by apel
Y funciona correctamente.


Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 26-02-2004
Jose_Pérez Jose_Pérez is offline
Miembro
 
Registrado: may 2003
Posts: 156
Poder: 24
Jose_Pérez Va por buen camino
Macoszorrilla, respecto a tu último ejemplo, ten en cuenta que en ese caso apel forma parte de la propia consulta SQL. Por algún motivo, los campos calculados creados desde el componente TQuery, en tiempo de diseño, no son reconocidos por el propio lenguaje SQL.

Un abrazo.
Responder Con Cita
  #4  
Antiguo 26-02-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Tienes toda la razón, lo que quería indicar es que quizás convenga que lo calcules en la propia consulta, como en el ejemplo, ya sé que los campos calculados no se pueden utilizar para ordenar.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #5  
Antiguo 27-02-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 30
jachguate Va por buen camino
Cita:
Empezado por haron
el componente TQuery deberia tener alguna opcion para hacerlo, ya que al fin y al cabo trabaja con una copia local y puede ordenar los resultados de esa copia
.

Eso no siempre es cierto... pues depende de cuantos fetch se hagan en la apertura del cursor. A veces hay queries que contienen muchos registros, se abren y solamente se utilizan los primeros... porque el proceso es cancelado por el usuario, porque solo queria ver si abria, etc, etc.

imaginate, para ordenar por un campo calculado.. en ocasiones habria que hacer viajar miles (o millones) de registros del servidor al cliente solo para ordenarlo por un campo calculado (que en cualquier caso regularmente se puede hacer en el servidor, no?).

A mi me parece que está bien como esta...
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #6  
Antiguo 27-02-2004
Avatar de haron
haron haron is offline
Miembro
 
Registrado: may 2003
Ubicación: Las Palmas de Gran Canaria
Posts: 310
Poder: 24
haron Va por buen camino
Cita:
Empezado por jachguate
.

Eso no siempre es cierto... pues depende de cuantos fetch se hagan en la apertura del cursor. A veces hay queries que contienen muchos registros, se abren y solamente se utilizan los primeros... porque el proceso es cancelado por el usuario, porque solo queria ver si abria, etc, etc.

imaginate, para ordenar por un campo calculado.. en ocasiones habria que hacer viajar miles (o millones) de registros del servidor al cliente solo para ordenarlo por un campo calculado (que en cualquier caso regularmente se puede hacer en el servidor, no?).

A mi me parece que está bien como esta...
tienes razon. el componente TQuery es listo en el sentido que solo se trae los registros que necesita.

pero tambien te puedes traer todos los registros del servidor. por ejemplo el TADOQuery por defecto se trae todos los registros y trabaja con una copia local. en este caso si tiene sentido ordenar por un campo calculado.

de todas formas, tampoco esta de mas que se pueda ordenar un subconjunto del total.

la verdad es que en muchas ocasiones me he visto en un apuro porque no puedo ordenar por un campo calculado.
__________________
“Plantad la semilla de la avaricia en la infértil tierra de la estupidez y obtendreis la bella flor de la mierda”
(Confucio)
Responder Con Cita
  #7  
Antiguo 27-02-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 30
jachguate Va por buen camino
Cita:
Empezado por haron
tampoco esta de mas que se pueda ordenar un subconjunto del total.
que sentido tendría.

Si yo tengo el resultado de una consulta que genera (en el orden de los registros devueltos por el servidor):


nombre apellido
===============
Antonio Zapata
Juan Albizures
Pedro Fernandez
Jose Hernández

y me traigo los primeros dos registros, y los ordeno (el subconjunto) por apellido tengo:

nombre apellido
===============
Juan Albizures
Antonio Zapata

Que no son los primeros dos registros si tengo el conjunto completo, que seria:

nombre apellido
===============
Juan Albizures
Pedro Fernandez
Jose Hernández
Antonio Zapata


¿De que me sirve ordenar un subconjunto entonces?


Ademas, el traerte todos los registros podria ser bueno o malo... dependiendo de la situación, pero si tenes una consulta que puede generarte muchos registros... no creo que sea buena idea correr el riesgo.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 22:02:49.


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
Copyright 1996-2007 Club Delphi