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)
-   -   Problema con DBExpress y DBGrid (https://www.clubdelphi.com/foros/showthread.php?t=60013)

octavioallec 17-09-2008 03:54:14

Problema con DBExpress y DBGrid
 
Hola a todos.

Consulto con todos ustedes porque he buscado muchas posibles soluciones y aún no he tenido éxito, mi problema es el siguiente...

Tengo mi aplicación en Delphi 2007, mi base de datos en MySQL 5.1.25, sistema operativo Windows XP SP3.

En mi aplicación uso componente DBExpress, en mi DataModule ya cuento con los componente SQLConnection, SQLQuery (también probado con SQLDataSet), DataSetProvider y ClientDataSet. He verificado conectarlos adecuadamente.

Puedo conectarme a mi base de datos sin problemas, pero todo empieza cuando hago una consulta, por ejemplo.

SQLQuery1.SQL.Text:='SELECT Nombre FROM Usuarios';
SQLQuery1.Open;
ClientDataSet1.Open;

Enlazo mi ClientDataSet con un DataSource y puedo ver los resultados en un DBGrid, sin embargo, si agrego algún campo más a mi consulta (el que sea), mi aplicación manda error.

SQLQuery1.SQL.Text:='SELECT Nombre,Clave FROM Usuarios';
SQLQuery1.Open;
ClientDataSet1.Open;

Envía el siguiente error:

Access violation at address 00BDDF48 in module 'dbxmys30.dll'. Read of address 00000000

Con sinceridad agradeceré sus aportaciones para poder solucionar este problema. Saludos y GRACIAS de antemano.

toni.vi 17-09-2008 20:03:14

No es necesario el SQLQuery1.Open;
con ClientDataSet1.Open; es suficiente.
Debes cargar los campos en el sqldataset y en clientdataset y poner en el campo que sea clave principal de ambos componentes en pfInKey dentro del ProviderFlags a true.

octavioallec 18-09-2008 16:27:38

El problema continua
 
Toni muchas gracias por tu sugerencia, ya hice los cambios que me indicaste, el QUERY no necesita abrirse, sin embargo cuando intento usar el SQLDataSet me manda error.

Me he centrado un poco más en usar los SQLQuery, pero sigo teniendo el mismo problema, cuando en el Query hago una consulta de un solo campo trabaja muy bien, pero en cuanto uso otra consulta y pido 2 o más campos de cualquier tabla me envía el error que comentaba al principio.

Sinceramente agradezco mucho el apoyo de las personas que me ayuden a resolver el problema :) (Toni...GRACIAS).

Saludos a todos y que estén de lo mejor.

toni.vi 19-09-2008 14:15:05

Supongo que conectas
SqlDataset al SqlConnection
DatasetProvider a SqlDataset
ClientDataset a DatasetProvider
DataSource al ClientDataset (muy importante)

La propiedad pfInKey de los campos key principal a True.
Si Trabajas con más de una tabla en la misma Select, los campos que no son de la tabla principal debes poner pfInUpdate y pfInWhere a False.
Con todo eso debe funcionar bien, sino deberias dar mas detalles.
Saludos
Toni

octavioallec 18-10-2008 04:20:35

Continua la búsqueda
 
Nuevamente Toni muchas gracias por tu colaboración, con sinceridad comienzo a pensar que he tenido una mala configuración de estos componentes al instalar Delphi 2007, o bien con tanta prueba, le cambie la configuración de forma erronea y ahora que hago un poco de memoria, recuerdo que usando los asistentes pude accesar a las tablas y campos de mi DB, seguí probando y después ni los asistentes funcionaban bien.

Los datos ya los he colocado como me sugieres, sólo coloco campos de una misma tabla (si uso campos de varias tablas en algunas consultas, pero aún no llego a esa parte con los DBExpress), con las propiedades que me indicas y nada (Gracias Toni).

Seguiré buscando la forma ya que estoy migrando todos mis proyectos y deseo que trabajen adecuadamente.


La franja horaria es GMT +2. Ahora son las 21:32:14.

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