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 10-04-2009
c35xr c35xr is offline
Registrado
 
Registrado: abr 2009
Posts: 4
Poder: 0
c35xr Va por buen camino
Question Como Seleccionar Los Datos De Una Base De Datos ?????

hola que tal disculpen por la molestia


soy nuevo en esto asi k tratare de ser lo mas claro posible


estoy realizando un programa k maneja 2 bases de datos de MySQL la conecccion la hice con ADOtable

mi duda es

en una base de datos tengo estos campos con los siguientes datos

|Nombre|---|Apellido|---|edad|
--Carlos-----Benitez-------18
--Jose-------Madero-------26
--Maria------Perez---------23
--Carlos-----Cardenas------15

tengo una form con un edit para buscar los datos por Nombre y eso si me lo realiza pero quisiera k cuando ingrese un nombre por ejemplo "Carlos"
me muestre todos los registros k contengan el nombre "Carlos" en un dbgrid algo mas o menos asi:

|Nombre|---|Apellido|---|edad|
--Carlos-----Benitez-------18
--Carlos-----Cardenas------15

y no todos los registros como en la primera vez

pero hasta ahorita no eh podido lograrlo me podrian AYUDAR POR FAVOR!!!!

es k ya estoy algo desesperado

bueno muchas muchas gracias por su ayuda de antemano


XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX

Última edición por c35xr fecha: 10-04-2009 a las 01:08:45. Razón: por error al escribir
Responder Con Cita
  #2  
Antiguo 10-04-2009
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola c35xr,
Veo que ahora expones tu problema en el foro.
Disculpa si en mi mensaje privado he sido un tanto brusco pero es que es casi una falta el estar pidiendo ayuda en privado. El foro está hecho para que entre todos nos ayudemos no para pedir ayuda en linea y en forma privada.

Tus mismas dudas pueden ser de ayuda a los demás.

Bueno, respecto a tu duda... veamos...

Tienes una tabla en MySQL y empleas los componentes ADO, concretamente dices ADOTable.

Al parecer lo que buscas es filtrar los datos dado un nombre. La rpegunta aquí es: ¿Que comiencen por el nombre, o es que el nombre puede aparecer en cualquier parte del campo?
No es lo mismo buscar aquellos Carlos que son Carlos Fernando, Carlos Eduardo, y Carlos Marcelo que buscar aquellos Juan Carlos, Marcos Carlos, Jose Carlos Martin. ¿Se entiende?
En el primer caso los "Carlos" están al principio mientras que en el segundo están en cualquier lado... podrían ser al principio, al final, en el medio.

De todas formas lo que necesitas es filtrar. Eso se consigue con dos propiedades:
Filtered: para indicar que debe aplicar el filtro.
Filter: el string que hará de filtro. Básicamente será una construcción condicional SQL. Por ejemplo:

Código SQL [-]
Nombre = 'Carlos'
Nombre = LIKE %'Carlos'%

En el primer caso mostrará aquellos quienes tengan por nombre Carlos, mientras que en el segundo mostrará a quienes tengan en alguna parte del nombre el texto Carlos. (No uso MySQL deberás fijarte si el comodín es %). Si deseas que busque aquellos que comienzan con Carlos:

Código SQL [-]
LIKE 'Carlos'%

Aquellos que terminan con Carlos:

Código SQL [-]
LIKE %'Carlos'

Si buscas en los foros sobre estas dos propiedades encontrarás más ejemplo.
Recomiendo repasar el comando SQL LIKE. Y en lo posible haz uso de consultas (ADOQuery, en el caso de ADO) ya que son más potentes y versátiles.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #3  
Antiguo 10-04-2009
c35xr c35xr is offline
Registrado
 
Registrado: abr 2009
Posts: 4
Poder: 0
c35xr Va por buen camino
Smile Gracias Por Tu Ayuda

Bueno muchas gracias por tu ayuda pero en verdad aun no me queda muy claro que digamos

en cuanto a tu pregunta digamos k el nombre va al principio no puede ir despues o al final por k eso no es lo k quiero.

lo k quiero es k busque en la tabla y todos los registros k se llamen Carlos los tome y me los muestre en un dbgrid ejemplo

|Nombre|-----|Apellido|------|Edad|
-Carlos--------Cardenas-------18
-Carlos--------benitez---------19
-Carlos---------Segura---------17
-Carlos--------slim------------40


y todos los demas k no sean carlos no se muestren en el dbgrid

espero k esta informacion aclare mas mi problema


por tu ayuda mil gracias
Responder Con Cita
  #4  
Antiguo 10-04-2009
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
A ver, aclaremos algo:

¿En el campo Nombre está permitido tener dos o más nombres?
Porque si sólo se permite un nombre y quieres mostrar a los Carlos, la cosa es muy simple: en la propiedad Filter se debe poner un condicional de la forma:

Código SQL [-]
Nombre = 'Carlos'

Si en el campo puede haber más de un nombre, deberás ingresar una construcción con LIKE.

Código SQL [-]
Nombre LIKE '%Carlos%'

Y en este caso encontrará a cualquier Carlos, sea su primer, segundo y/o incluso último nombre.

Cuando tu dices:

Cita:
lo k quiero es k busque en la tabla y todos los registros k se llamen Carlos
Estás dando una condición débil. Y por tanto debes establecer una condición lo suficientemente fuerte como para garantizar que el resultado a mostrar cumpla con tus requisitos.

Y disculpa que sea pesado pero siguiendo lógica, Juan Carlos deberá incluirse en la lista, como así también un Carlos Marcelo. ¿Porqué? Porque tanto Juan y Marcelo también se llaman Carlos.

Por ello mi planteo: limitar adecuadamente tu lógica.

Saludos,
PD: Se que eres nuevo y te estás acostumbrando al foro pero te voy a pedir que por favor evites matar más al español. No uses k's donde no van. Es un tanto molesto a la vista.
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #5  
Antiguo 10-04-2009
Avatar de Nati1
Nati1 Nati1 is offline
Miembro
 
Registrado: nov 2007
Posts: 24
Poder: 0
Nati1 Va por buen camino
Se puede poner en un botón o en el evento onchage del edit:
Código Delphi [-]
AdoTable.Filtered := False;
AdoTable.Filter := 'Nombre = '+QuotedStr(Edit1.Text);
AdoTable.Filtered := True;
La misma recomendación: Cambia por AdoQuery o mejor por Zeos.
Responder Con Cita
  #6  
Antiguo 10-04-2009
c35xr c35xr is offline
Registrado
 
Registrado: abr 2009
Posts: 4
Poder: 0
c35xr Va por buen camino
Cool Respuesta a Delphius

Hola Delphius


disculpa por lo de las k's jeje cambiare mi forma de escritura y con respecto a mi problema es una adaptacion a mi problema real ya te mande un correo espero te aya llegado jiji

y gracias por tu ayuda ya me dijiste como filtrar la informacion ahora me puedes decir como hacerle para mandar esa informacion al dbgrid ???

eso es lo que me hace batallar


espero no ser tan molesto


y con respecto al nombre si se pueden repetir infinidad de veces y afuerzas tienen k ir al principio y no es por la logica es solo que asi me lo piden


gracias por tu ayuda


y a todos mil gracias


XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX
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
Insertar Datos a un campo de la base de datos desde un DBEdit saltamirano Varios 11 12-12-2007 17:29:35
Crear base de datos y cargar datos desde delphi Albano MySQL 4 17-05-2007 20:01:18
Herramienta case para diccionario de datos de base de datos firebird mcalmanovici Firebird e Interbase 1 11-02-2007 15:17:37
Guardar en 1 base de datos SQL, datos procedentes de 2 tablas distintas adaypr C++ Builder 1 05-09-2006 11:56:33
Reto Para Expertos En Base De Datos Y Tipos De Datos.... (blob) frankmch Conexión con bases de datos 2 08-09-2003 19:44:52


La franja horaria es GMT +2. Ahora son las 05:35:39.


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