Dudas Dataset

09/08/2006 - 08:56 por ddani | Informe spam
Mi problema es de concepto:

1) Tengo una aplicacion de mantenimiento de clientes con dataset. Al añadir
clientes nuevos se le debe asignar un codigo de cliente unico. Si esto lo
hago con Dataset puede que haya otro usuario dando de alta clientes y que por
tanto, se dupliquen clientes (o salte el error).

2) El alta de clientes esta orientado a DataSet o sería mejor el uso de
comandos conectados a la base de datos. A parte de la pregunta del apartado
anterior, los usuarios pueden estar trabajando dando de alta clientes y sin
saber los que dan sus compañeros. No parece una aplicacion muy a tiempo real.
Veo mas los dataset para consultar gran cantidad de datos y hacer incluso
modificaciones siguiendo los mecanismos de concurrencia pero para las altas
no lo entiendo. ¿Alguien que me pueda ayudar aclarandome ideas?

Gracias.

Preguntas similare

Leer las respuestas

#1 doliveras
10/08/2006 - 12:37 | Informe spam
Le veo dos soluciones a tus dilemas:

1.- Cuando el usuario haga una alta de un nuevo cliente insertas
automáticamente una linia en la tabla correspondiente, sin datos, solo
con el código de cliente nuevo y recuperas ese código, con esto de
aseguras el código para tu uso, pero si después se cancela el alta
deberás borrar la linea y tendrás códigos "desparecidos".

2.- Dejas que el usuario realize todo el proceso de alta, que añada
los campos que sean necesarios, y asignas el código de cliente justo
al insertar en la tabla, de esta manera también aseguras que el
código será único, pero no sabrás que código tiene el cliente
hasta el final de proceso de creación del cliente.


ddani ha escrito:

Mi problema es de concepto:

1) Tengo una aplicacion de mantenimiento de clientes con dataset. Al añadir
clientes nuevos se le debe asignar un codigo de cliente unico. Si esto lo
hago con Dataset puede que haya otro usuario dando de alta clientes y que por
tanto, se dupliquen clientes (o salte el error).

2) El alta de clientes esta orientado a DataSet o sería mejor el uso de
comandos conectados a la base de datos. A parte de la pregunta del apartado
anterior, los usuarios pueden estar trabajando dando de alta clientes y sin
saber los que dan sus compañeros. No parece una aplicacion muy a tiempo real.
Veo mas los dataset para consultar gran cantidad de datos y hacer incluso
modificaciones siguiendo los mecanismos de concurrencia pero para las altas
no lo entiendo. ¿Alguien que me pueda ayudar aclarandome ideas?

Gracias.
Respuesta Responder a este mensaje
#2 ddani
10/08/2006 - 16:38 | Informe spam
La duda no era en ese sentido. Mi duda se refiere a que dos usuarios pueden
estar trabajando con datos locales a través de la dataset y cuando van a
llever el dataset al origen de datos dar el error. Es por esto por lo que
pienso que en este caso no se puede trabajar con una estructura desconectada
sino que la insercion debe ser con comandos ¿es asi?

"" wrote:

Le veo dos soluciones a tus dilemas:

1.- Cuando el usuario haga una alta de un nuevo cliente insertas
automáticamente una linia en la tabla correspondiente, sin datos, solo
con el código de cliente nuevo y recuperas ese código, con esto de
aseguras el código para tu uso, pero si después se cancela el alta
deberás borrar la linea y tendrás códigos "desparecidos".

2.- Dejas que el usuario realize todo el proceso de alta, que añada
los campos que sean necesarios, y asignas el código de cliente justo
al insertar en la tabla, de esta manera también aseguras que el
código será único, pero no sabrás que código tiene el cliente
hasta el final de proceso de creación del cliente.


ddani ha escrito:

> Mi problema es de concepto:
>
> 1) Tengo una aplicacion de mantenimiento de clientes con dataset. Al añadir
> clientes nuevos se le debe asignar un codigo de cliente unico. Si esto lo
> hago con Dataset puede que haya otro usuario dando de alta clientes y que por
> tanto, se dupliquen clientes (o salte el error).
>
> 2) El alta de clientes esta orientado a DataSet o sería mejor el uso de
> comandos conectados a la base de datos. A parte de la pregunta del apartado
> anterior, los usuarios pueden estar trabajando dando de alta clientes y sin
> saber los que dan sus compañeros. No parece una aplicacion muy a tiempo real.
> Veo mas los dataset para consultar gran cantidad de datos y hacer incluso
> modificaciones siguiendo los mecanismos de concurrencia pero para las altas
> no lo entiendo. ¿Alguien que me pueda ayudar aclarandome ideas?
>
> Gracias.


Respuesta Responder a este mensaje
#3 doliveras
10/08/2006 - 17:44 | Informe spam
Creo que no entiendo bien tu problema.

Si lo que te preocupa es que dos usuarios modifiquen datos del mismo
cliente y que cuando vayan a guardar esos datos se produzca un error,
esto es un caso bastante común cuando se trabaja con aplicaciones
desconectadas, el sistema consiste en que el usuario que intenta
modificar los datos en segundo lugar recibe un error que le dice que
los datos han sido modificados desde que el los cogió (es lo que pasa
por ejemplo en el administrador de SQL Server si intentas modificar la
misma fila des de dos instancias distintas).

La única forma de evitar esto es hacer un bloqueo sobre la fila que se
está modificando, cosa que no tiene demasiado sentido a no ser que
quieras evitar a toda costa que ocurran estos casos.

Por el contrario, si lo que te preocupa es que dos usuarios distintos
den de alta dos clientes distintos y se produzca una colisión, esto lo
puedes evitar asignando el número de cliente en el momento de hacer la
inserción.

Desde mi punto de vista trabajar desconectado es lo mejor, te evita
muchos quebraderos de cabeza. En la empresa donde estoy se usa una base
de datos a la que se conectan más de 100 personas de forma
concurrente, y trabajando en desconectado no se producen más de 1 o 2
colisiones al día. Es muy poco común que dos o más personas
modifiquen el mismo registro en el mismo período de tiempo.

ddani wrote:
La duda no era en ese sentido. Mi duda se refiere a que dos usuarios pueden
estar trabajando con datos locales a través de la dataset y cuando van a
llever el dataset al origen de datos dar el error. Es por esto por lo que
pienso que en este caso no se puede trabajar con una estructura desconectada
sino que la insercion debe ser con comandos ¿es asi?

"" wrote:

> Le veo dos soluciones a tus dilemas:
>
> 1.- Cuando el usuario haga una alta de un nuevo cliente insertas
> automáticamente una linia en la tabla correspondiente, sin datos, solo
> con el código de cliente nuevo y recuperas ese código, con esto de
> aseguras el código para tu uso, pero si después se cancela el alta
> deberás borrar la linea y tendrás códigos "desparecidos".
>
> 2.- Dejas que el usuario realize todo el proceso de alta, que añada
> los campos que sean necesarios, y asignas el código de cliente justo
> al insertar en la tabla, de esta manera también aseguras que el
> código será único, pero no sabrás que código tiene el cliente
> hasta el final de proceso de creación del cliente.
>
>
> ddani ha escrito:
>
> > Mi problema es de concepto:
> >
> > 1) Tengo una aplicacion de mantenimiento de clientes con dataset. Al añadir
> > clientes nuevos se le debe asignar un codigo de cliente unico. Si esto lo
> > hago con Dataset puede que haya otro usuario dando de alta clientes y que por
> > tanto, se dupliquen clientes (o salte el error).
> >
> > 2) El alta de clientes esta orientado a DataSet o sería mejor el uso de
> > comandos conectados a la base de datos. A parte de la pregunta del apartado
> > anterior, los usuarios pueden estar trabajando dando de alta clientes y sin
> > saber los que dan sus compañeros. No parece una aplicacion muy a tiempo real.
> > Veo mas los dataset para consultar gran cantidad de datos y hacer incluso
> > modificaciones siguiendo los mecanismos de concurrencia pero para las altas
> > no lo entiendo. ¿Alguien que me pueda ayudar aclarandome ideas?
> >
> > Gracias.
>
>
Respuesta Responder a este mensaje
#4 Claudio
16/08/2006 - 03:32 | Informe spam
Se puede solucionar el problema trabajando con campos autonuméricos en la
definición de clave principal de la tabla de la base de datos. En este caso
se puede hacer que al insertar un nuevo registro, el Commando recupere el
código de cliente generado y lo asigne al campo ID del dataset.

En el caso de que no sea este el caso, es la aplicación quien debe calcular
el nuevo ID, haciendo una consulta en la base de datos y devolver el
siguiente ID dsiponible.

"ddani" escribió:

Mi problema es de concepto:

1) Tengo una aplicacion de mantenimiento de clientes con dataset. Al añadir
clientes nuevos se le debe asignar un codigo de cliente unico. Si esto lo
hago con Dataset puede que haya otro usuario dando de alta clientes y que por
tanto, se dupliquen clientes (o salte el error).

2) El alta de clientes esta orientado a DataSet o sería mejor el uso de
comandos conectados a la base de datos. A parte de la pregunta del apartado
anterior, los usuarios pueden estar trabajando dando de alta clientes y sin
saber los que dan sus compañeros. No parece una aplicacion muy a tiempo real.
Veo mas los dataset para consultar gran cantidad de datos y hacer incluso
modificaciones siguiendo los mecanismos de concurrencia pero para las altas
no lo entiendo. ¿Alguien que me pueda ayudar aclarandome ideas?

Gracias.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida