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 Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-05-2006
edusus edusus is offline
Miembro
 
Registrado: ene 2006
Posts: 47
Poder: 0
edusus Va por buen camino
búsqueda en BD

Que tal, como están todos?
He hecho una agenda con una base de datos. El problema lo tengo para la búsqueda ya que si no pongo exactamente (por ejemplo si busco por el campo Nombre) todo el nombre, no me lo encuentra y si lo pongo me sale solamente ese registro.
¿Cómo puedo hacer para que encuentre poniendo solamente una cadena de caracteres que esté contenida en el nombre y por lo tanto si hay más de un registro que contenga en el campo buscado esa cadena me devuelva todos los registros que lo contengan?
Muchas gracias por adelantado y un saludo para todos.
Responder Con Cita
  #2  
Antiguo 14-05-2006
freelance freelance is offline
Registrado
 
Registrado: may 2006
Posts: 9
Poder: 0
freelance Va por buen camino
Pues ....

Usa LIKE.

Ejemplo: SELECT * FROM TBCLIENTES WHERE NAME LIKE '%lopez%'

Espero haberte ayudado
Responder Con Cita
  #3  
Antiguo 14-05-2006
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
y si quieres que te lo encuentre aunque esté en mayúsculas o minúsculas y en cualquier parte de la cadena, usa containing

Código SQL [-]
SELECT * FROM TBCLIENTES WHERE NAME containing 'lopez'
Responder Con Cita
  #4  
Antiguo 16-05-2006
edusus edusus is offline
Miembro
 
Registrado: ene 2006
Posts: 47
Poder: 0
edusus Va por buen camino
busqueda en bd

Muchas gracias por responderme, pero ¿no hay una solución con código delphi? Gracias nuevamente.
Responder Con Cita
  #5  
Antiguo 17-05-2006
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por edusus
Muchas gracias por responderme, pero ¿no hay una solución con código delphi? Gracias nuevamente.
Pon un edit para teclear lo que buscas, un botón para aceptar, un query y un dbgrid con un datasource que los enlaces, y escribe algo así en el onclick del botón:
Código:
qrBuscarClientes.Close;
qrBuscarClientes.SQL.Text:='SELECT * FROM TBCLIENTES WHERE NAME containing '+QuotedStr(edQueBuscar.Text);
qrBuscarClientes.ExecQuery;
Si tienes el query enlazado a un datasource y el datasource a un grid, entonces verás el resultado en el grid

P.D.: Es un simple ejemplo, depende de lo que quieras hacer.
Responder Con Cita
  #6  
Antiguo 17-05-2006
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 23
vtdeleon Va por buen camino
Cita:
Empezado por Casimiro
Código Delphi [-]
qrBuscarClientes.ExecQuery;

En vez de ExecQuery, no será Open
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #7  
Antiguo 17-05-2006
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por vtdeleon

En vez de ExecQuery, no será Open
Pues depende, suponiendo que hablamos de componentes IBX o derivados (FIB,FIBplus...), si se usa un IBDataSet es open. Si se usa un IBSql es ExecQuery.
El IBDataSet es de la clase TIBCustomDataSet->TDataSet
El IBSql es de la clase TComponent.

El primero, IBDataSet, es mejor para "moverse" por los registros devueltos, poder editar, borrar, etc

El segundo, IBSql , es más indicado para consultas más rápidas, para "traerse" unos datos determinados, búsquedas, sentencias de actualización, etc.

Al menos, así lo uso yo.
Responder Con Cita
  #8  
Antiguo 17-05-2006
edusus edusus is offline
Miembro
 
Registrado: ene 2006
Posts: 47
Poder: 0
edusus Va por buen camino
No me funciona

De todos modos agradezco la buena voluntad en explicarme. Seguramente el error es mio.
Casimiro te importaría que te mande el proyecto para ver que es lo que tengo mal hecho. Te lo pregunto sin ningún compromiso y estoy de todos modos muy agradecido.
Un saludo
Responder Con Cita
  #9  
Antiguo 17-05-2006
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por edusus
De todos modos agradezco la buena voluntad en explicarme. Seguramente el error es mio.
Casimiro te importaría que te mande el proyecto para ver que es lo que tengo mal hecho. Te lo pregunto sin ningún compromiso y estoy de todos modos muy agradecido.
Un saludo
claro, envíalo, no hay problema
Responder Con Cita
  #10  
Antiguo 17-05-2006
edusus edusus is offline
Miembro
 
Registrado: ene 2006
Posts: 47
Poder: 0
edusus Va por buen camino
aquí va

Aquí te adjunto un zip con el proyecto.
Gracias
Archivos Adjuntos
Tipo de Archivo: zip agenda.zip (3,4 KB, 44 visitas)
Responder Con Cita
  #11  
Antiguo 17-05-2006
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
has olvidado enviarme el código fuente, el .pas

De todas formas, veo que usas una tabla, creo que paradox, y las explicaciones que he estado dando antes eran para componentes de acceso a interbase/firebird.

No sé si es igual para los componentes que uses para paradox, la verdad es que jamás he programado nada en paradox, access y esas cosas... pero seguro que algún compañero te puede ayudar... si envías el código fuente, claro
Responder Con Cita
  #12  
Antiguo 18-05-2006
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Poder: 22
José Luis Garcí Va camino a la fama
Prueba lo siguiente haber si te funciona,

Código Delphi [-]
     Query1.Active:=False;
     Query1.SQL.Clear;
     Query1.SQL.Add('SELECT nombre FROM Agenda WHERE UPPER(NOMBRE) LIKE upper('+chr(39)+'%'+ Edit2.Text+'%'+chr(39)+')');
     Query1.Active:=true;
Lo uso dentro del evento onchage del edit, si te interesa te mando una agenda con un par de curiosidades y tres sistemas de busqueda, dos por código y uno con un componente, si te interesa mandame tu correo electronico ya que temando los fuentes y el ejecutable, te advierto que usos componentes no estandar pero que se encuentran en la red y son freeware.

Un saludo desde canarias
Responder Con Cita
  #13  
Antiguo 19-05-2006
edusus edusus is offline
Miembro
 
Registrado: ene 2006
Posts: 47
Poder: 0
edusus Va por buen camino
Perdona, ahora va completo

Perdona Casimiro, quitando archivos para que ocupara menos había quitado por error el Pas y otros necesarios.
El archivo Agenda.db cógelo del zip anterior.
Gracias
Archivos Adjuntos
Tipo de Archivo: zip Agenda2.zip (15,8 KB, 48 visitas)
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Busqueda Con Una Sql salvanano SQL 5 05-05-2005 21:59:11
busqueda alachaise Internet 1 31-03-2005 17:57:34
busqueda incremental con ado slat Conexión con bases de datos 1 11-07-2004 19:32:52
campos de busqueda................. David J. Conexión con bases de datos 3 06-07-2004 18:34:36
Búsqueda !!! vpepen Conexión con bases de datos 4 26-11-2003 13:48:58


La franja horaria es GMT +2. Ahora son las 17:42:52.


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