consultas simultaneas a una base de datos

12/09/2008 - 23:42 por rodrivg | Informe spam
Hola, estoy con una aplicación que se conecta a una base de datos Sql
Server, y necesito leer datos de una tabla, y para cada fila, leer de
otra tabla, y no quiero meter todo en la misma consulta. Entonces
estoy utilizando una SqlConnection, un SqlCommand, y un SqlDataReader.
Cuando intento leer de la segunda tabla, me lanza una excepción,
diciendo que no puedo tener dos SqlDataReader al mismo tiempo
abiertos.

Entonces, ¿hay alguna otra forma de hacerlo de forma que pueda tener
dos cursores abiertos simultaneamente?

Preguntas similare

Leer las respuestas

#1 Pedro
13/09/2008 - 00:26 | Informe spam
Podrias usar datatable y dataadapter en vez de datareader pero, no creo que
sea necesario, ya que puedes hacer una sola consulta con los Join's
correspondientes. Esa debe ser la mejor forma.


escribió en el mensaje
news:
Hola, estoy con una aplicación que se conecta a una base de datos Sql
Server, y necesito leer datos de una tabla, y para cada fila, leer de
otra tabla, y no quiero meter todo en la misma consulta. Entonces
estoy utilizando una SqlConnection, un SqlCommand, y un SqlDataReader.
Cuando intento leer de la segunda tabla, me lanza una excepción,
diciendo que no puedo tener dos SqlDataReader al mismo tiempo
abiertos.

Entonces, ¿hay alguna otra forma de hacerlo de forma que pueda tener
dos cursores abiertos simultaneamente?
Respuesta Responder a este mensaje
#2 Alberto Poblacion
13/09/2008 - 09:53 | Informe spam
wrote in message
news:
Hola, estoy con una aplicación que se conecta a una base de datos Sql
Server, y necesito leer datos de una tabla, y para cada fila, leer de
otra tabla, y no quiero meter todo en la misma consulta. Entonces
estoy utilizando una SqlConnection, un SqlCommand, y un SqlDataReader.
Cuando intento leer de la segunda tabla, me lanza una excepción,
diciendo que no puedo tener dos SqlDataReader al mismo tiempo
abiertos.

Entonces, ¿hay alguna otra forma de hacerlo de forma que pueda tener
dos cursores abiertos simultaneamente?



Normalmente no puedes tener dos datareaders abiertos simultaneamente
sobre LA MISMA conexión. Pero si abres dos conexiones, sí que puedes tener
un DataReader abierto en cada una.

Si estás usando SQL Server 2005, tienes la posibilidad de usar MARS
poniendo (si no recuerdo mal) "Multiple Active Result Sets=true" en la
cadena de conexión. Con esta opción activada, sí que te permite abrir más de
un datareader a la vez sobre una única conexión.

Si ninguna de estas dos opciones es aceptable, entonces puedes recurrir
a pegar la primera pasada leyendo datos de la primera tabla con un
datareader y almacenar en memoria los datos que necesitas; a continuación,
cierras el datareader y vuelves a abrir otro sobre la segunda tabla,
coordinando la lectura con los datos que cargaste durante la primera pasada.
Respuesta Responder a este mensaje
#3 Alfredo Novoa
15/09/2008 - 12:34 | Informe spam
Hola Pedro

El Fri, 12 Sep 2008 18:26:34 -0400, Pedro escribió:

Podrias usar datatable y dataadapter en vez de datareader pero, no creo que
sea necesario, ya que puedes hacer una sola consulta con los Join's
correspondientes. Esa debe ser la mejor forma.



Hombre, esto es demasiado categórico. Imagínate que las dos consultas están
en hilos distintos y no tienen nada que ver entre ellas.


Saludos
Alfredo
Respuesta Responder a este mensaje
#4 Pedro
16/09/2008 - 14:50 | Informe spam
Por qué pensar lo más dificil ?


"Alfredo Novoa" escribió en el mensaje
news:1danwqlioqpyz$

Hola Pedro

El Fri, 12 Sep 2008 18:26:34 -0400, Pedro escribió:

Podrias usar datatable y dataadapter en vez de datareader pero, no creo
que
sea necesario, ya que puedes hacer una sola consulta con los Join's
correspondientes. Esa debe ser la mejor forma.



Hombre, esto es demasiado categórico. Imagínate que las dos consultas
están
en hilos distintos y no tienen nada que ver entre ellas.


Saludos
Alfredo
Respuesta Responder a este mensaje
#5 Carlos
16/09/2008 - 20:24 | Informe spam

Por qué pensar lo más dificil ?




Que buena pregunta. :)

El principio KISS.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida