Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-11-2009
Avatar de voldemmor
voldemmor voldemmor is offline
Miembro
 
Registrado: ago 2006
Posts: 232
Poder: 18
voldemmor Va por buen camino
locate continuo

Hola amigos.os agradesco de antemano por su ayuda.

Tengo un sistemilla necesito buscar en un dataset un nombre,
para lo cual uso
Código Delphi [-]
LOCATE('nombre',edit1.text,[partialkey])

pero eso me arroja al registro con la primera coincidencia y lo activa, pues claro como lo especifican en la ayudita de delphi.

pero he tratado de hacer que esto se me vaya mivilizando en los registros que conincidan con la cadena y la verdad no lo logro.

He tratado de usar filtros, como lo indica en DSofD4 pero la verdad he fracasado.

Uso zconnection.
una Ztable enlazada a mi base de datos (mysql 5)
un Data source
un dbgrid.

por favor espero me pois ayudar
__________________
tu mente es tu mas presiado tesoro, cultiva tu conocimiento
Responder Con Cita
  #2  
Antiguo 10-11-2009
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Si no me equivoco, quieres obtener todos los registros en los que coincida el campo nombre, ¿no es así?

Bueno, en el peor de los casos puedes usar directamente de SQL, que en tu caso sería "SELECT * FROM tabla WHERE nombre='edit1.text'". La forma de implementación ya depende del componente que utilices. Puedes construir la petición almacenándola en un STRING y luego llamar a la propiedad SQL (en el caso de TSQLQuery) o crear una petición con parámetros, pero esta forma no recuerdo cómo se hace.

Si estás utilizando controles de "Data Controls", pues no tienes que hacer más.

No puedo ayudarte mucho más porque hace bastante que no utilizo bases de datos con Pascal.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #3  
Antiguo 10-11-2009
Avatar de voldemmor
voldemmor voldemmor is offline
Miembro
 
Registrado: ago 2006
Posts: 232
Poder: 18
voldemmor Va por buen camino
gracias

Gracias por el interes Ñuño, el problema con lo que propones es que al tratarse de pocos registros, apenas 600 los enlace directamente a una Ztable, y se muestra directamente el contenido completo de mi tabla.

Lo que deseo es realizar una busqueda que me recorra los registros hasta que el usuario encuentre el correcto y lo utilice.

de todas maneras gracias por tu interes
__________________
tu mente es tu mas presiado tesoro, cultiva tu conocimiento
Responder Con Cita
  #4  
Antiguo 10-11-2009
Avatar de look
look look is offline
Miembro
 
Registrado: sep 2007
Ubicación: The Shire
Posts: 656
Poder: 17
look Va camino a la fama
Cita:
Empezado por voldemmor Ver Mensaje
Gracias por el interes Ñuño, el problema con lo que propones es que al tratarse de pocos registros, apenas 600 los enlace directamente a una Ztable, y se muestra directamente el contenido completo de mi tabla.

Lo que deseo es realizar una busqueda que me recorra los registros hasta que el usuario encuentre el correcto y lo utilice.

de todas maneras gracias por tu interes
¿muestras el contenido en un grid?, ¿es como una busqueda incremental?, bueno si es asi, puedes utilizar el componente de las JEDI , el JVdbFindEdit
es muy bueno , lo recomiendo...

__________________
all your base are belong to us

Última edición por look fecha: 10-11-2009 a las 15:36:44.
Responder Con Cita
  #5  
Antiguo 10-11-2009
fidel fidel is offline
Miembro
 
Registrado: mar 2005
Posts: 381
Poder: 20
fidel Va por buen camino
Si solo son 600 registros hasta puedes recorrer la tabla de principio a fin con un bucle While, parar cuando cumpla la condición que quieras y dar al usuario la opción de seguir buscando o terminar la búsqueda.

600 se recorren en "ná" que es todavía menos que "nada".
Responder Con Cita
  #6  
Antiguo 14-11-2009
Avatar de voldemmor
voldemmor voldemmor is offline
Miembro
 
Registrado: ago 2006
Posts: 232
Poder: 18
voldemmor Va por buen camino
ok

Gracias por sus comentarios.
Voy a probar la opcion del while hasta mientras a ver como me va.
Vo a buscar las jedi.

PD: pido disculpas aca en ecuador estamos con apagones y no he podido acceder a la red.
__________________
tu mente es tu mas presiado tesoro, cultiva tu conocimiento
Responder Con Cita
  #7  
Antiguo 23-11-2009
Avatar de Malau
Malau Malau is offline
Miembro
 
Registrado: ago 2008
Ubicación: Córdoba, Argentina
Posts: 20
Poder: 0
Malau Va por buen camino
Hola Voldemmor!
Buscando soluciones me encontré con tu post… Mi idea era hacer algo similar a lo que te muestra Look en la imagen, mostrando la consulta en un DBGrid y lo solucioné así:

Código:
IBQuery.SQL.Clear;
  IBQuery.SQL.Add('select * from ‘tabla’ where ‘campo’ starting with '+IntToStr (Edit1.Text)+’  ‘);
  IBQuery.Close;
Este código va en el evento OnChange del Edit1. Espero que te sirva, saludos…
Responder Con Cita
  #8  
Antiguo 23-11-2009
Avatar de voldemmor
voldemmor voldemmor is offline
Miembro
 
Registrado: ago 2006
Posts: 232
Poder: 18
voldemmor Va por buen camino
gracias malau

Gracias por la colaboracion malau.

El problema esta en que no estoy usando querys de ningun tipo. Se trata de una zTable enlazada directamente a la DB.

Gracias de todas maneras
__________________
tu mente es tu mas presiado tesoro, cultiva tu conocimiento
Responder Con Cita
  #9  
Antiguo 04-04-2010
Avatar de sisne
sisne sisne is offline
Miembro
 
Registrado: mar 2010
Posts: 71
Poder: 15
sisne Va por buen camino
Cita:
Empezado por look Ver Mensaje
¿muestras el contenido en un grid?, ¿es como una busqueda incremental?, bueno si es asi, puedes utilizar el componente de las JEDI , el JVdbFindEdit
es muy bueno , lo recomiendo...

Hola vi este msj muy interesante. Por favor alguien podria decirme como puede ser el codigo? algun ejemplo?
En mi caso tengo tablas: Tuniversitario, Tmateria, Tbeca y quiero realizar igual las busquedas como muestran en este ejemplo.

Podrian darme algun ejemplo?
Gracias
Responder Con Cita
  #10  
Antiguo 06-04-2010
vinicc vinicc is offline
Miembro
 
Registrado: ago 2006
Posts: 31
Poder: 0
vinicc Va por buen camino
Hola sisne, he aquí una forma de cómo hacerlo:
1.- un Tedit para el dato a buscar
2.- un grid para mostrar los datos (tal como se muestra en la gráfica ya publicada)

2.- en el evento OnChange del Tedit:

procedure TFndFrm.Edit1Change(Sender: TObject);
begin
Productos.Locate('Nombre',Edit1.Text,[loPartialKey]);
end;

Espero que esto sea lo que esperabas.
Responder Con Cita
  #11  
Antiguo 06-04-2010
Avatar de sisne
sisne sisne is offline
Miembro
 
Registrado: mar 2010
Posts: 71
Poder: 15
sisne Va por buen camino
Holaasss

Alguien tiene conocimiento sobre ese funcionamiento?

Necesito ese tipo de busqueda por favor...
Responder Con Cita
  #12  
Antiguo 06-04-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Y qué más quiéres que te digan?, te han dicho el componente, el evento donde poner el código y el código que debes poner...
Responder Con Cita
  #13  
Antiguo 06-04-2010
Avatar de sisne
sisne sisne is offline
Miembro
 
Registrado: mar 2010
Posts: 71
Poder: 15
sisne Va por buen camino
Hola vinicc
Gracias por el codigo , exactamente el locate te lo busca directamente, pero no te lo muestra los posibles que cumplan en este caso con la busqueda que se coloca en el Tedit, es decir va reduciendose a medida que encuentra en el DBGrid.

Gracias de todas maneras eso ya lo use

Última edición por sisne fecha: 06-04-2010 a las 02:03:12. Razón: Quiero un ejemplo por favor.....una que vaya reduciendo los posibles resultados
Responder Con Cita
  #14  
Antiguo 06-04-2010
Avatar de Malau
Malau Malau is offline
Miembro
 
Registrado: ago 2008
Ubicación: Córdoba, Argentina
Posts: 20
Poder: 0
Malau Va por buen camino
Sisne! para filtrar la información de acuerdo al caracter ingresado en el Edit lo que puedes hacer es cambiar la propiedad active luego de la consulta:

Código:
DataSet.Active:=False;
DataSet.Active:=True;
Suerte!
Responder Con Cita
  #15  
Antiguo 06-04-2010
Avatar de sisne
sisne sisne is offline
Miembro
 
Registrado: mar 2010
Posts: 71
Poder: 15
sisne Va por buen camino
Hola!
Gracias por la ayuda.
Responder Con Cita
  #16  
Antiguo 06-04-2010
Avatar de sisne
sisne sisne is offline
Miembro
 
Registrado: mar 2010
Posts: 71
Poder: 15
sisne Va por buen camino
Hola Malau!
Gracias por la ayuda.
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 imprimir continuo en lx-810 peladuscalvus Impresión 1 27-07-2006 07:10:50
Imprimir en papel continuo escullar Impresión 1 05-04-2005 02:23:38
Impresion Papel continuo tbolzan Impresión 0 11-11-2004 21:39:13
Report en papel continuo guillotmarc Impresión 6 23-09-2004 08:31:00
formulario continuo en Qreport jfontane Impresión 1 10-11-2003 07:44:50


La franja horaria es GMT +2. Ahora son las 15:00:34.


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