FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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) |
#2
|
|||
|
|||
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 :
y cambias el query, no se te reflejaran los cambios en el dbgrid. |
#3
|
|||
|
|||
Y entonces, si quieres modificar el query como hay que hacerlo para que se reflejen los cambios?
|
#4
|
|||
|
|||
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 |
#5
|
||||
|
||||
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. |
#6
|
|||
|
|||
Vaya mea culpa por meter confusion. Gracias caro.
|
#7
|
|||
|
|||
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. |
#8
|
|||
|
|||
Perdon, se me ha hido la mano:
DataSource.DataSet := ClientDataSet |
|
|
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 |
|