Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   accediendo al origen de datos (http://www.forosdelweb.com/f29/accediendo-origen-datos-420366/)

bar1 26/08/2006 01:36

accediendo al origen de datos
 
Hola amigos, parece que le estoy cogiendo el gustillo a eso de los FOROS.. :-)
La duda que se me plantea ahora es sobre la conexión al origen de datos (OdD).

En mi aplicación trabajo con un DataSet que cargo con todas las tablas del OdD al inicio de todo y voy llamando periódicamente a lo largo de la aplicación para cargar los datos. El problema es cuando hay modificaciones (insert, update o delete). ¿Debo acceder con DataAdapters al OdD cada vez que modifico los datos del DataSet, o me puedo esperar y hacerlo al final de la aplicación?

Supongo que por la pregunta que os hago a continuación eso parece evidente, pero en el caso de tener varios PC's conectados al mismo OdD, si resulta que el usuario no modifica ningun registro, como sé yo que los datos que contiene el DataSet se van actualizando? ¿Le pongo un Timer, o existe alguna función específica?

Bueno, pues muchas gracias a todos y VIVA LOS FOROS!! :arriba:

dvelazquez 26/08/2006 15:28

Si hay varios usuarios conectados al mismo origen de datos, efectivamente, no puedes esperar un tiempo para actualizar tus datos, porque el último cliente que actualizara sería el que conseguiría "mantener" sus datos y "machacaría" los de los demás.

Yo lo que haría (aunque pierdes rendimiento) es actualizar en cada instante que almacenes un dato. Es decir, cuando modifiques una fila de un dataset, manda un update de esa fila a la base de datos.

A mi no me gusta nada el dataAdapter. Hablan muy bien de él pero yo personalmente prefiero hacer consultas directamente, evaluando si debo hacer una inserción, o actualización.

Espero haberte servido de ayuda.

Saludos.

bar1 28/08/2006 03:29

merci por la respuesta dvelazquez :-)

Cita:

Yo lo que haría (aunque pierdes rendimiento) es actualizar en cada instante que almacenes un dato. Es decir, cuando modifiques una fila de un dataset, manda un update de esa fila a la base de datos.
Pero aun así, por lo que me dices, sólo actualizas el OdD cuando TÚ modificas un registro. ¿Pero que pasa cuando otro usuario (desde otro PC) modifica otro registro? ¿Tengo que programar un Timer e ir cargando los DataSets cada 5 minutos? ¡que barbaridad!

Seguro que tiene que haber otra forma más EFECTIVA de hacerlo...

dvelazquez 28/08/2006 04:00

Pues lo de refrescar los datasets sería una opción, pero no la más importante.

Podrías evaluar si hay posibilidades o no de que varios usuarios modifiquen el mismo registro. No se si en el método de trabajo que tienen los usuarios se da ese caso o no, pero básicamente... son "cosas que pasan"

Me explico, si tu vas a hacer por ejemplo, una gestión en tu numero de teléfono, el registro de tus datos que tiene tu compañia es accesible para todos los teleoperadores con los que tratas, pero la duda es... ¿Se va a acceder en más de una instancia a tus datos? Por eso te decía que actualices el origen de datos cada vez que modifiques un (solo uno) registro. Entonces tu solo "tocas" tu registro y no los demás.

Si usas un dataadapter los tocarías todos, porque el dataadapter va a hacer tantos inserts o updates como registros hayas tocado tu de él.

No se si te he ayudado algo o le he dado más vueltas al tema.

También puedes refrescar los datos cada vez que cada usuario haga una operación de actualización/inserción o eliminado, y además facilitarles un botón "refrescar" para que ellos se "traigan" cuando quieran los datos actualizados.

Saludos colega.

bar1 28/08/2006 05:54

Sí, está bien, pero no acabo de comprender la solución al problema. :no:

Lo que tú me propones "está bien", entre comillas, pq eso de actualizar con el DataSet asociado a un Timer me parece bastante cutre. Y la otra opción de añadir el botón de "refrescar"... no se qué decirte. ¿Cómo les explico a los usuarios que deben pulsar un botón para recoger los datos reales del OdD? Pq puede que los datos que esten viendo no estén actualizados... COMORL!?

Carai! tiene que haber algo más profesional! no me creo que los de Microsoft sean tan SIMPLES. :molesto:

La otra idea de actualizar tan solo UN REGISTRO (p.ej. nº teléfono) por no tener que modificar los otros me parece acertada, pero quizás soy un rebuscado pero, pon por caso que 2 usuarios quieren modificar el MISMO registro en el MISMO instante. ¿Qué casualidad no? pues eso puede pasar. Estamos en lo mismo.

Bueno, pues ya ves que aquí no nos conformamos...

Gracias por tu tiempo de todas formas :arriba:

dvelazquez 28/08/2006 07:59

Pues hombre lo de actualizar el mismo registro dos personas al mismo tiempo... no lo veo claro.

Tu puedes llamar a la vez a una operadora dos veces para que te lo gestionen?

Explicame un poco como va tu aplicación, qué hacen los usuarios, para ver si lo puedo comprender mejor.

Saludos.

bar1 29/08/2006 02:01

No acabo de comprender eso:
Cita:

Tu puedes llamar a la vez a una operadora dos veces para que te lo gestionen?
Se trata de una aplicación médica donde las fichas de los pacientes se van actualizando simultaneamente desde cualquier ordenador conectado al OdD (SQL Server 2000) del hospital. Por eso te digo que me preocupa que un doctor esté modificando el historial de un paciente, en el mismo tiempo que una enfermera lo hace desde otro PC.

Tienes razón, es complicado que ocurra pero no imposible. ¿O a lo mejor me estoy comiendo demasiado la cabeza? :neurotico podría ser...

dvelazquez 29/08/2006 02:11

Yo creo que le estás dando muchas vueltas.

Yo creo que es un caso complicado que ambos estén metiendo datos a la vez. Investiga a ver cual es la forma que tienen de trabajar, para evaluar si cabe esa posibilidad.

Saludos colega.


La zona horaria es GMT -6. Ahora son las 23:32.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.