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)
-   -   Cargar DBGrid (https://www.clubdelphi.com/foros/showthread.php?t=56196)

rohd 10-05-2008 00:05:34

Cargar DBGrid
 
Buenas estoy intentando de conectar con una Base de Datos de MySql con Delphi 7, la información pretendo enseñarla en un DBGrid, como componentes para la conexión uso un TSQLConnection, un TDataSource y un TSQLQuery, creo que consigo enlazar lo todo menos el TDataSource se supone que tengo que rellenar su DataSet pero no me aparece ningún valor.

Como intento conectarlo seria asi.

TSQLQuery me pide una conexion que la consigo con TSQLConnection.

El DBGrid lo conecto con el TDataSource.

Si trato de enlazar el TDataSource con el TSQLQuery es donde me da el fallo.

Aqui les dejo mis dudas y espero sus respuestas, muchas gracias de antemano.

roman 10-05-2008 00:24:38

Pues es muy raro. El SQLQuery y el DataSource ¿los tienes en el mimso lugar? ¿O el SQLQuery está en un DataModule y el DataSource en un formulario?

// Saludos

rohd 10-05-2008 10:43:46

Si los tres componentes (TSQLConnection, TDataSource y TSQLQuery) estan en el mismo formulario, es lo que me sorprende.

rohd 12-05-2008 23:47:34

Buenas de nuevo al final he conseguido conectar la base de datos mysql... Aunque no lo he conseguido en un principio como tenia pensado.

Lo componentes que he utilizado han sido un BDGrid (para mostrar la informacion), un ADOConnection (para establecer la ocnexion con el servidor mysql), un ADOQuery (donde indico la sentencia SQL, en mi caso "SELECT * FROM TABLA") y el DataSource, para conectar los distintos componentes.

Pues bien la hora de hacer la conexion ha sido:

Componente a conectar(campo donde conecto) -> Componente al que me quiero conectar
BDGrid (DataSource) -> DataSource
DataSource(DataSet) -> ADOQuery
ADOQuery(Conection) -> ADOConnection

Bueno eso ha sido todo lo dejo aqui por si alguien mas tiene una duda y le puede ayudar.

P.D. Aun sigue dandome problemas el conectar los componentes SQLQuery, DataSource y BDGrid, cuando indico el orden como arriba me salta un error de "Operation not allowed unidirectional dataset".

Bueno nos vemos un saludo!!

roman 13-05-2008 00:02:18

Cita:

Empezado por rohd (Mensaje 286170)
P.D. Aun sigue dandome problemas el conectar los componentes SQLQuery, DataSource y BDGrid, cuando indico el orden como arriba me salta un error de "Operation not allowed unidirectional dataset".

¡Vaya! Debí haberlo notado desde un principio. Aunque hubiera ayudado que pusieras desde el inicio el texto del mensaje de error para refrescar mi memoria ;)

Lo que sucede está explicado en la ayuda de Delphi:

Cita:

TSQLQuery is a unidirectional dataset. Unlike other datasets, unidirectional datasets do not buffer multiple records in memory. Because of this, you can only navigate using the First and Next methods. There is no built-in editing support: you can only edit the data in an SQL query by explicitly creating an SQL UPDATE command or by connecting the dataset to a client dataset using a provider. Features that require buffering multiple records, such as filters or lookup fields, are not available.
En otras palabras, dbExpress está diseñado para trabajar sin cargar en memoria ni siquiera un pequeña porción de los registros que envía el servidor, y esto tiene como consecuencia que no puedas usar un DBGrid para visualizar/editar los datos.

En estos casos, lo que se debe hacer es poner una pareja ClientDataSet-Provider de intermediaria entre el SQLQuery y el DBGrid.

Pero viendo que has optado por ADO, creo que es mejor que sigas por ahí, que es un buen camino :)

// Saludos

NicoDominguez 03-11-2010 00:30:59

Cita:

Empezado por rohd (Mensaje 286170)
Buenas de nuevo al final he conseguido conectar la base de datos mysql... Aunque no lo he conseguido en un principio como tenia pensado.

Lo componentes que he utilizado han sido un BDGrid (para mostrar la informacion), un ADOConnection (para establecer la ocnexion con el servidor mysql), un ADOQuery (donde indico la sentencia SQL, en mi caso "SELECT * FROM TABLA") y el DataSource, para conectar los distintos componentes.

Pues bien la hora de hacer la conexion ha sido:

Componente a conectar(campo donde conecto) -> Componente al que me quiero conectar
BDGrid (DataSource) -> DataSource
DataSource(DataSet) -> ADOQuery
ADOQuery(Conection) -> ADOConnection

Bueno eso ha sido todo lo dejo aqui por si alguien mas tiene una duda y le puede ayudar.

P.D. Aun sigue dandome problemas el conectar los componentes SQLQuery, DataSource y BDGrid, cuando indico el orden como arriba me salta un error de "Operation not allowed unidirectional dataset".

Bueno nos vemos un saludo!!

Hola, una consulta, como configuraste la componente ADOConnection para conectarla con el servidor MySql?


La franja horaria es GMT +2. Ahora son las 18:43:54.

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