João,
Se vc tiver um comando de INSERT / UPDATE ou DELETE após o BEGIN TRAN, o
SQLServer realmente entra em estado de LOCK (define uma aberura de
transação). Normalmente, neste estado ele trava apenas a página que contém o
registro que vc está querendo atualizar porém isso depende do seu comando
SQL de atualização. Muitas vezes, se a tabela é muito grande e envolve
muitas páginas fragmentadas, o SQL pode decidir por travar a tabela toda ou
até mesmo o banco.
Por este motivo, as transações dentro dos seus programas devem ser fechadas
o mais breve possível (através do comando COMMIT TRAN ou ROLLBACK TRAN).
Pelo que vi no seu e-mail não existe nenhum comando definindo o fim da
transação.

Sds,


Rodrigo Scarano
Target Sistemas
http://www.targetsis.com.br/
[EMAIL PROTECTED]



-----Mensagem original-----
De:     [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Em nome
de Joao Batista Sesconetto
Enviada em:     sexta-feira, 1 de outubro de 2004 08:18
Para:   Lista Centura (E-mail)
Assunto:        [sqlwin] Bloqueio no BD

Caros amigos,

  Esta acontecento um problema em um dos sistemas aqui na empresa que
trabalho que não consigo ver o que pode ser de jeito nenhum. O que acontece
é sempre quando executo o comando:

If NOT SqlPrepareAndExecute ( hSqlInclui, selecao ), Logo apos o banco trava
e ninguem faz mais nada.

O unico comando que fiz antes deste inserte foi:

  If NOT SqlPrepareAndExecute( hSqlInclui, 'BEGIN TRAN' )

O banco que uso é o SQL Server 2000. Se alguem puder me dar uma dica ou me
direcionar para qualquer solução ficarei muito grato.

Att. João B. Sesconetto
        ANTT/Brasília


==============================================
Lista de Centura SQLWindows
Administrador : [EMAIL PROTECTED]
[ http://www.centuraexplorer.com ]
Para sair desta lista mande mensagem para:
[EMAIL PROTECTED] sem nada no Subject e
com o comando a seguir no corpo da msg:
"unsubscribe sqlwin" (sem as aspas)
==============================================

<<attachment: winmail.dat>>

Responder a