Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-07-2008
identsoft identsoft is offline
Miembro
 
Registrado: abr 2006
Posts: 282
Poder: 19
identsoft Va por buen camino
Error en DBGrid?

Un saludo foreros.
Tengo un form con un Button, un DBGrid y un Data Source.
Tengo además un DataModule con SQLConnection, Dataset (de tipo ctQuery), un DataSetProvider y un ClientDataSet (enlazados adecuadamente).
Naturalmente el DataModule está en el uses del form.
La conexion la abrimos (sin problemas) desde el principio.
Inicialmente, DataSet.Active = false y ClientDataset.Active = false
Cuando pinchamos sobre el button, simplemente hacemos:
1.-montamos el CommandText del Query (correctamente)
2.-DataSet.Open
3.-ClientDataSet.Open
Pero no aparecen los datos del Query
Sin embargo, si activamos (desde el IDE, con el commandText preparado) el DataSet y el ClientDataSet si que aparecen todos los datos.
¿Es un error o me dejo algo?
Utilizo Delphi 2006 y Firebird 1.5
Gracias y un saludo para todos

Post: en Delphi 7 sí funciona correctamente (comprobado)
Responder Con Cita
  #2  
Antiguo 21-07-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Hola : los enlaces son asi

DBGrid.DataSource -> source a conjunto de datos
DataSource.DataSet -> enlace al conjunto de datos asociado -> TQuery, TTable, TDataSet,...
TQuery, TTable, TDataSet . Connection -> conexion a la base de datos (en ADO).

Si, por ejemplo, tienes una configuracion asi :

Código Delphi [-]

DataSource1.DataSet := DataSet1;
DBGrid1.DataSource := DataSource1;

y cambias el query, no se te reflejaran los cambios en el dbgrid.
Responder Con Cita
  #3  
Antiguo 21-07-2008
identsoft identsoft is offline
Miembro
 
Registrado: abr 2006
Posts: 282
Poder: 19
identsoft Va por buen camino
Y entonces, si quieres modificar el query como hay que hacerlo para que se reflejen los cambios?
Responder Con Cita
  #4  
Antiguo 21-07-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
un dataset es un conjunto de datos. Si el dbgrid o cualquier control apunta a un datasource, debes cambiar la propiedad .dataset de este para apuntar a los datos que tu quieres. En tu caso, segun lo que entiendo, yo haria

1.- montar el query y activarlo
2.- datasource del dbgrid.dataset = query
Responder Con Cita
  #5  
Antiguo 21-07-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Coso, identsoft esta manejando DBExpress, por lo que necesita un DataSet que puede ser (SQLQuery, SQLTable o SQLDataSet en este ultimo el commandType puede ser ctQuery, ctTable, ctStoredProc, ademas que es el que esta utilizando Identsoft) cualquiera de esos DataSet debe ir enlazado a un DataSetProvider y el Provider enlazado a un ClientDataSet y el ClientDataSet enlazado recien al DataSource.

De la forma que lo estas haciendo esta bien ademas como dices te funciona en Delphi 7, no manejo delphi 2006, pero por lo que he leído aqui en el foro es que el Driver de Interbase ya no es del todo compatible con firebird. Revisa este hilo http://www.clubdelphi.com/foros/show...ght=ADO%2A ahi mismo te indica de donde bajarte otro driver para Firebird que es gratuito.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.

Última edición por Caro fecha: 21-07-2008 a las 13:56:53.
Responder Con Cita
  #6  
Antiguo 21-07-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Vaya mea culpa por meter confusion. Gracias caro.
Responder Con Cita
  #7  
Antiguo 22-07-2008
identsoft identsoft is offline
Miembro
 
Registrado: abr 2006
Posts: 282
Poder: 19
identsoft Va por buen camino
Gracias coso y Caro por vuestro interes.
Ya lo he solucionado. Lo pongo aquí por si interesa a alguien.
El problema está en volver a reasignar el Dataset al DataSource.
No se porqué razón, pero se pierde esa conexion.
Si antes de hacer el Open, reasignas DataSource.DataSet := DataSet
problema solucionado.

Ahora la cuestión es : ¿porqué unas veces hay que volver a reasignar el DataSet al DataSource y otras veces no hace falta?

Gracias a ambos.
Responder Con Cita
  #8  
Antiguo 23-07-2008
identsoft identsoft is offline
Miembro
 
Registrado: abr 2006
Posts: 282
Poder: 19
identsoft Va por buen camino
Perdon, se me ha hido la mano:
DataSource.DataSet := ClientDataSet
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Error en dbgrid alopete Varios 2 23-05-2008 07:18:57
Error recorriendo dbgrid Petolansa Varios 3 31-10-2007 10:12:44
raro error en dbgrid nikotina Varios 2 02-08-2007 09:15:59
Error al insertar en DBGrid Acker Conexión con bases de datos 1 24-05-2006 21:46:23
Error en Dbgrid Nbull Conexión con bases de datos 6 10-04-2006 13:49:13


La franja horaria es GMT +2. Ahora son las 12:02:36.


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
Copyright 1996-2007 Club Delphi