Problema con Transacciones y DataReader

21/05/2004 - 12:39 por Anonimo | Informe spam
Hola a todos.

Estoy utilizando Transacciones y DataReader, y me da un
problema.

Inicio una transacción a partir de una conexión.

Con una conexión, creo un Command, e intento ejecutar
ExecuteReader()

Cierro DataReader, Close()

Posteriormente me da una excepción similar a esta:

"Fallo en Inserción: la conexión está cerrada"

En el CommandBehavior pongo Default y me vuelve a fallar.

Y si no cierro DataReader me sale algo similar a esto:
"Insert failed: There is already an open DataReader
associated with this Connection which must be closed
first".


Qué puedo hacer ?.

Preguntas similare

Leer las respuestas

#1 José Miguel Torres
21/05/2004 - 12:46 | Informe spam
Disculpa... para que necesitas una transacción cuando estás con un
DataReader?
No entiendo bien que quieres decir



escribió en el mensaje
news:101f701c43f1f$f6758710$
Hola a todos.

Estoy utilizando Transacciones y DataReader, y me da un
problema.

Inicio una transacción a partir de una conexión.

Con una conexión, creo un Command, e intento ejecutar
ExecuteReader()

Cierro DataReader, Close()

Posteriormente me da una excepción similar a esta:

"Fallo en Inserción: la conexión está cerrada"

En el CommandBehavior pongo Default y me vuelve a fallar.

Y si no cierro DataReader me sale algo similar a esto:
"Insert failed: There is already an open DataReader
associated with this Connection which must be closed
first".


Qué puedo hacer ?.
Respuesta Responder a este mensaje
#2 Anonimo
21/05/2004 - 14:27 | Informe spam
Yo inicio una transacción, y hago una serie de inserts, y
en un momento tengo que leer el valor de una tabla porque
neceisto su valor y por eso utilizo datareader para hacer
la select. Y ahí es cuando tengo el problema. Quizá no
debería hacerlo así ?


Disculpa... para que necesitas una transacción cuando


estás con un
DataReader?
No entiendo bien que quieres decir



escribió en el


mensaje
news:101f701c43f1f$f6758710$
Hola a todos.

Estoy utilizando Transacciones y DataReader, y me da un
problema.

Inicio una transacción a partir de una conexión.

Con una conexión, creo un Command, e intento ejecutar
ExecuteReader()

Cierro DataReader, Close()

Posteriormente me da una excepción similar a esta:

"Fallo en Inserción: la conexión está cerrada"

En el CommandBehavior pongo Default y me vuelve a fallar.

Y si no cierro DataReader me sale algo similar a esto:
"Insert failed: There is already an open DataReader
associated with this Connection which must be closed
first".


Qué puedo hacer ?.


.

Respuesta Responder a este mensaje
#3 José Miguel Torres
21/05/2004 - 15:07 | Informe spam
Sería más conveniente, si te es posible, captar todos los datos necesarios
con dataReader, por ejemplo, primero y luego realizar la insercciones en una
única transacción.

A parte de que te funcionará, tendrás abierta la trans un determinado tiempo
menos...

Salduos


José Miguel Torres
jtorres_diaz~~ARROBA~~terra.es

escribió en el mensaje
news:102ae01c43f2e$fd5d6b60$

Yo inicio una transacción, y hago una serie de inserts, y
en un momento tengo que leer el valor de una tabla porque
neceisto su valor y por eso utilizo datareader para hacer
la select. Y ahí es cuando tengo el problema. Quizá no
debería hacerlo así ?


Disculpa... para que necesitas una transacción cuando


estás con un
DataReader?
No entiendo bien que quieres decir



escribió en el


mensaje
news:101f701c43f1f$f6758710$
Hola a todos.

Estoy utilizando Transacciones y DataReader, y me da un
problema.

Inicio una transacción a partir de una conexión.

Con una conexión, creo un Command, e intento ejecutar
ExecuteReader()

Cierro DataReader, Close()

Posteriormente me da una excepción similar a esta:

"Fallo en Inserción: la conexión está cerrada"

En el CommandBehavior pongo Default y me vuelve a fallar.

Y si no cierro DataReader me sale algo similar a esto:
"Insert failed: There is already an open DataReader
associated with this Connection which must be closed
first".


Qué puedo hacer ?.


.

Respuesta Responder a este mensaje
#4 Rodrigo Meneses
21/05/2004 - 15:50 | Informe spam
El problema radica en que cuando inicias una transacción que hace
operaciones tipo "update" sobre un conjunto de tablas (Upd1, Upd2, Upd3)
pero en el medio deseas hacer operaciones de lectura "select" el "select"
debe unirse a la transacción ya que si no ocurriría un deadlock. Así q sí es
conveniente que utilices transacciones con el DataReader.
Saludos,
-Rodrigo Meneses
Arquitecto de Sotware
www.vedantek.com



"José Miguel Torres" <jtorres_diaz~~ARROBA~~terra.es> wrote in message
news:
Sería más conveniente, si te es posible, captar todos los datos necesarios
con dataReader, por ejemplo, primero y luego realizar la insercciones en


una
única transacción.

A parte de que te funcionará, tendrás abierta la trans un determinado


tiempo
menos...

Salduos


José Miguel Torres
jtorres_diaz~~ARROBA~~terra.es

escribió en el mensaje
news:102ae01c43f2e$fd5d6b60$

Yo inicio una transacción, y hago una serie de inserts, y
en un momento tengo que leer el valor de una tabla porque
neceisto su valor y por eso utilizo datareader para hacer
la select. Y ahí es cuando tengo el problema. Quizá no
debería hacerlo así ?


>Disculpa... para que necesitas una transacción cuando
estás con un
>DataReader?
>No entiendo bien que quieres decir
>
>
>
> escribió en el
mensaje
>news:101f701c43f1f$f6758710$
>Hola a todos.
>
>Estoy utilizando Transacciones y DataReader, y me da un
>problema.
>
>Inicio una transacción a partir de una conexión.
>
>Con una conexión, creo un Command, e intento ejecutar
>ExecuteReader()
>
>Cierro DataReader, Close()
>
>Posteriormente me da una excepción similar a esta:
>
>"Fallo en Inserción: la conexión está cerrada"
>
>En el CommandBehavior pongo Default y me vuelve a fallar.
>
>Y si no cierro DataReader me sale algo similar a esto:
>"Insert failed: There is already an open DataReader
>associated with this Connection which must be closed
>first".
>
>
>Qué puedo hacer ?.
>
>
>.
>


Respuesta Responder a este mensaje
#5 Anonimo
24/05/2004 - 09:03 | Informe spam
Pero cómo soluciono mi problema con el DataReader:

>Estoy utilizando Transacciones y DataReader, y me da




un
>problema.
>
>Inicio una transacción a partir de una conexión.
>
>Con una conexión, creo un Command, e intento ejecutar
>ExecuteReader()
>
>Cierro DataReader, Close()
>
>Posteriormente me da una excepción similar a esta:
>
>"Fallo en Inserción: la conexión está cerrada"
>
>En el CommandBehavior pongo Default y me vuelve a




fallar.
>
>Y si no cierro DataReader me sale algo similar a esto:
>"Insert failed: There is already an open DataReader
>associated with this Connection which must be closed
>first".
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida