FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Base Compartida!!
Hola amigos espero que tengan muy buen día.
La duda que tengo es la siguiente: Tengo una aplicación que se conecta a una base de datos en Acces alojada en un servidor. Hasta aqui no tengo ningun problema. sin embargo necesito que esta aplicación la ocupen 7 personas simultaneamente, utilizo un filtro para que unicamente le muestre a los usuarios los registros que no han sido tocados, sin embargo los 7 empiezan a trabajar en el mismo registro y si el usuario no ha guardado los cambios entonces la aplicación la toma y se la muestra a los otros 6 asesores. Tratando de ser mas claro. Que puedo hacer para que ningun asesor me tome el mismo registro, hay alguna manera de indicarle a la aplicacion que si hay un segundo apuntando en ese registro , tome un tercero disponible?? Muchas gracias por su ayuda. Jdattoli
__________________
Welcome to the tragic kingdom |
#2
|
|||
|
|||
Buenas,
No entiendo bien a que te referís con eso de "registros no tocados". Como primer consejo te diría que si vas a trabajar en cliente servidor te vayas olvidando de las "cualidades" de Access. Pero alguna solución para el problema, que repito no entendí por completo, sería agregar a la tabla en cuestión un campo FLAG que indique si está siendo utilizado por otro usuario y de esa manera simular un bloqueo para los que intentan reutilizarlo. Siento no ser de mayor ayuda.
__________________
Suerte .: Gydba :. |
#3
|
||||
|
||||
Es cierto precisamente lo que necesito es una bandera, me has dado una buena idea.
Registros tocados es un termino utilizado en los bancos que se refiere a aquellos registros que no han sido actualizados por el usuario.
__________________
Welcome to the tragic kingdom |
#4
|
||||
|
||||
Hola:
He tratado de hacer el registro bandera, pero no puedo, si alguien tiene una sugerencia se la agradecería. Jdattoli
__________________
Welcome to the tragic kingdom |
#5
|
|||
|
|||
Hola,
¿Podrías extender un poco más el problema o bien poner un poco de código (definición de la tabla, llamadas desde Delphi, etc.) como para poder orientarnos un poco más? Gracias
__________________
Suerte .: Gydba :. |
#6
|
||||
|
||||
Ocupe un adotable para conectar mi aplicacion con mi base en Access.
La base tiene los siguientes campos: Nombre del cliente: Numero de cuenta: Telefonos: Horario: observaciones: status: bandera: de hecho toda la base ya esta llena y los operadores lo unico que deben de hacer es comunicarse con cada cliente y en el campo status poner 1 de 2 opciones Retenida o cancelada. estas 2 opciones ya las agrege a un Dbcombobox para que ni siquiera capturen y solo eligan la opcion correspondiente. Todo esto ya lo logré, el problema que tengo es que al conectar la base con 7 copias de mi aplicacion los 7 asesores ven a mi primer registro y solo uno de ellos, el primero, podra realizar el cambio ya que los otros 6 tendran un error que dice que el campo ha sufrido cambios desde que se abrió. Necesito algo que le indique a mi aplicación, que ese registro ya lo esta viendo alguien mas y que busque el proximo registro disponible para que el operador pueda llamarle al cliente. y es bastante importante ya que no quisiera tener a 2 personas marcando a un mismo cliente. el codigo que he utilizado es muy poco, solamente el filtro. Aprecio Muchisimo tu invaluable ayuda.
__________________
Welcome to the tragic kingdom |
#7
|
||||
|
||||
Hola amigos, este es codigo de mi filtro:
procedure TCuentas.Button1Click(Sender: TObject); begin adotable1.Active:=true; adotable1.Filter:='status ='+QuotedStr(edit1.text); adotable1.Filter:='flag ='+QuotedStr(edit2.text); adotable1.Filtered:=true; adotable1.Refresh; adotable1.Edit; adotable1.FieldByName('flag').AsString:='activo'; end; si ven primero filtro mi campo "status" y edit1 esta en blanco, ya que no quiero que me aparezcan las que ya estan actualizadas, luego filtro "flag" para que no me tome un registro que esté utilizando otra persona (en teoria es lo que pense podria pasar), y en seguida le agrego la palabra "activo" a mi campo flag para que los demas sepan que lo estoy ocupando, pero la actualización no es en tiempo real y no se ya que hacer. si abrimos 2 veces mi ejecutable, los dos toman al primer registro, y pues no me sirve. Espero me puedan ayudar. Gracias jdattoli
__________________
Welcome to the tragic kingdom |
#8
|
||||
|
||||
En delphi usando F1 sobre las propiedades de un objeto podés solucionar mucho: En este caso sobre "LOCK TYPE" del ADO Table
ltUnspecified A specific lock type has not been specified or determined. ltReadOnly Read-only; the current execution cannot modify data. ltPessimistic Pessimistic locks; locks instantiated on a record-by-record basis when edit mode is applied to a record. ltOptimistic Optimistic locks; locked are initiated on a record-by-record basis, but only when updates are applied and a record is being updated. ltBatchOptimistic Optimistic batch updates; used for batch update mode rather than immediate update mode. Me parece que mejor es implementar un procedimiento almacenado con lock type Saludos
__________________
And I'd like an hour on the holodeck with Seven of Nine. |
|
|
|