Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Mostrar datos de un ADOQuery en un DBGrid (https://www.clubdelphi.com/foros/showthread.php?t=73299)

Usuaria1980 13-04-2011 16:40:49

Mostrar datos de un ADOQuery en un DBGrid
 
Hola gente!!!...

Tengo un ADOQuery con el que hago una consulta a mi DB de Access y quiero que los resultados me los muestre en el grid. Indudablemente lo estoy haciendo mal porque al ejecutarlo me da un error muy feo (La parte de la consulta está bien) lo que me da error es la carga del grid.

Muchas gracias :)

marcoszorrilla 13-04-2011 16:47:42

Pues en realidad no hay nada que cargar lo que tienes que es que conectar un TDataSource a la consulta y éste a tu rejilla.

Un Saludo.

Usuaria1980 13-04-2011 16:52:01

Es que ya lo tengo así... y me da un error : "no coinciden los tipos en la expresión de criterios" .
No tenia que asignarle a cada columna el campo que quiero que me muestre??

Que caos, se me ha olvidado todoo!!!!:(

Delfino 13-04-2011 16:57:19

Cita:

Empezado por Usuaria1980 (Mensaje 396898)
al ejecutarlo me da un error muy feo (La parte de la consulta está bien) lo que me da error es la carga del grid.

Todo lo contrario, seguramente la parte de la consulta es donde esta el error, averigualo bien :cool:

marcoszorrilla 13-04-2011 17:00:27

Ten en cuenta lo que te dice Delphino. Además puede ser que tuvieras campos persistentes y hayas quitado alguno de la consulta y no la lista de campos.

Elimina todos los campos persistentes. Haz un simple Select.

-
Código SQL [-]
Select * from tabla
Esto tiene que mostrar datos en la rejilla, luego vete cambiando el SQL paulatínamente y así sabrás en que punto lo estás haciendo mal.

Un Saludo.

Usuaria1980 13-04-2011 17:13:22

Delfino, Marcoszorrilla, teniais razón la consulta está mal, he pasado mal el parametro al where. Ahora estoy probando como me habeis comentado
"Select * from tabla" pero en el grid no me muestra nada.....

no tengo que poner algo así como esto?
DBGrid1.Columns[0].FieldName:= adoquery1.fieldbyname('id').asstring;

oscarac 13-04-2011 17:18:12

mas simple
debes tener 1 componente de Conexion (ADO)
1 TAdoquery (donde colocaras Select * from tabla)
1 DataSource asociado al TAdoquery (esta en los componentes Data Access)
1 Grid que tenga en la propiedad datasource el nombre que le has puesto al datasource anterior (normalmente datasource1)

abres el query (puedes ponerle Active = true)
y deberia funcionar

Usuaria1980 13-04-2011 17:30:15

Aisss, gracias, pero sigue sin mostrarme nada....
Te detallo lo que tengo:

ADOConnnection1 conectado a la DB Access por Jet
DataSource2 -> DataSet:AdoQuery2
ADOQuery2 ->Connection: ADOCOnnection1

Ah y en el DBGrid -> DataSource: DataSource2.

Tengo un datasource1 y otro AdoQuery1 que los uso para otras consultas, esos me está funcionando OK.

Dentro del ADOQuery2, en PruebaForm.ADOQuery2, he añadido los campos de la tabla, los que me va a devolver de la consulta, esto lo acabo de hacer ahora, pero el resultado es el mismo....

Muchas gracias por vuestra paciencia....

oscarac 13-04-2011 17:34:37

y que consulta tienes en AdoQuery2 ?

Usuaria1980 13-04-2011 17:35:56

AdoQuery2.Close;
AdoQuery2.SQL.Clear;
AdoQuery2.SQl.Text := 'Select * From tabla1';
AdoQuery2.Open;

Usuaria1980 13-04-2011 17:39:49

Conseguido!!

Muchas gracias a todos, os cuento lo que he hecho...

Después de añadir los campos de la tabla que quiero que me muestre en PruebaForm.ADOQuery2, en el DBGRid.Columns, he añadido las columnas y las he asociado por FieldName a las de la consulta. Ahora me funciona.

Aunque me funciona, si esta no es la mejor manera, espero que me podáis decir.

Muchas muchas gracias

oscarac 13-04-2011 17:44:21

quiza si lo cuelgas en el FTP lo podriamos revisar... porque no hay necesidad de asociar nada

solo al grid le dices que datasource usara y listo

Usuaria1980 13-04-2011 18:01:30

Vale, lo cuelgo, aviso que es un ejercicio bastante cutre, quiero decir que la interfaz deja bastante que desear.. estoy haciendo pruebas para recordar.. tengo una prueba el viernes de Delphi y casi no me acuerdo de nada, 1 año y medio es mucho!

Lo he subido mal, sabes como puedo quitarlo de ahí? no lo he metido en la carpeta varios.....

oscarac 13-04-2011 18:12:34

funciona bien....
cuando lo ejecutaste debio mostrarte algun dato desde el principio

Usuaria1980 13-04-2011 18:14:55

Si, si, despues de lo que he cambiado para asociar las columnas a los campos del select del Query, funciona, pero esa es la mejor manera de hacerlo???

ContraVeneno 13-04-2011 23:09:28

Cuando vi que una pregunta sencilla tenía 14 respuestas, me sorpendí. Cuando vi que era una usuaria de 1980, entendí por que....

¡buitres!, déjenla trabajar.... ahora na mas falta que le pidan su foto....

¿ya la puso?, pasen el link....

:D:D

Caral 13-04-2011 23:23:57

Hola
Aqui esta el link:
http://ts3.mm.bing.net/images/thumbn...azyCatLady.gif:D
Saludos

Usuaria1980 13-04-2011 23:25:01

jajajajajajaja!!! mas o menos... pero sin gatos que me da alergia... :)

ContraVeneno 13-04-2011 23:39:10

jejeje :D:D

:)

oscarac 14-04-2011 00:02:42

mmm contraveneno ud. esta en todas.... yo la verdad no me habia dado cuenta de ese detalle.. pero sera real?


La franja horaria es GMT +2. Ahora son las 08:44:44.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi