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)
-   -   Consulta sobre tablas cerradas (https://www.clubdelphi.com/foros/showthread.php?t=90838)

Cesar Oviedo 14-09-2016 16:17:19

Consulta sobre tablas cerradas
 
Buen dia gente!!!
Soy muy novato en esto.
Queria saber porque se me cierran las tablas al darle click en el boton "Guardar".
Mi sistema es para doctores con especialidad en "Pediatria".
El sistema hace lo siguiente:
1-Entro al sistema con Usuario y Contraseña.
2-Se abre una ventana con 5 botones: Pacientes, Doctores, Obras Sociales, Localidades y Agenda de citas.
Y de alli voy a cualquiera.
Tengo ademas una tabla llamada "AUXILIAR", y su uso es para que los "Pacientes" tengan un numero y no se repitan.
Por favor alguien me puede ayudar.
Mil gracias...

roman 14-09-2016 16:31:57

¿Si te das cuenta de que es imposible ayudarte?

Simplemente estás describiendo tu interfaz, y eso es como si nos hicieras un dibujito. Tienes que aclarar qué base de datos usas, qué cimponentes, én qué momento se cierran, en qué momento las abres, qué código usas para ello y un largo etcétera.

LineComment Saludos

Cesar Oviedo 14-09-2016 16:44:38

La BD que utilizo es SQL Manager en Delphi 7.
Al darle click al boton "Guardar" de la tabla "Paciente" se cierra la tabla y tira error.
Antes de pasar por la tabla "Pacientes" paso si o si por la tabla "Obra Social" y "Localidades", donde alli hago registros y no tengo inconvenientes.
Cuando estoy en un formulario Principal donde alli tengo botones como: "Pacientes", "Doctores", "Obras Sociales", "Localidades" y "Agenda de citas", dentro del boton "Paciente" tengo los siguientes codigos:
form_pacientes.Show;
DataM.IBDatasetConsulta_pacientes.Open;

Es asi mi caso....

Caminante 14-09-2016 18:29:19

Hola

Cita:

Empezado por roman (Mensaje 508774)
¿Si te das cuenta de que es imposible ayudarte?

Opino igual que el buen Roman, no das suficiente informacion.

Pero viendo tu codigo deduzco que usas firebird con componentes ibx. Los datasets se cierran cuando haces commit. Lo mas sencillo es usar commitretaining (Creo que asi se escribia) que confirma la transaccion pero sin cerrar el dataset.

Espero sea de utilidad


Saludos

Casimiro Notevi 14-09-2016 19:59:19

Cita:

Empezado por Cesar Oviedo (Mensaje 508776)
La BD que utilizo es SQL Manager en Delphi 7.

Eso no es una base de datos, es un gestor para manejar bases de datos.

Cita:

Empezado por Cesar Oviedo (Mensaje 508776)
Al darle click al boton "Guardar" de la tabla "Paciente" se cierra la tabla y tira error.

Si no dices el error que sale, poco podemos hacer, desde aquí no vemos tu pantalla ;)

Cita:

Empezado por Cesar Oviedo (Mensaje 508776)
Antes de pasar por la tabla "Pacientes" paso si o si por la tabla "Obra Social" y "Localidades", donde alli hago registros y no tengo inconvenientes.
Cuando estoy en un formulario Principal donde alli tengo botones como: "Pacientes", "Doctores", "Obras Sociales", "Localidades" y "Agenda de citas", dentro del boton "Paciente" tengo los siguientes codigos:

Todo eso es como si le digo al mecánico que el coche verde que compré de segunda mano a un panadero ya jubilado y que lo he usado para llevar a los niños a la escuela, cuando llueve y cuando hace sol, tiene un problema. ¿Alguien puede ayudarme?
O sea, que no sirve para nada con tu problema.

Por cierto, recuerda poner los tags al código fuente, ejemplo:



Gracias :)

Como comprenderás, todo lo que he comentado es por tu bien, para que la próxima vez lo tengas en cuenta y se te pueda ayudar mejor. Puedes ver que los compañeros te han dicho que es imposible ayudarte, salvo dando palos de ciego, a ver si acertamos por casualidad :)

Cesar Oviedo 14-09-2016 21:50:14

1 Archivos Adjunto(s)
Este es el error que tira el sistema,le tome un captura pantalla...

mamcx 14-09-2016 22:50:23

PRO-TIP: En las ventanas de mensajes de error puedes darle CTRL+C y se copia el texto.

Pues el mensaje dice que el dataset esta cerrado. Debes averiguar donde se cierra. Para ello, puedes inspeccionar el codigo (mejor) y/o usar el depurador. Cuando Delphi se detenga por el error le agregas un watch con el nombre del dataset y le configuras que se detenga cuando cambien la propiedad "Active". Asi sabras en que momento es.

Si te enrueda hacer eso, otra forma es poner un log (print o un messageDlg) en los eventos de abrir/cerrar el objeto, que lograria un efecto parecido a lo anterior.

P.D: Debes aprender tecnicas de depuracion. Investiga sobre el tema.

Cesar Oviedo 14-09-2016 23:02:25

Me complica mucho,pense que era mas simple.
Gracias de todos modos.

AgustinOrtu 14-09-2016 23:17:12

Para aprender a programar, esencial:

#1. Aprende a depurar tus programas
#2. Aprende a realizar buenas preguntas
#3. Aprende a escribir el codigo

Lee el libro la cara oculta de Delphi que esta en el FTP, en este enlace. Esta escrito especialmente para novatos y ademas es muy entretenido


La franja horaria es GMT +2. Ahora son las 13:24:33.

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