Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Como Selesscionar Los Datos De Una Base De Datos ????? (https://www.clubdelphi.com/foros/showthread.php?t=64613)

c35xr 10-04-2009 00:52:48

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!!!!:eek:

es k ya estoy algo desesperado

bueno muchas muchas gracias por su ayuda de antemano


XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX

Delphius 10-04-2009 04:03:14

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,

c35xr 10-04-2009 04:16:30

Gracias Por Tu Ayuda
 
:DBueno 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

Delphius 10-04-2009 04:50:45

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.

Nati1 10-04-2009 04:56:25

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.

c35xr 10-04-2009 05:10:42

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

Delphius 10-04-2009 05:33:49

Cita:

Empezado por c35xr (Mensaje 344589)

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:(

¿Viste el ejemplo de Nati1?
Dicho ejemplo debería ser lo suficientemente simple y gráfico para ilustrar lo que buscas.

Cuando tu filtras tu ADOTable, o cualquier DataSet, de forma inmediata los cambios son aplicados a los controles visuales que están relacionados.

¡No necesitas cambiar más nada!

Luego, para descativar el filtro sólo deberás poner en false la propiedad Filtered.

El DBGrid es sólo una representación visual de los datos que están en el dataset, en tu caso el ADOTable.

Espero que con esto ya se entienda.

Voy a ser "pesado" ahorita: Lee la ayuda que ofrece Delphi sobre la propiedad Filter y Filtered. El inglés no es motivo ni escusa para no leerla, hay traductores on-line y off-line que dentro de todo traducen decentemente los textos.

Saludos,

Delphius 10-04-2009 05:39:51

He leído el correo que me enviaste, no hay problema... puedes exponer el tema aquí. Si por motivos legales, o por cierta confidencialidad, no deseas exponerlo está bien. No importa si el campo es Nombre, Fulano o Mengano... la lógica es la misma, se procede de la misma manera.

Saludos,

c35xr 10-04-2009 05:47:40

Gracias Mil Gracias ya solucionaron mi problema
 
muchas gracias amigos del club delphi


mi problema ya fue resuelto


ahorita me pondre a terminar mi programa


muchas gracias en verdad


io estare viendo en que los puedo ayudar ok


espero k esten bien



y gracias nuevamente


adios


XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX

:D:D:D:D:D:D:D:D:D


La franja horaria es GMT +2. Ahora son las 12:50:58.

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