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 12-03-2008
Avatar de paladincubano
paladincubano paladincubano is offline
Miembro
 
Registrado: jul 2007
Posts: 147
Poder: 17
paladincubano Va por buen camino
Buscar siguiente SQL

Hola, tengo un boton en una aplicacion al lado de un texedit, que me busca un registro en la base de datos con el criterio expuesto en el texedit, para ello utilizo la funcion LOCATE, de momento me lo hace muy bien, ahora lo que quiero es adicionar un boton para buscar el siguiente registro que cumpla el criterio, porque cuando le vuelvo a dar al boton me encuentra el mismo. Osea, hay alguna funcion o algo para buscar al siguiente registro en la lista que cumpla el criterio???
gracias

PD: Utilizo el SQL server.
Responder Con Cita
  #2  
Antiguo 12-03-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Si me aceptas una sugerencia creo que estas subutilizando recursos, si trabajas con un manejador de base de datos relacional pero trabajas como sifuera local, esto lo digo debido a que expones que trabajas con Locate, esto quiere decir que tienes que cargar todos los registros de la tabla para que funcione, lo que yo te propongo sera algo como esto:


Para la primera consulta
Código Delphi [-]
sq.SQL.Active := False;
   sq.SQL.Text := 'Select * from tabla where codigo = ' + QuotedStr(Edit1.Text);
sq.SQL.Active := True;
sq.First;

y para el boton siguiente solo deberias hacer esto:
Código Delphi [-]
if sq.Eof then ShowMessage('Ha llegado al final')
else  sq.Next;
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #3  
Antiguo 12-03-2008
Avatar de paladincubano
paladincubano paladincubano is offline
Miembro
 
Registrado: jul 2007
Posts: 147
Poder: 17
paladincubano Va por buen camino
Si, yo habia pensado en eso, pero al final eso es como un filtro.
El problema es que yo no pongo todos los clientes en una tabla, si no algo asi:
Simulo la forma:
Barra de herramientas:
|<<|< | >| >> | Refrescar| Nuevo| Post| Cancel| <-vamos no es mas que un DBNavigator mio customizado

Los datos se muestran con Label y edits para poder modificar ejemplo:

Nombre: |fulanito|.
Apellidos: |ciclanito|
...
...

No quiero usar un Grid
Arriba en la barra de herramientas hay el famoso edit de buscar que cuando termina de escribir el criterio y das enter te hace el locate.
Por eso no quiero filtrar porque quienes trabajaran con eso son poco informaticos y si filtran luego no le "aparecen" los demas clientes. Por eso lo de la busqueda siguiente hasta que den con el que quieren.
Entiendes?
Gracias de todas formas.
Responder Con Cita
  #4  
Antiguo 12-03-2008
Avatar de paladincubano
paladincubano paladincubano is offline
Miembro
 
Registrado: jul 2007
Posts: 147
Poder: 17
paladincubano Va por buen camino
Aqui os dejo una imagen de como es la cosa:

http://img443.imageshack.us/my.php?image=pantazw1.jpg
Responder Con Cita
  #5  
Antiguo 12-03-2008
Avatar de Ivanzinho
[Ivanzinho] Ivanzinho is offline
Miembro Premium
 
Registrado: ene 2005
Ubicación: Galicia
Posts: 595
Poder: 20
Ivanzinho Va por buen camino
Cita:
Empezado por paladincubano
.
Por eso no quiero filtrar porque quienes trabajaran con eso son poco informaticos y si filtran luego no le "aparecen" los demas clientes. Por eso lo de la busqueda siguiente hasta que den con el que quieren.
Entiendes?
Gracias de todas formas.
Creo que no has entendido bien lo que te ha dicho eduarcol, ya que el usuario no notaría la diferencia entre tu método y lo que él propone. La única diferencia sería la mejora de rendimiento.

Lo que tienes que hacer es seleccionar solamente los clientes que necesites de la base de datos, y luego te olvidas del locate haciendo un simple next, puesto que todos lo registros del dataset cumplen la condición del filtrado. Cuando el usuario encuentre el que quiera lo edita y punto, igual que hace lo que tu propones pero con un menor tráfico de red y sin tener que localizar los registros de cada vez.

Un saúdo.
__________________
Si no lees esto no vivirás tranquilo
Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao)
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Necesito hacer lo siguiente dtomeysoto La Taberna 1 25-05-2006 16:21:25
sabel el siguiente tab? raudelink Varios 2 26-04-2005 01:40:28
A Que se deberá el siguiente Error???? AGAG4 Varios 2 16-03-2005 22:28:34
Buscar siguiente en Lista con SQL rogeriobeltran Firebird e Interbase 6 23-07-2004 17:02:41
encontrar el siguiente en ado jzginez Conexión con bases de datos 1 21-05-2004 11:42:08


La franja horaria es GMT +2. Ahora son las 23:16:31.


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