Transação com ADO
Tenho uma tela te pagamento de compras e uma subtela que são os cheques que estou pagando a compra. Meu problema é o seguinte quando o usuario inclui o primeiro registro eu abro a transação e so do o commit quando o valor dos chegues for iqual ao da compra, mais enquanto não do o commit minha tabela fica bloqueada para outro usuario incluir, só libera quando o 1° usuario finaliza o pagamento por que executa o commit. Uso SQL Server 2000 e Delphi 7 e ADO, já tentei mudar a propriedade do ADOConnection IsolationLevel para ilReadUncommitted mais mesmo assim a tabela fica bloqueada.
Desde já abrigado
Desde já abrigado
Leorez
Curtidas 0
Respostas
Rbcaetano
26/08/2005
Cara, estou com o mesmo problema, apesar de que eu estou usando Firebird com ADO.
Tenho uma outra aplicação com BDE e estava com esse problema quando era SQL Server, daí logo após a conexão com o banco de dados eu coloquei esse comando ´SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED´ daí resolveu meu problema.Agora com ADO e Firebird não consegui resolver.Se vc achar uma solução por favor me avise também....rbcaetano@hotmail.com
Obrigado
Tenho uma outra aplicação com BDE e estava com esse problema quando era SQL Server, daí logo após a conexão com o banco de dados eu coloquei esse comando ´SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED´ daí resolveu meu problema.Agora com ADO e Firebird não consegui resolver.Se vc achar uma solução por favor me avise também....rbcaetano@hotmail.com
Obrigado
GOSTEI 0
Leorez
26/08/2005
rbcaetano ante meu sistema tambem era com BDE e eu usava esta comando tb mais quando passei para Ado esse comando não resolveu!
Se vc tiver uma resposta me avisa!
Desde já obrigado
Se vc tiver uma resposta me avisa!
Desde já obrigado
GOSTEI 0
Bon Jovi
26/08/2005
Dar um ExecSQL com ´SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED´ deveria funcionar, pelo menos no SQL Server. Mesmo assim não seria uma boa solução na maioria dos casos, já que perderá um pouco o controle de onde pode deixar ler dados bloqueados ou não, virando festa por default.
Tente usar o hint NOLOCK nos Selects onde houver necessidade. Ex.: select * from tabela (nolock)
Tente usar o hint NOLOCK nos Selects onde houver necessidade. Ex.: select * from tabela (nolock)
GOSTEI 0