Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Temas relacionados > Redes
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-06-2021
GINMARMENOR GINMARMENOR is offline
Miembro
 
Registrado: feb 2016
Posts: 58
Poder: 9
GINMARMENOR Va por buen camino
Casimiro, la Transacción está con las propiedades por defecto, no se ha cambiado ninguna propiedad.

la Base de Datos compartida, es simplemente que está en el PC1, y accedo a ella desde el PC2, mediante la red
Código Delphi [-]
                [BD]
                PATH:"192.xxx.x.xxx:C:\Aplicacion1\BaseDatos01\"

Con esto accedo a la base datos, inserto y modifico, desde el PC2, pero cuando abro la aplicación en el PC1 también y están los dos PC con la misma aplicación , ya el PC2 se queda eternamente pensando sin dar ningún error, se queda bloqueado cuando intento modificar o insertar un registro, pero no cuando quiero leer, hacer un listado en ese caso funciona bien aun estando los dos PC con la misma aplicación abierta, la lectura se hace bien pero no el insertar o modificar.
Responder Con Cita
  #2  
Antiguo 03-06-2021
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pon estos parámetros al componente Transaction que uses:
Código:
write
nowait
rec_version
read_commited
Responder Con Cita
  #3  
Antiguo 17-07-2021
GINMARMENOR GINMARMENOR is offline
Miembro
 
Registrado: feb 2016
Posts: 58
Poder: 9
GINMARMENOR Va por buen camino
Código Delphi [-]
write
nowait
rec_version
read_commited

Hola de nuevo, he puesto en la propiedd Params del IbTranssation estas líneas. pero me el siguiente error:

Código Delphi [-]
         TPB constant 0 is unknowm

Por otro lado veo que otra solucion es usar un Try ... Except, Try ... Finally, pero no tengo idea de como usarlo y donde ponerlo si en un evento de IbTranssation, u otro lugar, si pudierais decirmo donde encontrar un ejemplo o poner un ejemplo ya que esto debe ser algo genérico valido para todos.

Yo para recordarlo uso Delphi 2.010 y Firebird 2,5, creo la IbDatabase y IbTransattion de las cuales todos los parámetros configurados son los que vienen por defecto, hasta base de datos las asocio a 15 o 20 tablas, las cuales no las uso ni las abro a la vez lógicamente si no según necesite, y en las cuales inserto, modifico y borro registros sin problemas todo perfecto, el problema viene en dos casos:

uno: cuando por error abro la misma aplicación dos veces en el mismo pc, entonces se bloquea quedándose pensando hasta que lo cierro mediante boton de derecho del ratón en la parte de abajo de la pantalla, le pincho en cerrar aplicación esto lo hace windows, ya que yo en la "X" del formulario no me deja.

Dos: cuando yo estoy trabajando en el Pc1 en la Base de Datos 1, y se conecta desde Pc2 en la misma Base de Datos 1, ocurre lo mismo, puedo consultar listados en el Rave Reports que uso bien, pero en el momento que uno de los dos Pc's intenta grabar algo se bloquea y ocurre lo mismo que en el paso uno.


Sólo es ese problema, el que se bloquee cuando dos ordenadores acceden a la mismo base de datos, por lo que debe ser ser algo genérico, común a todos, no de que haya programado algo mal, pero no consigo dar con la tecla, si me podéis ayudar, gracias.
Responder Con Cita
  #4  
Antiguo 17-07-2021
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
La verdad es que no se entiende nada de lo que comentas
No está claro lo que estás haciendo, ni cómo lo estás haciendo, ni qué código estás usado, ni cómo lo estás usando... es casi imposible poder ayudarte así.
Trata de crear un proyecto de ejemplo, lo más simple que puedas, y a partir de ahí ir avanzando a cada paso.
O si el proyecto que tienes no es muy grande, trata de subirlo para que le podamos echar un vistazo.
Responder Con Cita
  #5  
Antiguo 17-07-2021
GINMARMENOR GINMARMENOR is offline
Miembro
 
Registrado: feb 2016
Posts: 58
Poder: 9
GINMARMENOR Va por buen camino
Casimiro, si es que no hay ningún código, tengo Delphi 2.010 y Firebird 2.5

tengo en un Formulario la base de Datos IBDatabase1 y un IBTransaction1:

IbDatabase1: propiedad DefaultTransaction: IBTransaction1

IbTransaction1: Propiedad DefaultDababase: IBDatabase1

Pongo las propiedades de ambos en Connected en True y todo perfecto.

luego asocio las distintas IbTablas a la IbDatabase1 y todos los DataSources a su IbTable correspondiente, pongo los Actives en True y todo se conecta bien.

Copio el programa en PC1 y trabajo con el programa perfectamente, cuando grabo los distintos registros mediante:

Código Delphi [-]

            IbTabla1.post

Todo funciona perfectamente

Copio el programa en el PC2 y asocio la base de datos del servidor que está en el PC1 de la siguiente manera, mediante un archivo .INI.

Código Delphi [-]

                [BD]
                PATH:"192.xxx.x.xxx:C:\Aplicacion1\BaseDatos01\"

Ahora bien a partir de ahora se dan dos supuestos.

1) El Programa NO lo tengo abierto en el PC1 y trabajo en el PC2 en red, entonces trabajo perfectamente en red, grabo los registros mediante IbTabla1.post, y todo bien.

2) El Programa lo tengo abierto en el PC1 en ese momento e intento desde el PC2 grabar algún registro en red mediante IbTabla1.post, se me queda bloqueado indefinidamente, tengo que cerrar el programa en el PC2 como pueda o bien apagar el ordenador, esto ocurre igual si trabajo en el PC1 y tengo abierta la base de datos en el PC2.

Ésto es el problema que tengo al trabajar en red, que cuando la base de datos está abierta en los DOS PC a la vez, no puedo grabar nada por que se bloquea básicamente, aunque no esté en el mismo registro de la misma Tabla.

No sé si necesitas algún dato más Casimiro, y gracias por el tiempo
Responder Con Cita
  #6  
Antiguo 17-07-2021
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Bien, empecemos por el principio
Lo primero de todo, desconecta la BD en modo diseño cuando vas a compilar. No debes dejar conectada/activa la BD cuando compilas para crear el ejecutable.

Debes conectar a la BD en tiempo de ejecución, por ejemplo como has indicado, al abrir el programa éste lee la ruta a la BD en un .ini y entonces es cuando debes conectarla.
Eso es lo primero.

Cámbialo y ya seguimos con el resto.
Responder Con Cita
  #7  
Antiguo 17-07-2021
GINMARMENOR GINMARMENOR is offline
Miembro
 
Registrado: feb 2016
Posts: 58
Poder: 9
GINMARMENOR Va por buen camino
Pues cambiado está tengo las dos bases de datos IbDatabase1 y IbDatabase2 (que es la que aglutina a todas las tablas Maestros) desconectadas y las abro cuando ejecuto la aplicación.

Con IbDatabase1 tengo unas 20 tablas conectadas que voy usando según necesidades y con IbDatabase2 tengo unas 20 conectadas a su vez.

He intentado hacer hacer unas pruebas, pero no quiero adelantarme.

Seguimos hablando.
Responder Con Cita
Respuesta



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
Firebird remoto - Modificar registros Gregorio Cíber Conexión con bases de datos 8 23-03-2021 22:32:04
modificar variios registros con dataset pmtzg Conexión con bases de datos 7 11-02-2012 12:05:02
Modificar registros desde DBgrid quakerman Conexión con bases de datos 7 09-11-2011 03:40:03
modificar registros yossi SQL 6 11-06-2010 03:43:58
modificar registros query Buelos Firebird e Interbase 8 02-03-2008 00:52:00


La franja horaria es GMT +2. Ahora son las 05:30:36.


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
Copyright 1996-2007 Club Delphi