![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
||||
|
||||
|
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 |
|
#2
|
||||
|
||||
|
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 |
|
#3
|
||||
|
||||
|
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. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|