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)
-   -   Conectar el Datasource (https://www.clubdelphi.com/foros/showthread.php?t=79683)

maycampana 30-07-2012 17:02:23

Conectar el Datasource
 
Tengo un RxDBGrid que no me muestra los datos. Cuando pongo "true" en la propiedad Active de una TTable me los muestra pero al compilar mi aplicación me da error en otra tabla que aparentemente está bien conectada, Error"tabactivedat: Cannot perform this operation on a closed dataset". La verdad no se más donde revisar, todo parece estar en orden. Si a alguien le ha pasado y me pueda contar, muchas gracias.

Casimiro Notevi 30-07-2012 17:17:39

Creo que estás algo confundido en el funcionamiento de todo esto, a ver si echando un vistazo a estos enlaces: 1, 2 y 3

maycampana 30-07-2012 20:34:49

Conexión con una tabla
 
Gracias Casimiro, heché un vistazo a los hilos que me indicaste, pero ya tengo todo armado y andando, mi BD es Paradox y tiene varios ttables, varios tquerys con sus respectivos datasources, 2 componentes session, todo andaba bien hasta que me di cuenta que el RxDBGrid no mostraba los datos que se van ingresando en la tabla "Servicios". En esa ventana sólo agregué un botón con un No necesito una consulta, tengo que mostrar todo lo que se va ingresando en esa tabla. Perdón si no se entiende mi problema, estoy tratando de arreglar un programa que no hice yo. Pude ver que ninguna de las tablas tienen la propiedad Active en true, eso quiere decir que están activadas por código? De todas maneras si pongo en true la prop. Active de cualquiera de las otras tablas no hay inconveniente, sólo me pasa con la tabla "Servicios", ya revisé todas las conexiones y estoy trabada porque no encuentro que se me desconfiguró. Bueno, igualmente muchas gracias y sigo viendo. Saludos

ecfisa 30-07-2012 21:03:40

Hola maycampana.
Cita:

Pude ver que ninguna de las tablas tienen la propiedad Active en true, eso quiere decir que están activadas por código?
Si, de otro modo no podrías ver ningún dato. No sé en que momento se produce el error; pero por el que mencionas en tu primer mensaje, lo que es seguro que el DataSet no está abierto en ese momento.

¿ Has probado de poner un break en el código donde se produce el error ? ¿ El error se sigue produciendo si pones la propiedad Active de la tabla Servicios igual a True ?

Saludos.

maycampana 31-07-2012 16:24:59

Conexión con una tabla
 
Hola ecfisa, el error del Dataset cerrado aparece cuando pongo en true la prop. "Active" de la ttable. Bueno luego la dejo en False como todas las otras, el error ya no aparece pero no hay forma de que muestre un dato en la grilla. La verdad no se donde mirar, no toqué nada en esa ventana más que agregar un botón que nada que ver con la grilla. Muchas gracias por ayudarme. La verdad que estoy aprendiendo a usar Delphi y no tengo idea de como hacer el break.

ecfisa 31-07-2012 17:35:48

Cita:

Empezado por maycampana (Mensaje 438508)
Hola ecfisa, el error del Dataset cerrado aparece cuando pongo en true la prop. "Active" de la ttable. Bueno luego la dejo en False como todas las otras, el error ya no aparece pero no hay forma de que muestre un dato en la grilla. La verdad no se donde mirar, no toqué nada en esa ventana más que agregar un botón que nada que ver con la grilla. Muchas gracias por ayudarme. La verdad que estoy aprendiendo a usar Delphi y no tengo idea de como hacer el break.

Hola maycampana.

Por lo que infiero de tu mensaje el error te lo está dando en tiempo de diseño por lo que podemos descartar el uso de breaks.

Lo que se me ocurre es que revises si la tabla Servicios tiene campos calculados o lookup que referencien otra tabla y si es así, que la/las tablas relacionadas tengan un órden de creación previo a la tabla Servicios (es decir que no esté referenciando a una tabla aún no creada). Para cambiar el orden de creacion: Boton derecho del mouse -> Creation Order.

Tratándose de Paradox tampoco se puede descartar una posible corrupción de la tabla, por lo que también mira estos enlaces:
. Reparar Tablas Paradox
. Corrupt File - Other than Header
. Actualizar esta página Indice de tabla paradox dañado

Saludos.

maycampana 01-08-2012 21:39:11

Conectar RxDBGrid con base de datos
 
Gracias Ecfisa por ayudarme, la tabla tiene campos calculados y otras tablas que se relacionan. La opción "Create Order" en el módulo de Datos aparecen todas, o lo debo ver sobre la grilla, o el form?. Te comento que encontré otra tabla "ListaServicios" que apunta al mismo Datasource de la tabla Servicios, si le agrego un Datasouce a ListaServicios y lo conecto con el RxDBGrid funciona, muestra los datos pero luego no funciona el evento MouseDown que tiene diseñado. De todas maneras todo funcionaba sin hacer ninguna conexión extra. Estuve trabajando en el módulo de datos, he agregado algunas tablas pero a Servicios nunca la toqué, es muy raro.

ecfisa 01-08-2012 22:35:25

Hola maycampana.

Tendrías que probar de ir cambiando el órden de creación ( haciendo subir a Servicios ) ya que podría ser que esta tabla esté referenciando una tabla aún no creada.
Por lo que comentas en tu mensaje sería buena idea que Servicios al menos, estuviera creada antes que ListaServicios; pero como te comento es cosa de ir probando...

Saludos. :)

maycampana 06-08-2012 14:51:23

Conectar RxDBGrid con base de datos
 
Hola ecfisa, gracias por guiarme. La tabla "Servicios" está antes que "listaservicios" en el Create Order. Estuve buscando o investigando que puede ser que permita o no que los datos de la tabla aparezcan en la grilla. No se como funciona la propiedad "tag", pero podría ser algún puntero o algo así que dejó de apuntar? Tiene que ser alguna pequeñes que se modificó y no me doy cuenta porque todo andaba perfectamente. Yo abrí esa ventana para agregar un botón en otra pestaña, nada que ver con la grilla de servicios. Se te ocurre algo? Muchas gracias.

ecfisa 06-08-2012 19:50:09

Hola maycampana.

Yo te diría que vayas descartando la propiedad Tag, no tiene una función predefinida y el valor que tenga asingnado no afecta el comportamiento del componente. Excepto claro, que del valor que le hayas dado dependa que se muestren o no los datos, como por ejemplo en:
Código Delphi [-]
  if Table.Tag = 5 then  // si Tag <> 5 no se mostrará
    // mostrar los datos

Saludos.

maycampana 13-08-2012 16:46:08

Conectar RxDBGrid con base de datos
 
Hola ecfisa, gracias por tu ayuda pero no pude solucionar el inconveniente, soy principiante pero le pongo ganas al Delphi. Decidì empezar de nuevo con las modificaciones que le fui haciendo a la aplicación porque he notado que otras funciones también se desconectaron. Antes me gustaría asesorarme más acerca de que puntos hay que saber para modificar un ttable por ej., tengo que agregar dos campos y me da error. No se si tengo que cambiar alguna propiedad antes de editar o en el datasource. Si encuentro algunas recomendaciones o pasos a seguir se los agradezco.

ecfisa 13-08-2012 18:37:18

Hola maycampana.

Para agregar datos a un TTable podes usar el Database Desktop. Desde Delphi: Tools -> Database Desktop. Ya en la aplicación: File -> Open -> Table, elegir la tabla a modificar y F9 para comenzar la edición.

Saludos.

maycampana 13-08-2012 19:51:21

Editar un componente ttable
 
Cita:

Empezado por ecfisa (Mensaje 439475)
Hola maycampana.

Para agregar datos a un TTable podes usar el Database Desktop. Desde Delphi: Tools -> Database Desktop. Ya en la aplicación: File -> Open -> Table, elegir la tabla a modificar y F9 para comenzar la edición.

Saludos.

Perdón si no me expresé correctamente, con Database Desktop no tengo mayor inconveniente, de hecho ya tengo los 2 campos agregados. El problema se me presenta cuando los agrego en el componente ttable, el error es invalid compiler directive:'public' en uno de los form del programa. No se que me estoy olvidando, bueno gracias de nuevo.

Casimiro Notevi 13-08-2012 20:01:45

¿Y por qué no explicas cómo lo haces?, pones el código, etc. etc. etc. ;)

maycampana 14-08-2012 21:46:21

Conexión con base de datos
 
Hola Casimiro, no puse código por que tengo inconvenientes en las modificaciones que quiero hacer dentro de los módulos de datos y no creo que sea el código
- para agregar 2 campos a un componente table que ya estaba creado, cree los campos en la tabla real "Datos.db" y cuando los agrego en el ttable da error (invalid compiler directive: 'public' y se ubica en uno de los form en la línea public y no se que pasa, vos crees que es problema de código?
- para agregar un componente query, conecté con la base de datos y con su correspondiente datasource pero al abrir el editor de campos me da error de que la tabla no existe, archivo o directorio no existe y me da la ruta C:\desarrollo\sg2009\datos\pdoxusrs.lck , me fije en esa ubicación pero no veo ningún archivo .lck Qué crees que pueda pasar?

Casimiro Notevi 15-08-2012 09:46:21

Sinceramente, con esa información no puedo llegar a ninguna conclusión :o
¿La base de datos está bien?, vaya a tener algún problemilla y sea eso.

maycampana 23-08-2012 15:22:33

Cita:

Empezado por Casimiro Notevi (Mensaje 439631)
Sinceramente, con esa información no puedo llegar a ninguna conclusión :o
¿La base de datos está bien?, vaya a tener algún problemilla y sea eso.

Gracias igual Casimiro, la base de datos está bien, no creo que sea ese el problema, debe ser que le erré en algo y me falta capacidad para encontrar el error. Decidí no perder más tiempo y comenzar de nuevo a agregarle las modificaciones que le fui haciendo al programa y ya no tuve ningún problema por suerte, todo salió bien. Gracias


La franja horaria es GMT +2. Ahora son las 20:37:54.

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