Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-01-2006
ingel ingel is offline
Miembro
 
Registrado: jun 2003
Posts: 239
Poder: 21
ingel Va por buen camino
Select ordenado por un campo pero localizado por otro

Hola a todos .. Estoy reemplazando en un sistema en produccion los componentes tTable por tQuerys ya que no es optimo el tiempo de respuesta.
Mi consulta es por lo siguiente : en un ABM tengo 2 flechas para ir al registro siguiente y al anterior y a su vez 2 radios para ordenar por codigo o por descripcion ...con el TTable no habia problema porque hacia un select * order by coigo o descripcion y con las flechas y la instrucciones prior o next la recorria ..pero..

Ahora, cuando entro al ABM hago un 'select * from articulos where codigo_articulo =: codigo' para posicionarme y mostrar.

Cuando me muevo con las flechas ( si tengo marcado ordenado por codigo)
hago al mismo select pero con el parametro codigo+1 o codigo-1

PERO si lo ordenan por 'descripcion' es donde viene mi complicacion
porque busco por codigo pero tengo que ir al siguiente o al anterior POR DESCRIPCION ..
No me parece optimo buscar por el campo descripcion poqeu no se el tamaño del string a buscar como para hacer un .. where descripcion like 'algo%'
y atinarle a la descripcion siguiente.

Se me ocurre hacer algun tipo de consulta que me devuelva x cantidad de registros ANTES y x cantidad DESPUES de MI CODIGO pero ordenado por descripcion ... el problema es que no se como ..

seria algo asi como

select * from articulos where codigo_articulo =:codigo
or (10 para arriba) or (10 para abajo)
order by descripcion

se entendió? se puede hacer algo asi ?
con el viejo Recno() de clipper se podria , creo que la nueva version de SQL ya lo trae..pero por ahora dispongo solo de SQL 2000

gracias .. saludos
Ingel
Responder Con Cita
  #2  
Antiguo 04-01-2006
juliopag1 juliopag1 is offline
Miembro
 
Registrado: abr 2004
Posts: 42
Poder: 0
juliopag1 Va por buen camino
realmente no entendi mucho lo que deseas expresar, pero si mas o menos enteni quieres desplazarte entre registro y si es asi digo yo porque no usas .Next o .Prior
Código:
 Query.Next o Query.Prior
Creo que es lo que tratas de hacer pero si aclaras mejor la situacion creo que te responderia mejor
Responder Con Cita
  #3  
Antiguo 04-01-2006
ingel ingel is offline
Miembro
 
Registrado: jun 2003
Posts: 239
Poder: 21
ingel Va por buen camino
El tema es mas o menos asi ...
Yo hago una query pero SOLO retorna UN registro pues lo hago por CODIGO
si me quiero mover al sig hago las misma query con CODIGO+1
Esto si el orden es por codigo , PERO si el orden me lo fijar por descripcion
YO deberia ir a LA DESCRIPCION SIGUIENTE y no la conozco ...
puedo obtener la DESCRIPCION del PRIMERO que busque por codigo
pero la siguiente descripcion NO SE COMO SERA como para hacer una busqueda por DESCRIPCION LIKE substring(cDes,1,??) .. para que no me saltee o no localice ninguna ..


ej ..

Codigo 1 ----- Descripcion 11
Codigo 4 ----- Descripcion 112
Codigo 3 ----- Descripcion 1122
Codigo 2 ----- Descripcion 22

Si me posiciono por codigo en el 3 por ejemplo .. si quiero buscar el siguiente por descripcion nos e si es 1122xx o 2xx

Entonces lo que quiero hacer es buscar el codigo 3 pero ordenando por descripcion y obtener el codigo ant y siguiente en este caso seran el 4 y el 2
para cuando me mueva a la descripcion siguiente ..haga la busqueda por el codigo 2.

Espero haya quedado mas claro .

Me comentaron algo de RecodSet en SQL pero no lo pude investigar todavia

GRACIAS ..por la respuesta.
Saludos
Ingel
Responder Con Cita
Respuesta



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 14:29:59.


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