Dataset

18/04/2006 - 15:08 por Norberto Kelijman | Informe spam
Tengo VB 2005 y SQLServer 2005, las versiones que se rifaron en el
lanzamiento, en un paquete llamado Ready to Launch.

He leído por ahí (leí tanto que ya no me acuerdo dónde) que VB 2005 se puede
trabajar directamente sobre la base de datos o sobre un dataset, y que la
aplicación es más ágil con el dataset sobre todo si los usuarios van a
browsear.

Pero con el dataset tengo 2 problemas:

1) El dataset se me carga para toda la aplicación, así que ahí tendría que
poner todas las tablas y procedimientos (¿o no?), y no sé si me va a caber
en la memoria, es toda la base de datos y va a ser muy grande.

2) Desspués me tengo que ocupar todo el tiempo de que cuando cambia algo en
el dataset cambie también en la base de datos.

Van 2 preguntas:

1) ¿Es mejor trabajar con un dataset o directamente con la base de datos?
2) Si trabajo con Dataset. ¿No lo debería poder abrir en cada formulario,
sólo con los datos que voy a usar en el formulario?

Gracias.
Norberto
 

Leer las respuestas

#1 Luis Miguel Blanco
20/04/2006 - 18:09 | Informe spam
Hola Norberto

El objeto dataset puede ciertamente ser una representación completa de tu
base de datos, aunque el hecho de que pueda serlo no quiere decir que siempre
tenga que utilizarse así. Supongamos que en un formulario necesitas ofrecer a
tus usuarios una tabla para consultar sus registros; en este caso no
necesitarías cargar toda la base de datos en el dataset, sino que sólo
cargarías una tabla que sería la que conectarías con un control DataGridView
para que los usuarios vieran los registros.

Por otra parte no es necesario que tengas un único objeto dataset para toda
la aplicación, de hecho sería más flexible y óptimo de cara al rendimiento de
tu aplicación utilizar distintos objetos dataset a nivel de cada formulario,
de forma que al cerrar un formulario, también se destruye el dataset que
pudieras estar usando en el mismo, con lo que supondría un mejor uso de los
recursos.

En cuanto a las operaciones de mantenimiento sobre los datos (altas, bajas,
modificaciones), aquí ya es una cuestión del diseño de tu aplicación. Una
práctica consistiría en cargar un dataset con una tabla y hacer las
operaciones sobre el dataset; esto te requeriría que cuando el usuario
terminara de trabajar con el dataset, tendrías que actualizar los cambios
sobre la base de datos física. Y otra práctica pasaría por utilizar
directamente los objetos de ADO.NET (Connection, Command, DataAdapter, etc.)
y realizar con ellos dichas operaciones. Pero como ya te digo, todo depende
de la funcionalidad o uso que quieras diseñar para tu programa. La ventaja
del uso de los objetos de ADO.NET radica en que realizas la actualización de
forma inmediata sobre tu base de datos, mientras que usando el dataset, dicha
actualización normalmente no se hace hasta que el usuario no ha terminado de
trabajar con el dataset.

Como ves, más que ventajas o inconvenientes, lo que tenemos es un amplio
abanico de posibilidades que intentan cubrir la mayor cantidad posible de
escenarios de trabajo. Aquí te he apuntado unos pocos, y según vayas
trabajando irás descubriendo nuevas posibilidades. Espero que mis comentarios
te sirvan para ir comenzando 8-).
Un saludo
Luis Miguel Blanco
http://www.dotnetmania.com


"Norberto Kelijman" wrote:

Tengo VB 2005 y SQLServer 2005, las versiones que se rifaron en el
lanzamiento, en un paquete llamado Ready to Launch.

He leído por ahí (leí tanto que ya no me acuerdo dónde) que VB 2005 se puede
trabajar directamente sobre la base de datos o sobre un dataset, y que la
aplicación es más ágil con el dataset sobre todo si los usuarios van a
browsear.

Pero con el dataset tengo 2 problemas:

1) El dataset se me carga para toda la aplicación, así que ahí tendría que
poner todas las tablas y procedimientos (¿o no?), y no sé si me va a caber
en la memoria, es toda la base de datos y va a ser muy grande.

2) Desspués me tengo que ocupar todo el tiempo de que cuando cambia algo en
el dataset cambie también en la base de datos.

Van 2 preguntas:

1) ¿Es mejor trabajar con un dataset o directamente con la base de datos?
2) Si trabajo con Dataset. ¿No lo debería poder abrir en cada formulario,
sólo con los datos que voy a usar en el formulario?

Gracias.
Norberto



Preguntas similares