![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
mensaje error db is currently open
Hola a ver si me podeis ayudar:
Tengo creado una base de datos en interbase, y funciona bien a modo monopuesto, intento hacerlo en red, y que ambos compartan la misma base de datos, cree el siguiente código:
en el archivo BDatos.ini el siguiente: [DELPHI[BD] path="192.168.1.34:C:\Maestros1\MAESTRO.IB"][/delphi] Pero me da el error del encabezado Cannot perform operation -- db is currently open. Gracias. |
#2
|
||||
|
||||
En teoría es que estás intentando abrir una base de datos abierta, ciérrala antes.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
|||
|
|||
NO creo que sea eso, ya que sí me funciona con un sólo Pc bien, pero al ponerlo en red da el error, como prueba he puesto en el databasename directamente la dirección 192.168.1.34:C:Maestros1\Maestro.Db, pero se automaticamente todas las tablas se me ponen en active=false, y me da el siguiente error:
Unabled to complete network request to host "192.168.1.34:3050" Falled to establish a conection. unknowm Win32 error 10060 |
#4
|
||||
|
||||
Cita:
¿ Ya le habilitaste a Firebird el puerto 3050 en el firewall del servidor ? Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#5
|
|||
|
|||
Sí le abrí en el Firewall de windows del servidor el puerto 3050 tanto en TCP como en UDP, pero sigue dando el mismo error, estoy usando el interbase 2009 server, en el momento que cambio en el databasename a 192.168.1.31:c:\Maestros1\Maestro.ib, la verdad que no sé qué hacer.
|
#6
|
||||
|
||||
¿Has hecho la prueba de lo que te contesté?
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#7
|
|||
|
|||
Sí probé, pero sale un mensaje diciendo:
ibTablaClientes:Cannot perform this operation on a closed dataset y sino: Unabled to complete netword request to host "192.168.1.34:3050" |
#8
|
||||
|
||||
¿Puedes poner la cadena de conexión que usas?
Y de paso todas los datos que usas para conectar.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#9
|
|||
|
|||
En Bdatos.ini
Cita:
En Delphi:
En propiedades del Database1 en Dabatabasename=C:\Maestros1\Maestro.ib |
#10
|
||||
|
||||
¿Qué componentes estás usando?
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#11
|
|||
|
|||
Uso un IbDatabase donde:
Databasename= C:Maestros1\Maestro.ib por que 192.168.1.34:C:\Maestros1\Maestro.ib pone las 14 Tablas en Active=false DefaultTransaction= IBTransaction1 Uso un IBTransaction1 donde: DefaultDatabase= IbDatabase1 Uso 14 TIbTables conectados cada uno a su tabla mediante TableName y donde: Database = IBDatabase1 Transaction = IBTransaction 1 Uso 14 TDatasources conectados cada uno a su tabla mediante su dataset correspondiente. |
#12
|
||||
|
||||
¿Trabajas con tablas?, no es lo más adecuado, aunque ese no sea el tema aquí.
Cita:
Cita:
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#13
|
|||
|
|||
Bien, vamos a ver, en Ibconsole creo la base de datos, en la cual creo varias tablas, por ejemplo clientes y proveedores, por simplificar, una vez hecho esto, me voy a Delphi y creo un Tdatamodule, al cual inserto:
Cita:
Esto lo llevo haciendo siempre y programas de miles de líneas y me ha funcionado muy bien, pero siempre en monopuesto, ahora quería dar el salto a utilizarlos en red, y había visto que no había que hacer muchas modificaciones sólo añadirle al directorio donde está la base de datos la dirección IP del servidor, así si en monopuesto estaba en C:\Maestro1\Maestro.Ib, pues añadirle (192.168.1.34) que es la IP del servidor y quedar de esta manera el DatabaseName 192.168.1.34:C:\Maestro1|Maestro.ib) como demuestra el BDdatos.ini, que ya hemos visto anteriormente, y hacerlo mismo en todos los ordenadores clientes. Éste es mi problema configurarlo y trabjar en red, ya está, la única forma de trabajar que conozco es esta, si hay otra forma de trabajar sin tablas te agradecería me la dijeras. Gracias por vuestro interés. Cita:
|
#14
|
||||
|
||||
Pues siento no poder ayudarte más, sería necesario más información. Realmente lo que hace falta es poder manejar tu ordenador, porque seguro que es alguna tontería el problema.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#15
|
|||
|
|||
Creo que lo que está ocurriendo es lo siguiente: La aplicación originalmente está funcionando para un solo PC y la base de datos está sobre ese PC. En el modulo de datos el componente de conexión está "alambrado" a esa base de datos y además la conexion ibdatabase1 está abierta en tiempo de diseño. Cada una de las tablas que están asociadas a está conexión también está abierta. La aplicación se compila, se ejecuta y todo funciona a la perfección.
Cuando se modifica la aplicación para funcionar en red se le adiciona el código para que en tiempo de ejecución establezca la conexión a la base de datos:
pero la base de datos sigue abierta en tiempo de diseño, por tanto, cuando se intenta ejecutar la instrucción anterior obtenemos el mensaje: Cannot perform operation -- db is currently open. Debes cerciorarte que la base de datos esté cerrada en tiempo de diseño, o sino va a intentar conectarse a una base de datos en el PC local tan pronto inicie la aplicación y antes de que se ejecute el código que configura la conexión. Por otro lado cuando aplicas la sugerencia de casimiro
El mensaje de error lo obtiene sobre la tabla ibtablaclientes y no sobre la base de datos ibdatabase1. Sugiero que pruebes lo siguiente (verificando previamente que la base de datos no está abierta en tiempo de diseño):
Quizás esto no solucione definitivamente el problema pero nos puede proporcionar un mensaje de error que nos acerque más a la solución. |
#16
|
|||
|
|||
Efectivamente orodriguezca, la Base de datos estaba abierta, al ejecutar:
Por lo que tengo que cerrarla y volverla abrir, tal y como dices, aunque tengo luego que abrir todas las tablas de las que depende la Base de Datos, ya funciona a la perfección, Muchísimas gracias a tí y a Casimiro, da gusto dar con un foro como éste. PD. Casimiro dijo que lo siguiente: Cita:
Gracias. |
#17
|
||||
|
||||
Con querys
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#18
|
|||
|
|||
Me pondré manos a la obra, empezaré a buscar tutoriales y ejemplos, para empezar.
|
#19
|
||||
|
||||
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#20
|
|||
|
|||
Muchas Gracias,
|
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Duda con mensaje Can no open Resultset | rcantu | MySQL | 2 | 03-04-2008 07:39:06 |
Urge: Error TOO MANY OPEN FILES | mrmanuel | Conexión con bases de datos | 4 | 01-12-2005 11:05:31 |
Error creating form:Cannot open avi | Javier_A | OOP | 2 | 11-09-2005 21:11:01 |
Error al intentar guardar texto de Open Office en disquete | fidel | Linux | 0 | 28-05-2005 13:19:09 |
Error while trying to open file | nefy | Firebird e Interbase | 4 | 15-09-2004 20:02:42 |
![]() |
|