DataReader concurrentes.

28/11/2006 - 11:40 por Roberto | Informe spam
Hola Foro.

Hace poco que he empezado a trabajar en .NET y tengo un problemilla. Tengo
una mini aplicación contra SQL Server 20003 que tiene 3 tablas. El caso es
que quiero crear una serie de funciones para leer, escribir, insertar y
borrar en las tablas independientemente de cual de ellas se trate. Mis
compañeros me indican que eso es imposible puesto que en cada conexión
OldDbSqlClient sólo puede haber un DataReader abierto ¿Es eso cierto o hay
algún parche que haya solventado este muy grave inconveniente?

Muchas gracias.

Roberto

Preguntas similare

Leer las respuestas

#1 Toni Recio
28/11/2006 - 11:46 | Informe spam
ANtes de nada una puntualización: Las dos últimas versiones de SQL Server son
la 2000 y la 2005, con lo que todo lo aquí diga no se si funcionará con la
versión 20003... :-DDDD (Soy un borde, lo sé, pero no me lo tengas en cuenta)
;-)

A tu pregunta, de a una única conexión, más de un datadapter abierto, yo
diria que sí, aunque es fácil probarlo, pero me gustaría ir un poco más
lejos: ¿Para qué lo necesitas? Puedes hacer funciones independientes de la
tabla usando el mismo dataadapter no?

Puedes exponer un poco más el planteamiento que estás haciendo en tu
aplicación?

"Roberto" wrote:

Hola Foro.

Hace poco que he empezado a trabajar en .NET y tengo un problemilla. Tengo
una mini aplicación contra SQL Server 20003 que tiene 3 tablas. El caso es
que quiero crear una serie de funciones para leer, escribir, insertar y
borrar en las tablas independientemente de cual de ellas se trate. Mis
compañeros me indican que eso es imposible puesto que en cada conexión
OldDbSqlClient sólo puede haber un DataReader abierto ¿Es eso cierto o hay
algún parche que haya solventado este muy grave inconveniente?

Muchas gracias.

Roberto
Respuesta Responder a este mensaje
#2 Alberto Poblacion
28/11/2006 - 12:03 | Informe spam
"Roberto" wrote in message
news:
Hace poco que he empezado a trabajar en .NET y tengo un problemilla. Tengo
una mini aplicación contra SQL Server 20003 que tiene 3 tablas. El caso es
que quiero crear una serie de funciones para leer, escribir, insertar y
borrar en las tablas independientemente de cual de ellas se trate. Mis
compañeros me indican que eso es imposible puesto que en cada conexión
OldDbSqlClient sólo puede haber un DataReader abierto ¿Es eso cierto o hay
algún parche que haya solventado este muy grave inconveniente?



A) DataReaders abiertos: En SqlServer 2000, solo uno por cada conexión.
En SqlServer 2005, es factible abrir varios DataReaders a la vez a través de
la misma conexión si tienes el "cliente" moderno (Sql Native Client) y en la
cadena de conexión pones la opción de habilitar MARS, que creo recordar que
era MultipleActiveResultSets=True.

B) Lo más normal, en una aplicación como la que describes, es que no
necesites nunca tener abierto más de un datareader. En las funciones de
"leer", abres conexión, abres datareader, lees datos, cierras datareader,
cierras conexión, sales de la función (por tanto nunca hay más de uno
abierto). En las de insertar, modificar y borrar, no se usan datareaders,
sino que utilizas el método ExecuteNonQuery de un SqlCommand.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida