Foros del Web » Programación para mayores de 30 ;) » .NET »

Problemas con aplicación en RED [windows forms]

Estas en el tema de Problemas con aplicación en RED [windows forms] en el foro de .NET en Foros del Web. hola, tengo un futuro problema con una aplicación para trabajar en Red. El problema estará que cuando dos usuarios abran al mismo tiempo, por ejemplo, ...
  #1 (permalink)  
Antiguo 25/04/2005, 13:20
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 20 años, 7 meses
Puntos: 156
Pregunta Problemas con aplicación en RED [windows forms]

hola,

tengo un futuro problema con una aplicación para trabajar en Red.

El problema estará que cuando dos usuarios abran al mismo tiempo, por ejemplo, el formulario alta clientes, como el nº cliente se genera sumando +1 al último nº cliente, a los dos les saldrá el mismo nº, y cuando vayan a almacenar los datos, pues petará porque habrá clave repetida.

Y lo mismo pasaría con los formularios de facturas, prespuestos...etc. Que si dos usuarios o más abren el mismo formulario a la vez, hay problemas.

Vosotros como tratais los temas estos?

saludos!
  #2 (permalink)  
Antiguo 25/04/2005, 18:50
 
Fecha de Ingreso: junio-2002
Mensajes: 212
Antigüedad: 21 años, 10 meses
Puntos: 0
Yo particularmente no encontre ningun metodo que me ayudara en este caso, actualmente tengo una base de datos sql en linea, mas un servidor sql con la base local.
En este caso se utilizan 1 programa servidor (que es el que sincroniza la base local con la web) + clientes lan que pegan contra la base del servidor local + clientes remotos que pegan contra la base online.
El cliente remoto permite la carga de datos directamente sobre la base web, los clientes LAN cargan los datos sobre la base local mientras que el servidor de encarga de mantener 2 bajes espejadas, digamos que lo que hace es que la base local y la base online tengan los mismos datos, para eso actualizo los datos automaticamente cada X tiempo trayendo y aplicando las modificiaciones realizaras remotamente sobre la base local y aplicando los cambios que hicieron los clientes lan en la base web.
Los clientes LAN, y vamos a tu pregunta, si trabajan sobre la misma base podrian modificar y editar un mismo registro por eso lo que hago es lo siguiente, tomo el registro de la base local y lo archivo en una base "transaccional" y una vez editado este registro lo vuelgo a archivar en la base transaccional eso hace que el registro original desaparezca y por el otro lado el usuario sepa que estaria modificando un registro que ya fue editado.
Cuando quiero o cuando se deba producir, se sincroniza la base transaccional con la base local archivando de manera permanente el registro modificado...
Es mas laburo pero me aseguro que bajo ninguna circunstancia el registro pueda ser trabajado por 2 usuarios al mismo tiempo.
Otra cosa que podrias hacer es agregarle un marca, onda que si tiene la marca no se puede tomar paramodificar el tema es que tenes que leer la base, tomar el id, subir la marca y luego guardar el registro editado, yo opte por borrarlo directamente...
__________________
Simuladores y Examenes Cisco, Herramientas de Red Online - Tecnologia y Redes
  #3 (permalink)  
Antiguo 26/04/2005, 02:08
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Por que no utilizar autoincrementales???con esto aseguras que solo en el momento de inserción se cree automaticamente, así la Clave primaria nunca estará repetida.
  #4 (permalink)  
Antiguo 26/04/2005, 08:20
 
Fecha de Ingreso: agosto-2004
Mensajes: 48
Antigüedad: 19 años, 8 meses
Puntos: 0
En mi opinión este problema se resuelve implementando comandos que usen las transacciones. Puedes apoyarte tambien de los procedimientos almacenados o los disparadores para hacer que se incremente algun contador para asignarselo a una clave.

Saludos!
  #5 (permalink)  
Antiguo 27/04/2005, 12:41
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 20 años, 7 meses
Puntos: 156
bueno pues al final me he decido por lago bastante sencillo y que sales del paso. Pues antes de guardar los datos, miro si ya existe algún registro con dicha clave, si existe, pues vuelvo a generar una clave, así hasta que la clave no exista.

saludos!
  #6 (permalink)  
Antiguo 27/04/2005, 12:46
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Cita:
se resuelve implementando comandos que usen las transacciones
De hecho..

ahora que tambien si tu sgbd es por ejemplo SQL server te puedes apoyar tambien de los triggers..

Cita:
Por que no utilizar autoincrementales???con esto aseguras que solo en el momento de inserción se cree automaticamente,
tambien ésta es buena opcion..

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #7 (permalink)  
Antiguo 27/04/2005, 14:15
Avatar de HenrydeSousa  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 300
Antigüedad: 19 años, 7 meses
Puntos: 2
Una buena opción es hacerlo en un Stored Procedure, si estás trabajando con mssql claro, y colocar el insert into dentro de una transacción, de esta forma te aseguras que el id no coincida para ningún usuario, aunque haya 100 al mismo tiempo. En este caso colocar el campo como autoincrementable sería opcional. Saludos...
  #8 (permalink)  
Antiguo 28/04/2005, 03:54
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 20 años, 7 meses
Puntos: 156
hola,

utilizo la Bd de Access y el campo no puede ser un autonúmerico, porque si fuera así ya no habría ningún problema :)

saludos!
  #9 (permalink)  
Antiguo 28/04/2005, 04:59
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Pues yo he utilizado Access y si que me permite autonuméricos
  #10 (permalink)  
Antiguo 28/04/2005, 05:38
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 20 años, 7 meses
Puntos: 156
me he explicado mal jeje

A ver, no digo que no deje Acces poner campos autonúmericos, es que yo en la aplicación no quiero poner campos autonúmericos.

saludos!
  #11 (permalink)  
Antiguo 28/04/2005, 08:04
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Lo que se hace en algunos casos es tener una tabla con un solo campo que sea tu contador.. y cada vez que hagas una insercion lees tu campo y le incrementas 1 para asignarlo al nuevo registro.. y asi sucesivamente, ya depende de la imaginacion de cada uno...

Salu2
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:18.