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

accediendo al origen de datos

Estas en el tema de accediendo al origen de datos en el foro de .NET en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 26/08/2006, 01:36
 
Fecha de Ingreso: diciembre-2004
Mensajes: 54
Antigüedad: 20 años, 2 meses
Puntos: 0
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!!
  #2 (permalink)  
Antiguo 26/08/2006, 15:28
 
Fecha de Ingreso: agosto-2006
Mensajes: 101
Antigüedad: 18 años, 5 meses
Puntos: 0
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.
  #3 (permalink)  
Antiguo 28/08/2006, 03:29
 
Fecha de Ingreso: diciembre-2004
Mensajes: 54
Antigüedad: 20 años, 2 meses
Puntos: 0
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...
  #4 (permalink)  
Antiguo 28/08/2006, 04:00
 
Fecha de Ingreso: agosto-2006
Mensajes: 101
Antigüedad: 18 años, 5 meses
Puntos: 0
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.
  #5 (permalink)  
Antiguo 28/08/2006, 05:54
 
Fecha de Ingreso: diciembre-2004
Mensajes: 54
Antigüedad: 20 años, 2 meses
Puntos: 0
Sí, está bien, pero no acabo de comprender la solución al problema.

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.

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
  #6 (permalink)  
Antiguo 28/08/2006, 07:59
 
Fecha de Ingreso: agosto-2006
Mensajes: 101
Antigüedad: 18 años, 5 meses
Puntos: 0
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.
  #7 (permalink)  
Antiguo 29/08/2006, 02:01
 
Fecha de Ingreso: diciembre-2004
Mensajes: 54
Antigüedad: 20 años, 2 meses
Puntos: 0
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? podría ser...
  #8 (permalink)  
Antiguo 29/08/2006, 02:11
 
Fecha de Ingreso: agosto-2006
Mensajes: 101
Antigüedad: 18 años, 5 meses
Puntos: 0
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.
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 15:50.