Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-12-2012
ginesgomezlopez ginesgomezlopez is offline
No confirmado
NULL
 
Registrado: jun 2012
Posts: 45
Poder: 0
ginesgomezlopez Va por buen camino
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:
TBDatabase
IBTransaction
IBTable1 (clientes)
IBTable2 (Proveedores)
IBDatasources1 (Clientes)
IBDatasources2 (Proveedores)
Bien, en la propiedad dataset del IBDatasource1, pongo la tabla a la que quiero conectarla que es IbTable1 y así sucesivamente con el resto de tablas.

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:
al
Responder Con Cita
  #2  
Antiguo 22-12-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.669
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
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.
Responder Con Cita
  #3  
Antiguo 02-01-2013
orodriguezca orodriguezca is offline
Miembro
 
Registrado: ene 2009
Posts: 221
Poder: 18
orodriguezca Va por buen camino
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:

Código Delphi [-]
 BasedeDatos := ElIniFile.ReadString('BD','Path','');

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
Código Delphi [-]
ibdatabase1.Close;
ibdatabase1.DatabaseName:=BasedeDatos; 
ibtablaclientes.Active:=true;

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):
Código Delphi [-]
ibdatabase1.Close;
ibdatabase1.DatabaseName:=BasedeDatos; 
ibdatabase1.open;  //estoy añadiendo esta línea para abrir explicitamente la base de datos
ibtablaclientes.Active:=true;

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.
Responder Con Cita
  #4  
Antiguo 02-01-2013
ginesgomezlopez ginesgomezlopez is offline
No confirmado
NULL
 
Registrado: jun 2012
Posts: 45
Poder: 0
ginesgomezlopez Va por buen camino
Efectivamente orodriguezca, la Base de datos estaba abierta, al ejecutar:


Código Delphi [-]
BasedeDatos := ElIniFile.ReadString('BD','Path','');

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:
¿Trabajas con tablas?, no es lo más adecuado, aunque ese no sea el tema aquí.
¿hay otra forma de trabajar más adecuada?.

Gracias.
Responder Con Cita
  #5  
Antiguo 02-01-2013
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.669
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Con querys
Responder Con Cita
  #6  
Antiguo 02-01-2013
ginesgomezlopez ginesgomezlopez is offline
No confirmado
NULL
 
Registrado: jun 2012
Posts: 45
Poder: 0
ginesgomezlopez Va por buen camino
Me pondré manos a la obra, empezaré a buscar tutoriales y ejemplos, para empezar.
Responder Con Cita
  #7  
Antiguo 02-01-2013
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.669
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Ejemplo,
otro ejemplo
y el mejor libro.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
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


La franja horaria es GMT +2. Ahora son las 05:38:44.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi