Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   ayuda con el DBGrid (https://www.clubdelphi.com/foros/showthread.php?t=49138)

metroyd 14-10-2007 04:57:10

ayuda con el DBGrid
 
Hola que tal. Les solicito su ayuda nuevamente. No puedo visualizar datos en un DBGrid. Ocupo una base de datos en MySQL. Tengo un DataModule donde puse un ADOConnection a la Base de datos, un ADOQuery con la propiedad SQL (Select * from correo), y un DataSource apuntando al ADOQuery. Bueno, tengo una tabla en mi BD llamada correo, donde tengo los siguientes campos: (INDICE, DE, PARA, ASUNTO, MENSAJE). Tengo otra tabla llamada Usuario con los campos (NOMBRE, CONTRASEÑA, DIRECCION_DE_CORREO).
Bueno, mi aplicacion Cliente pide al usuario introducir su Nombre y su Contraseña (verifica la existencia de esos datos en la BD). Si existe el usuario puede ver su Bandeja de Entrada. Es aqui donde quiero visualizar en un DBGrid aquellos datos (mensajes) donde el campo PARA sea igual a la DIRECCION_DE_CORREO del usuario que ingresó. Pero no puedo lograr esto. La verdad no he manejado nunca un DBGrid. Espero que ahora si me ayuden, porfa, gracias.

PD: En el DataModule tambien tengo otro adoquery para checar la existencia de los usuarios. con sus respectivos datasource

eduarcol 14-10-2007 15:43:07

Hola, antes que todo bienvenido al club te recomiendo leer la guia de estilo ya que se considera mal el repetir los hilos...

Luego de esto, me queda explicarte que un DbGrid lo qe hace es mostrar la informacion qu etenga el dataset, en tu caso adoquery, indicado en la propiedad datasource...

Esto quiere decir que debes realizar una consulta a la base de datos que te devuelva los registros necesarios y el dbgrid lo mostrara

metroyd 14-10-2007 20:45:44

Cita:

Empezado por eduarcol (Mensaje 238436)
Hola, antes que todo bienvenido al club te recomiendo leer la guia de estilo ya que se considera mal el repetir los hilos...

Luego de esto, me queda explicarte que un DbGrid lo qe hace es mostrar la informacion qu etenga el dataset, en tu caso adoquery, indicado en la propiedad datasource...

Esto quiere decir que debes realizar una consulta a la base de datos que te devuelva los registros necesarios y el dbgrid lo mostrara

Bueno, me queda claro que en AdoQuery hago la consulta que deseo, pero como la paso al DAtaSource??? para que el datasource a su vez los mande al DBGrid???

eduarcol 14-10-2007 21:27:13

agrega un datasource de la palete DataAcces y en su propiedad dataset le colocas el query que hace la consulta, luego al grid en la propiedad Datasource le asignas el componente que acabas de agregar, a lo que abras el query veras los datos

metroyd 15-10-2007 05:14:12

Cita:

Empezado por eduarcol (Mensaje 238484)
agrega un datasource de la palete DataAcces y en su propiedad dataset le colocas el query que hace la consulta, luego al grid en la propiedad Datasource le asignas el componente que acabas de agregar, a lo que abras el query veras los datos

Hola, ke tal, pues, ya pude conectar el DBGrid con el ADOQuery, pero ahora no puedo hacer una consulta especifica para que me muestre solo ciertos datos. Mira: Tengo este codigo en el boton BANDEJA DE ENTRADA

Código Delphi [-]
procedure TForm1.Button4Click(Sender: TObject);
begin
        //Form2.Show;
        DataModule1.ADOQuery3.SQL.Clear;
        DataModule1.ADOQuery3.SQL.Add('select* from correo where para='+chr(39)+Label2.Caption);

        DataModule1.DataSource3.DataSet:=DataModule1.ADOQuery3;
        //DataModule1.ADOQuery3.ExecSQL;

        DataModule1.ADOQuery3.Active:=true;
        DBGrid2.DataSource:= DataModule1.DataSource3;
        //DataModule1.ADOQuery3.Close;
        DbGrid2.Visible :=true;


end;

En el formulario tengo el Label2 donde me guarda el usuario, entonces quiero que en el DBGrid me muestre los mensajes o datos de ese usuario en especial. El campo es de tipo VARCHAR de 40 de longitud, pero si ejecuto mi codigo tal y como esta me aparece un error en la sintaxys sql.
Si la consulta la dejo de esta manera: DataModule1.ADOQuery3.SQL.Add('select* from correo where para="edwin@server"'); Aki si me muestra los datos del usuario edwin@server, pero pues se trata de que me muestre el de cualquiera.
Gracias por tu ayuda

metroyd 15-10-2007 05:42:11

olvidalo, ya pude
 
Ya pude resolver el problema,gracias!!!

Delphius 15-10-2007 07:35:44

Hola metroyd,
Me alegro que hayas resuelto el problema.
Si no te es una molestia, ¿Serías tan amable de compartir con el resto de la comunidad de clubdelphi como fue tu solución... y en lo posible redactar con mayores detalles el extinto problema?

Existe la posibilidad de que hayan personas interesadas y/o con tus mismas inquietudes y tener acceso a una solución les sea de utilidad. Si bien el tema tratado en este hilo es similar a otros, puede que tenga sus variaciones y/o particularidades (te sorprenderías de las particularidades con las que nos encontramos a diario:D:p) y ofrezca un punto de vista a considerar.

Esta comunidad se hace con el desinteresado y altruista aporte de cada uno. Y contar con tu apoyo hace que crezcamos más.

Muchas gracias.
Saludos,

eduarcol 15-10-2007 14:04:40

asumo que el problema es que no encierra el texto entre comilla, solo la abre

metroyd 15-10-2007 23:34:39

Este es el codigo que me funciona bien:

Código Delphi [-]
        DataModule1.ADOQuery3.SQL.Clear;
        DataModule1.ADOQuery3.SQL.Add('select* from correo where  para="'+Form3.Edit1.text+'"');
        DataModule1.DataSource3.DataSet:=DataModule1.ADOQuery3;
        //DataModule1.ADOQuery3.ExecSQL;
        DataModule1.ADOQuery3.Active:=true;
        Form2.DBGrid1.DataSource:= DataModule1.DataSource3;

Bueno, la solucion era lo que mencionan: Me faltaron las comillas dobles. y la consulta no la Cierro.


La franja horaria es GMT +2. Ahora son las 12:04:21.

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