Ver Mensaje Individual
  #16  
Antiguo 02-03-2011
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Reputación: 17
rgstuamigo Va por buen camino
Arrow

Bueno.. existen muchas formas de hacer lo que pretendes pero primero creo que debes explicarnos por que tratas de hacer una busqueda en tu BD con un entero (integer) si segun entiendo el campo "nombre" de tu tabla es de tipo Varchar(), bueno amenos eso entiendo
De todas formas te voy a dar un ejemplo completo de como puedes solucionar tu problema(si estas hablando de una misma tabla) y lo que necesitas es ver solo algunos datos(registros) específico:
Supongamos que tenemos un tabla de nombre "Usuario" (siguiendo tu ejemplo tuyo )en la BD con los siguientes campos:
Cita:
------ Tabla Usuario-----
ID Nombre Estado
Dónde se tiene ya muchos registros guardados...

Lo que vamos hacer es utilizar un componente ADOTable (Puede ser tambien un ADODataset o ADOQuery), enganchamos al ADOTable a nuestro componente TADOConnection que logicamente tiene todas sus propiedades bien configuradas, ponemos el nombre de la tabla de la BD a nuestro ADOTable, ésto se hace en la propiedad "TableName" del mismo,es decir nuestra tabla "Usuario";para visaulizar los registros podemos utilizar un componente DBGrid que esté ligado aun componente DataSource que a su ves está enganchado anuestro ADOTable, en sintesis la cadena de enganches sería así:
Cita:
ADOConnection1 < ADOTable1 < DataSource1 < DBGrid1
Si activamos(Active=True) nuestro componente ADOTable vemos que trae desde la BD todos los registros sin excepcion de ninguno. Pero lo que se quiere es que por ejemplo mostrar el usuario que tiene como ID=6, es decir solo quiero mostrar el usuario cuyo ID es igual a 6, lógicamente si estuviéramos trabajando con un ADOQuery,lo que hariamos sería cambiar de sentencia SQL algo como:
Código SQL [-]
Select * from Usuario Where ID = 6
y el asunto se solucionaría ¿verdad? pero en nuestro caso estamos usando un componente ADOTable el cual no posee una propiedad SQL o ComandText como los otros DataSet, sin embargo existe una mejor forma de resolverlo ya sea que se use un AdoTable o AdoQuery o cualquier otro dataSet, sin estar cambiando la consulta SQL a cada rato y es lo que mencioné en el anterior post los llamados filtros. Todos los DataSet(Componentes que son descendientes de la clase TDataSet) tienen dos propiedades específicas para establecer filtros, una es "Filter" que de tipo String donde podemos colocar diferentes formas de filtrar los registros, ya sean de alguna columna o algun registro específico; la otra propiedad es "Filtered" que es la encargada de activar o desactivar el filtro de la propiedad "Filter", pero vamos con un ejemplo:
Quiero mostrar solo el usuario con ID = 6 en mi ADOTable entonces vamos a plicar un filtro para que solo se muestre en nuestro DBGrid el usuario cuyo ID sea 6:
Colocamos lo siguiente en el evento OnClick de un componente TButon
Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
begin
ADOTable1.Filter:='ID=6';// le digo que el filtro es que me muestre solo el usuario cuyo ID es 6
ADOTable1.Filtered:=True;// activamos el filtro
end;
Al hacer eso, sólo voy a visualizar en mi DBGrid aquellos usuarios que tengan ID = 6, pero vamos con otro ejemplo con otra columna o campo >
Código Delphi [-]
procedure TForm1.Button3Click(Sender: TObject);
begin
ADOTable1.Filter:='Nombre='+Edit1.Text;// le digo que el filtro es que me muestre solo 
                        //el usuario cuyo Nombre sea igual a lo tengo en el Edit1
ADOTable1.Filtered:=True;// activamos el filtro
end;
Etc.
Como podemos ver los filtros nos pueden servir tanto para buscar algun registro específico o tambien para visualizar en pantalla algun registro en cuestion.Para más informacion podemos buscar en la ayuda de Delphi( presionar la tecla F1 para abrir la ayuda).
Espero sea de utilidad...
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7

Última edición por rgstuamigo fecha: 02-03-2011 a las 22:01:35.
Responder Con Cita