Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-07-2005
[mateamargo] mateamargo is offline
Miembro Premium
 
Registrado: jul 2003
Posts: 82
Poder: 21
mateamargo Va por buen camino
Question Con urgencia necesito ver los mismos registros..

Hola,
Perdón por el título, pero es así el tema:
Tengo que instalar un sistema multiusuario el cual venía probando sin aparentemente ningún problema.
Les cuento tengo un alias definido en el BDE a una base de datos de FIREBIRD 1.5.
Luego tengo un Tdatabase , un TTable y un TDatasource.
El Tdatabase tiene como alias el alias definido en el BDE.
El Ttable tiene como database el Tdatabase y una tabla de dicha base.
El Tdatasource apunta hacia el Ttable donde tengo los datos a visualizar mediante DataControls.
Probando doy de alta, baja, modifico sin problemas el, tema surge cuando lo hago en más de una terminal, por ejemplo doy de alta un registro en una y la otra terminal que tambien tiene abierto el programa que ve la misma tabla no ve dicho registro, por lo tanto si lo quiere ingresar aparece el mensaje de clave duplicada, etc... lo mismo para modificar o en la eliminación de un registro. Como que los datos quedaran en un buffer de la terminal y no se refrescaran en el otro puesto de la red, (no utilizo cacheupdate).
Me podrían dar una mano ?
Realmente estoy perdido en el tema ...
Desde ya muchas gracias.
Saludos
Responder Con Cita
  #2  
Antiguo 05-07-2005
Patricio Patricio is offline
Miembro
 
Registrado: jul 2004
Posts: 433
Poder: 20
Patricio Va por buen camino
hola como andas

yo estoy haciendo un programa en delphi 5 y con interbase, cuando vas a ingresar en las tablas que valor le asignas al campo clave?
usas algun tipo de StartTransaccion y Commit?
Si podes escribi un poco del codigo en forma general en donde te da el error

Saludos
Responder Con Cita
  #3  
Antiguo 05-07-2005
[mateamargo] mateamargo is offline
Miembro Premium
 
Registrado: jul 2003
Posts: 82
Poder: 21
mateamargo Va por buen camino
Ver las transacciones

Si uso StartTransaction y Commit, también si no puedo grabar hago un rollback.
El ejemplo es el siguiente.
Tengo dos terminales corriendo el mismo programa, y accediendo a la misma tabla en el mismo momento, en las dos terminales estoy parado en el mismo registro, en una me da de baja el registro y en la otra terminal sigue apareciendo como existente si yo quiero hacer algo con ese registro (modif./eliminar) ahi me aparece un mensaje de error, como puedo hacer para que se "actualizen" los datos en ambas terminales ?
Desde ya muchas gracias por tu tiempo.
Saludos
Responder Con Cita
  #4  
Antiguo 29-10-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Cita:
Empezado por mateamargo
Perdón por el título, pero es así el tema:
Si te urge, solicita asistencia técnica para programadores o estudia la tecnología C/S. Un foro desde luego no es lugar de urgencias. Más que nada, porque no sabes cuando se va a conectar alguien que sepa y quiera responderte.


Lo que puedes hacer es registrar un evento en el servidor y cuando se realiza un alta o modificación, lanzar ese evento desde un trigger AFTER insert/update/delete,. Todos los clientes estarán a la espera de ese evento, y realizaran un Refresh sobre el Dataset apropiado.

Puedes usar un MDOEventAlert.

Debes tener un ejemplo basado en ibx en:

C:\Archivos de programa\Borland\Delphi6\Demos\Db\IBX\

Puedes guiarte por él, con MDO se supone que es igual

saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #5  
Antiguo 29-10-2005
Avatar de lpmlpm
lpmlpm lpmlpm is offline
Miembro
 
Registrado: ago 2005
Posts: 136
Poder: 19
lpmlpm Va por buen camino
solo revisa que la transacción que estas usando sea de tipo "read/commited" en ambas terminales, con eso basta para que los cambios que hace una se vean reflejadas en la otra...

Saludos
__________________
"Lo mejor de no saber hacer nada es que se tiene mucho tiempo libre."
Responder Con Cita
  #6  
Antiguo 30-10-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
jeje, ¿se nota que yo estaba liado con los eventos cuando respondí? que bah
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
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 14:19:08.


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