Mantener registros de varias tablas

04/11/2006 - 07:58 por Jaume | Informe spam
Hola a todos, ante todo, comentar que soy programador de la era estructurada,
cuando los programas eran lineales y controlabas constantemente lo que se
hacia. Realice varios programas con Foxpro 2.5 multipuesto bajo DOS con un
buen rendimiento.
Por otro lado, he visto muchos aplicativos realizados en entorno Windows que
son realmente lentos al atacar bases de datos.
Actualmente, estoy migrando una aplicación de Fox a VB .Net y Sql-Server.

En tablas de un nivel (un indice)
ejemplo:
Codigo_Articulo

Aparentemente no tengo ningun problema y la funcionalidad es correcta.

El problema aparece cuando trabajo con varias tablas interrelacionadas.
ejemlo (campos clave):

numero_pedido
numero_pedido + numero_linea_pedido
numero_pedido + numero_linea_pedido + numero_linea_detalle

Mi intención es poder entrar en un formulario y a partir de establecer el
numero_ pedido, poder manipular los datos de las otras tablas.

El problema que tengo que resolver, me aparecen cuando desde varios
terminales se accede al mismo pedido i borran lineas_pedido o lineas_detalle,
o bien se da de alta registros nuevos, con lo que el numero_linea es
coincidente por varios terminales y se machacan.

Agradeceria alguien experimentado, me orientara en como poderlo solucionar.
Gracias .

Saludos a todos.
 

Leer las respuestas

#1 Maxi
05/11/2006 - 17:10 | Informe spam
Hola, si te entendi bien vos queres resolver un problema de concurrencia,
tenes por ej una factura que la estan modificando 2 usuarios al mismo tiempo
y pueden colapsar.
Esto es un tema netamente de arquitectura y puede tener varias soluciones,
primero deberias definir el tipo de concurrencia, podrias por ej decir que
el ultimo vale o sea, si hay 2 usuarios y primero grabo user1 cuando grabe
user2 pisa todo, pero tambien podrias definir un modelo de concurrencia
donde si user1 toma una factura no la pueda tomar nadie mas (lo podrias
hacer mediante un flag por ej) o bien podrias tener otra alternativa donde
user1 toma la factura y user2 tambien, ahora user1 la graba primero y cuando
user2 la quiere grabar detecta que hubo cambios desde que la tomo el y ahi
avisar al usuario para tomar una accion, este punto lo podrias implementar
en sql2k o 2005 con el uso del tipo de datos timestamp.


Saludos

[Microsoft MVP SQL Server]
www.sqlgurus.org
Buenos Aires - Argentina
"Jaume" wrote in message
news:
Hola a todos, ante todo, comentar que soy programador de la era
estructurada,
cuando los programas eran lineales y controlabas constantemente lo que se
hacia. Realice varios programas con Foxpro 2.5 multipuesto bajo DOS con
un
buen rendimiento.
Por otro lado, he visto muchos aplicativos realizados en entorno Windows
que
son realmente lentos al atacar bases de datos.
Actualmente, estoy migrando una aplicación de Fox a VB .Net y Sql-Server.

En tablas de un nivel (un indice)
ejemplo:
Codigo_Articulo

Aparentemente no tengo ningun problema y la funcionalidad es correcta.

El problema aparece cuando trabajo con varias tablas interrelacionadas.
ejemlo (campos clave):

numero_pedido
numero_pedido + numero_linea_pedido
numero_pedido + numero_linea_pedido + numero_linea_detalle

Mi intención es poder entrar en un formulario y a partir de establecer el
numero_ pedido, poder manipular los datos de las otras tablas.

El problema que tengo que resolver, me aparecen cuando desde varios
terminales se accede al mismo pedido i borran lineas_pedido o
lineas_detalle,
o bien se da de alta registros nuevos, con lo que el numero_linea es
coincidente por varios terminales y se machacan.

Agradeceria alguien experimentado, me orientara en como poderlo
solucionar.
Gracias .

Saludos a todos.

Preguntas similares