Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-04-2004
El_Raso El_Raso is offline
Miembro
 
Registrado: oct 2003
Posts: 135
Poder: 21
El_Raso Va por buen camino
Urgente Server IB no refresca...

Tengo IB 6.5 como server en una red de W98 y W2000, sucede que cuando en una PC entro records, estos no se me refrescan en ninguna otra hasta que la gente (la que esta metiendo datos) no sale del sistema.

Puse la B.D con enabled force write(modo asyncrono) y como quiera no se refresca la data en las otras pc..

Una mano por favor...
Responder Con Cita
  #2  
Antiguo 02-04-2004
Avatar de kinobi
kinobi kinobi is offline
Miembro
 
Registrado: may 2003
Posts: 2.621
Poder: 24
kinobi Va por buen camino
Cita:
Empezado por El_Raso
cuando en una PC entro records, estos no se me refrescan en ninguna otra hasta que la gente (la que esta metiendo datos) no sale del sistema.
¿y esas transacciones que insertan esos registros, se confirman con commit? Ninguna otra transacción puede ver los cambios que haga otra hasta que esta última no los confirme (commit). Además de tener, las primeras, un nivel de aislamiento lo suficientemente bajo (p. ej. read_commited) para poder ver los cambios.

Saludos.

P.D. Lo de "Urgente" del título sobra -> ver Guía de estilo (enlace en la firma).
Responder Con Cita
  #3  
Antiguo 02-04-2004
cval cval is offline
Miembro
 
Registrado: ene 2004
Posts: 20
Poder: 0
cval Va por buen camino
Question cambiar el nivel de aislamiento

Hola,
A mí me pasa lo mismo, estoy intentando cambiar el nivel de aislamiento de la transacción, me gustaría saber como se hace.

Gracias
Responder Con Cita
  #4  
Antiguo 02-04-2004
Avatar de kinobi
kinobi kinobi is offline
Miembro
 
Registrado: may 2003
Posts: 2.621
Poder: 24
kinobi Va por buen camino
El nivel de aislamiento de la transacción no lo puedes cambiar; cuando inicias una (aunque lo haga implícitamente el mecanismo de acceso que utilices) se arranca con un nivel de aislamiento que perdura hasta el final de la misma. Si lo que quieres saber es cómo especificar ese nivel en el arranque, tendrás que decirnos que mecanismo (qué componentes) de acceso estás utilizando.

Saludos.
Responder Con Cita
  #5  
Antiguo 02-04-2004
cval cval is offline
Miembro
 
Registrado: ene 2004
Posts: 20
Poder: 0
cval Va por buen camino
Uso de IBX y Delphi 7 con fb 1.5

Hola

Estoy utilizanto los IBX de delphi 7, sobre firebird 1.5

creo que ya he conseguido algo, poniendo en el
IBTransaction el parámetro:
isc_tpb_read_committed
que he encontrado en la documentacion de la API del interbase.

me falta conseguir tb como puedo tener un bloqueo optimista en interbase,

y he visto que con el refresh de un IBquery unido a un IBupdate consigo refrescar el registro sobre el que tengo el cursor solamente. y con resync no consigo que el cusor se quede en el sitio que estaba originalmente.
no sé si esto será posible.

Gracias de antemano
Responder Con Cita
  #6  
Antiguo 02-04-2004
Avatar de kinobi
kinobi kinobi is offline
Miembro
 
Registrado: may 2003
Posts: 2.621
Poder: 24
kinobi Va por buen camino
Hola,

Cita:
Empezado por cval
me falta conseguir tb como puedo tener un bloqueo optimista en interbase,
InterBase utiliza bloqueos optimistas, en el sentido de que un redactor no bloquea a otros lectores, pero sí, obviamente, a otros redactores.

Cita:
Empezado por cval
y he visto que con el refresh de un IBquery unido a un IBupdate consigo refrescar el registro sobre el que tengo el cursor solamente.
Sí, es el comportamiento normal del método Refresh en IBX. Si quieres un refresco de todo el Dataset, tendrás que forzarlo, por ejemplo con una reapertura del mismo.

Cita:
Empezado por cval
y con resync no consigo que el cusor se quede en el sitio que estaba originalmente.
no sé si esto será posible.
No sé qué decirte. Hace mucho que no uso Delphi ni IBX.

Saludos.
Responder Con Cita
  #7  
Antiguo 02-04-2004
cval cval is offline
Miembro
 
Registrado: ene 2004
Posts: 20
Poder: 0
cval Va por buen camino
gracias

Gracias,
Es que estoy apreendiendo interbase a marchas forzadas y esta tarde tocan las pruebas

Lo del bloqueo optimista lo decía porque modifico en una aplicación un registro, pero no hago el commit de la transaccion, en la otra aplicación le doy a refrescar el registro, y se queda bloqueado esperando a que la primera aplicación realice un commit o un rollback.
Me ha parecido extraño, pero como puedo evitar esto?
ye he visto que es cosa de la propiedad isc_tpb_read_committed
realmente tenía que poner:
read_committed
rec_version
nowait
tenía que hacer doble click sobre el IBtransaction para averiguarlo

gracias,
Responder Con Cita
  #8  
Antiguo 02-04-2004
Avatar de kinobi
kinobi kinobi is offline
Miembro
 
Registrado: may 2003
Posts: 2.621
Poder: 24
kinobi Va por buen camino
Hola,

claro, pero el optimismo del bloqueo se basa en que los redactores no bloquean a los lectores, no que no bloqueen a otros redactores.

Saludos.
Responder Con Cita
  #9  
Antiguo 02-04-2004
cahosoft cahosoft is offline
Miembro
 
Registrado: jul 2003
Posts: 102
Poder: 21
cahosoft Va por buen camino
nivel de aislamiento en interbase

bueno... yo lo hago de esta mane.....
1. me conecto al *.gdb por medio del componente IBDatabase y IBTransaction.. al principios los clientes no observaba las actualizaciones que hacian cada uno... hasta que se salian de la aplicación y volvian a entrar....
2. la solucion fue que el componente IBTransaction le doy doble click y se abre la ventana "Transaction Properties"
3. escoger la opción Read Commit

4. listo.....

claro eso si tulizas los componentes IBDatabase y IBTransaction para la conexion
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


La franja horaria es GMT +2. Ahora son las 13:20:22.


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