![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Cita:
|
|
#2
|
||||
|
||||
|
Cita:
Cita:
Otra cosa distinta es que si yo abro para editar, y me voy rápido al baño. Tú mientras tanto llegas y modificas el mismo registro que yo he dejado editando. ¿Qué hacer?, ¿avisarte de que lo está editando otro usuario y no dejarte hacer nada?, ¿dejarte editarlo?, creo que lo correcto es lo último. Luego vuelvo yo y le digo "guardar", ¿debería dejarme?, ¿debería decirme que otro usuario ya ha modificado mi registro?. Cada una de esas preguntas admite varias posibilidades, y para ello se puede configurar a gusto del consumidor: read_commited, nowait, snapshot, etc. son parámetros para que firebird "responda" de una manera u otra, dependiendo de lo que queramos. Habitualmente, siempre, he preferido que se guarde lo que haga el último que guarda. ¿Para qué bloquear?, además de que en la vida real no suele haber problema por eso, realmente nunca he tenido un problema por eso, pongamos un ejemplo simple: Tenemos un cliente: codigo: 1000, nombre: empresapaco, DescuentoHabitual: 10 % El cliente es muy bueno y el jefe dice: "al cliente empresapaco le subimos el descuento habitual al 12%" Si nuestra empresa es un caos de organización, tenemos a todos los trabajadores de la oficina abriendo la ficha del cliente y modificando su descuento habitual. Todos sobreescriben los datos de los demás, ningún problema. Pero si hay uno un poco sordo y entendió 14 en lugar de 12, y es el último en grabar... se quedará el 14% ¿Es un fallo de firebird, postgresql, mysql, etc.?, evidentemente, no. En la vida real creo que es difícil encontrarse problemas con una base de datos por cosas de ese tipo, incluido sqlite ![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#3
|
|||
|
|||
|
Cita:
Usuario-1 hace un cambiecillo a tira-a y Usuario-2 hace otro un cambio a tira-1 se hacen los DOS cambios, uno tras otro. Mientras la data sea valida, ambos cambios se aplican. Si la data de uno de los dos usuarios no califica, la transaccion se rechaza. Por ejemplo, si no se permiten duplicados de registro, y el usuario-2 quiere duplicar, pues se le rechaza. Ninguna base de datos puede cambiar un registro exactamente al mismo tiempo. Yo creo que mal-entiendes algo, Casimiro. Cual es el problema? |
|
#4
|
||||
|
||||
|
Cita:
Cita:
Aunque si te refieres "exactamente al mismo tiempo".... hombre, eso es prácticamente 'casi' imposible, si varía unas millonesímas de segundos, ya no es "exactamente al mismo tiempo" ![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#5
|
|||
|
|||
|
Cita:
Las versiones no se graban al mismo tiempo como dices, sino que "version" es una copia de una transaccion (basicamente) con un numero de serie o mecanismo similar. Eso es viejo y precede a la tecnica multigeneracion: Se graba la transaccion y se hace una copia de respaldo para roll back. Eso tambien lo hace SQLite3. Los sistemas de tipo servidor que llaman multigeneracionales se apoyan en el mismo principio de la copia para rollback y esas copias no constituyen de ninguna manera el que "varios usuarios escriban en la misma tabla al mismo tiempo", cada grabacion de cada usuario graba la transaccion y la copia, uno por uno, a su vez. De hecho, el sistema multigeneracion limita aun mas los escritos finales a las tablas, pues segun el caso, se pueden considerar grabaciones temporales, y separadas de la verdadera tabla. SQLite hace algo similar, pero a nivel limitado, aun en su manera de-fault de controlar los locks, usando archivos temporales en memoria o en disco, con su Pager Module. Y de hecho, permite aumentar ese control si se desea, pues tiene un modo (que no es default y se configura) que aun no se ha discutido aqui, que se llama "shared cache" y "shadow-paging". Aqui les pongo enlace a la documentacion oficial del asunto: SQLite Shared-Cache Mode: http://www.sqlite.org/sharedcache.html Y este otro link (tambien documentacion oficial de SQLite3) titulado File Locking and Concurrency Control (Control de Concurrencia): http://www.sqlite.org/lockingv3.html Última edición por ElMug fecha: 07-09-2012 a las 22:16:32. Razón: http://www.sqlite.org/lockingv3.html |
|
#6
|
|||
|
|||
|
Cita:
Los limitaciones de SQlite3 para uso multisuario no han sido nunca en ese sentido. |
|
#7
|
||||
|
||||
|
Cita:
Bueno, en un sistema de bloqueos resulta lo mismo. El software tiene que decidir qué hacer si quiere abrir un registro bloqueado. Aunque las opciones son menos. Ahora bien, si esto sucede muy pocas veces en la vida real, con mayor razón bastaría usar bloqueos. Incluso podríamos usar bases del tipo NoSQL que ni transacciones tienen pero que son muy cómodas de usar. Creo que por el contrario, esto sucede con mucha frecuencia, aunque no el caso que describes y por ello la preocupación de que el gestor sea ACID. No se trata, como el ejemplo que pones, de una mala organización de l compañía en la que dos empleados editan los mismos datos. Si tienes que manejar un stock, necesariamente va a haber varios puestos accediendo a las existencias del mismo producto. // Saludos |
|
#8
|
||||
|
||||
|
Ya, el ejemplo que he puesto es bastante tonto.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| SQLITE:Establecer Contraseña a mi db | bitbow | Conexión con bases de datos | 0 | 17-09-2010 23:48:34 |
| Usuario y Contraseña??? | danytorres | Oracle | 1 | 24-07-2007 16:16:19 |
| Usuario, contraseña, rol | santiago14 | Firebird e Interbase | 1 | 11-12-2006 00:00:38 |
| Form con usuario y contraseña | nenufer | Varios | 3 | 19-05-2006 11:37:35 |
| Usuario y contraseña con ADOconnection | Gelmin | Conexión con bases de datos | 3 | 27-09-2005 08:42:48 |
|