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
|
|||
|
|||
Manejo de datos en red
Buenos días a todos. Les cuento que soy novato en esto de la programación asi que pido disculpa de antemano si estoy preguntando una gansada, estuve buscando en el foro pero no encontré una respuesta. Desarrolle para un amigo un sistema que le permite llevar el control de los pedidos de mercadería que le hacen sus clientes, tiene una sección donde se cargan los pedidos pendientes de entrega y cuando estos pedidos son despachados lo marco como tal mediante un campo verdadero/falso en la base de dados. El tema es que si dos personas tienen abierta la sección “pendientes” al mismo tiempo puede pasar que una persona esta viendo un pedido como pendiente cuando en realidad acaba de ser despachado por otro usuario. Es mas puede volver a despachar un pedido que ya fue despachado, con lo cual se generan dos números de despacho. Agradecería si alguien me puede dar una idea de cómo encarar este tema. Estoy usando tablas Access y un ADOQuery para cada estado del pedido (pendiente, despachado, entregado) los cuales consultan la misma tabla, solo que los filtro según el valor campos verdadero/falso en la tabla. En un principio usaba un solo ADOQuery, pero eso me generaba otros problemas, que no vienen al caso ahora. Desde ya Muchas gracias. |
#2
|
||||
|
||||
Hola.
¿Cómo visualizas y seleccionas el pedido a servir? ¿Los tienes en un grid y picas en el que quieres?.
__________________
Be water my friend. |
#3
|
|||
|
|||
Los muestro en un dbgrid, al presionar la tecla insert se marca como seleccionado mediante un campo verdadero/falso en la tabla. De esta forma se pueden seleccionar varios pedidos para despacharlos.
Luego al hacer clic en el boton Despachar, los marco como despachado mediente un update
|
#4
|
||||
|
||||
Desconozco el tema de transacciones con access, pero en todo caso podrías comprobar si ya ha sido despachado antes de actualizar.
|
#5
|
|||
|
|||
Gracias por responder.
Como te decia soy nuevo en esto y no tengo estudio en el tema, simplemente voy aprendiendo a medida que voy necesitando hacer algo nuevo, busco una solucion. Me podrias explicar en general par que se usan las transacciones? porque la verdad no tengo idea. Si hay dos usuarios usando la misma seccion del programa, supongamos que viendo registros listados en un DBGrid y uno agrega un registro, hay alguna forma de que el segundo usuario vea esa modificacion sin tener que hacer un Requery o algo similar? |
#6
|
||||
|
||||
No sé si access contempla transacciones, la verdad. Pero ya que estás aprendiendo autodidácticamente te aconsejaría que, si puedes, cambies a postgresql, firebird, mysql, etc. y te olvides de access, paradox, etc.
Este es el "libro maestro" sobre transacciones, en firebird/interbase. |
#7
|
|||
|
|||
Si, de hecho estoy en eso, ya instale firebird 2.1.3 y ZoesLib 6.6.6-stable y estoy usando IBExpert para crear la base de datos y todo eso, ya estoy probando.
Gracias por el pdf sobre transacciones, lo voy a leer. Cuando mencionaste el termino que no conocia busque en internet y vi que se trata de mantener la integridad de los datos, si no se ejecutan correctamente todas las instrucciones de una transaccion, no se ejecuta ninguna. Ahora, vuelvo a preguntar, si hay dos usuarios usando la misma seccion del programa, supongamos que viendo registros listados en un DBGrid y uno agrega un registro, hay alguna forma de que el segundo usuario vea esa modificacion sin tener que hacer un Requery o algo similar? Como dije antes, pido disculpas si estoy haciendo una pregunta tonta. |
#8
|
||||
|
||||
O sea, que esté mirando la pantalla fijamente y de golpe se refresque, ¿es eso?.
Busca por post_event |
#9
|
|||
|
|||
Claaaro, eso mismo, que si usuario agrega un registro el otro usuario vea reflejado ese cambio, pero sin necesidad de estar haciendo un Requery por las dudas que otro usuario haya agregado un registro por ejemplo.
Gracias por el dato, voy a buscar a ver que enuentro. |
#10
|
|||
|
|||
Ya estaaaa
Muy bueno tu dato, Muchas gracias!!! Use un ZIBEventAlerter y cree los trigger en la base de datos Por si alguien esta en la misma situacion les dejo esta pagina, donde lo explican muy claramente. Desgraciadamente nada de esto funciona para el sistema que ya tengo hecho con access Muchas Gacias!! http://www.firebird.com.mx/modules/A...php?storyid=35 |
#11
|
||||
|
||||
Es que access es una "tabla plana", algo muy "doméstico", no es relacional ni... nada. No tiene procedimientos, triggers, etc.
|
#12
|
|||
|
|||
Si, ya veo que firebird da muchas mas posiblidades....
Vos sabes que no lograba que se refrezcaran los datos en el DBgrid, el evento Post_Event se ejecutaba, hacia un refresh y nada, no aparecia el nuevo registro. Descubri que hay que configurar la propiedad TransactIsolationLevel del ZConnection en tiReadCommitted. Por el nombre supuse que se referia a que debia leer las transacciones que se ejecutaron con exito, y asi fue. Gracias por tu ayuda, esta muy bueno esto... |
#13
|
||||
|
||||
#14
|
||||
|
||||
Casimiro Access si es relacional, aunque no cuenta con los triggers, etc.
En términos reales Access no es una base de datos, es más bien una fachada muy básica del verdadero motor: Jet4. Access no soporta transacciones, pero si se está empleando ADO para acceder a éste es posible ya que ADO tiene soporte para eso (véase el método BeginTrans y otros de sus componentes). El asunto es que para funcionar las transacciones sobre Access requiere de una "capa" más ya que se requiere "emular" y tratar a Access como si fuera MS SQL Server, que es también otra fachada del motor Jet4, aunque ya algo como la gente Se que la explicación anterior es medio burda, no sabría como explicarlo mejor. Saludos, |
#15
|
||||
|
||||
Se entiende
|
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Manejo de 2 bases de datos | David82 | PHP | 2 | 28-10-2008 08:04:33 |
Manejo de consultas SQL y Bases de datos | metroyd | SQL | 0 | 07-10-2007 22:28:59 |
manejo bases de datos | anubis | Tablas planas | 2 | 14-05-2007 09:26:43 |
Manejo de datos con DBGrids | luxus | Conexión con bases de datos | 5 | 29-07-2006 06:47:03 |
manejo de la base de datos con sql | altatrejo | Conexión con bases de datos | 0 | 22-08-2005 18:52:04 |
|