Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rafael Porcidonio

Problemas com transação

Recommended Posts

Olá Pessoal,Estava desenvolvendo uma aplicação em ASP.NET com SQL Server 2000 como banco de dados, porém algo estranho está acontecendo... Observem o código: Dim conn As New SqlConnection("") Dim t As SqlTransaction Dim cmd As SqlCommand Dim rs As SqlDataReader conn.Open() t = conn.BeginTransaction() cmd = New SqlCommand("INSERT INTO tb_Vendedor ...", conn, t) cmd.ExecuteNonQuery() cmd = New SqlCommand("SELECT * FROM tb_Vendedor", conn) rs = cmd.ExecuteReader() rs.Close() t.Commit()Gostaria de saber pq a execução para na linha: " rs = cmd.ExecuteReader()"? Se estou debugando ao chegar nessa linha, o marcador muda de amarelo para verde e tudo para. Li em alguns lugares q isso teria a ver com o bloqueio q é feito por eu estar com uma transação aberta na tabela. Existe algum modo de contornar isso, no meu caso eu não precisaria q o DataReader levasse em conta a informação q eu estava tentando incluir no começo do código...Desde já agradeço,Rafael Porcidonio

Compartilhar este post


Link para o post
Compartilhar em outros sites

uma forma seria você usar o readuncommitted, só que ele vai ler dados que ainda não foram "comitados".

 

cmd = New SqlCommand("SELECT * FROM tb_Vendedor (readuncommitted)", conn)

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim ctz, mas é com dois t, você escreveu com um só... e tem que estar entre parenteses

 

outra opção é o nolock tem a mesma função do readuncommitted

 

cmd = New SqlCommand("SELECT * FROM tb_Vendedor (nolock)", conn)

falows

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

AleCamilo,

 

com o readuncommitted você consegue ler dados de uma ou mais tabelas que estejam em transação e que ainda não foram confirmadas com o commit ou desfeitas com o rollback...

deve-se tomar cuidado com leituras deste tipo pois você pode estar lendo informações que serão desfeitas com o rollback

 

veja excelentes artigos sobre este assunto:

http://www.imasters.com.br/artigo.php?cn=3753&cc=86

http://www.linhadecodigo.com.br/artigos.asp?id_ac=666

 

falows

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.