FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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. |
#2
|
|||
|
|||
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. |
#3
|
|||
|
|||
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. |
#4
|
|||
|
|||
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 |
#5
|
|||
|
|||
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. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
refrescar dbgrid que usa dbexpress | chux | Conexión con bases de datos | 2 | 22-05-2006 17:31:06 |
problema en un query utilizando dbexpress | clanmilano | SQL | 0 | 14-06-2005 22:45:16 |
Problema con componente dbexpress | VolaRe | Conexión con bases de datos | 0 | 27-07-2004 12:20:40 |
Problema DBExpress muy lento | argami | Conexión con bases de datos | 4 | 22-06-2004 19:34:18 |
Problema con ClientDataSet y DBexpress | JOMABRI | Conexión con bases de datos | 6 | 26-05-2004 18:32:53 |
|