FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Tabla en tiempo de ejecución
De antemano gracias por al menos leer mi problema.
Uso Delphi 7, con Firebird (creo versión 1.5). En tiempo de ejecución creo una tabla llamada L20101228A, una vez creada no puedo acceder a ella. En el Datamodule tengo. 1- Tibdatabase 2- IbTransaction 3- TibTable 4- Tdatasource. Las únicas formas que he conseguido acceder a ella son: 1- Haciendo close del tibdatabase y volviendo abrir, con el problema que me vuelve a pedir el password y no es una opción lógica ni agil. 2- Saliendo del programa y volviendo a entrar (gran solución informática por excelencia. Agradecería algo de luz. He probado. IBTransaction2.Commit; IBTransaction2.StartTransaction; Pero da error de metada la table L20101228A no exist. Gracias por su ayuda. |
#2
|
||||
|
||||
Está claro que la lógica dice que no deberías tener que reabrir la conexión de la Base de Datos. Lo lógico sería:
BeginTransaction CrearTabla CommitTransaction Desde ese momento deberías verla. Si no es así o si al cerrar la conexión sí existe puede ser que no tengas bien configurada la transacción.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#3
|
|||
|
|||
Estos comandos u opciones no existen para Ibtransaction ni ibdatabase.
Ibtransaction lo tengo configurado de la siguiente manera. Active True AutostopAction saNone Default Action TaCommit Default database IBDatabase2 idletimer 0 Name IBTransaction2 Params (vacío) Tag 0 La base de datos está abierta pues en ella tengo otras tablas que necesito para trabajar. Si uso... IBTransaction2.StartTransaction; me dice que ya está abierta. También he probado hacer lo siguiente... if dm.IBTransaction2.InTransaction then begin dm.IBTransaction2.Commit; dm.IBTransaction2.StartTransaction; end; Pero no sé donde falla. Gracias de nuevo. |
#4
|
||||
|
||||
Lo se. Era una forma genérica de colocar las operaciones que debes hacer. Ese es el orden correcto. Debes asegurarte de que no se estén haciendo de forma implícita.
Si las haces manualmente debes hacerlas en ese orden. Debes (1) Iniciar la transacción, (2) Crear la tabla y (3) finalmente aceptar la transacción y acabarla con CommitTransaction (o la orden que sea). Pueden variar los nombres, pero el orden de las operaciones debe ser ese.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#5
|
|||
|
|||
Cita:
Gracias. |
#6
|
||||
|
||||
Cita:
(1) Iniciar_la_transacción (2) Crear_la_tabla (3) Realizar_Commit_de_la_transaccion Debe ser que hoy no e explico bien...
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#7
|
|||
|
|||
Cita:
Venga gracias. |
#8
|
|||
|
|||
Bueno... creo que lo solucioné... Antes de explicar cómo quiero agradecer la ayuda recibida.
La base de datos que uso tiene tablas fijas y otras que las tengo que crear en tiempo de ejecución. 1- En el datamodule, activo el database ibdatabase2.Params.Values['Password'] := '*****'; ibdatabase2.Connected := true; ibtransaction2.StartTransaction; 2- En el Form. Después de crear la tabla, ejecuto un.. dm.IBTransaction2.Commit; Esto hace que todas las tablas del Database queden sin acceso. 3- Restablezco el acceso en el momento necesario. if dm.IBTransaction2.InTransaction then begin dm.IBTransaction2.Commit; dm.IBTransaction2.StartTransaction; end; Si no lo condiciono al hacer el estart, me da error diciendo que la base de datos ya está activa. A partir de aquí ya todo funciona correctamente. Gracias por las ideas recibidas. Campiki |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Modificar tabla An tiempo de Ejecucion | noshy | SQL | 1 | 12-09-2006 23:53:26 |
Tabla en tiempo de ejecucion | noshy | SQL | 1 | 24-07-2006 00:39:31 |
crear una tabla en tiempo de ejecucion. | chileno | MySQL | 1 | 06-07-2005 03:13:55 |
Crear Tabla en Tiempo de ejecucion | alcides | Varios | 4 | 01-07-2005 20:23:52 |
Creación de tabla en tiempo de ejecución | sledgehammer | Conexión con bases de datos | 3 | 16-09-2003 15:08:01 |
|