Fórum Falha do DBExpress #329712
19/09/2006
0
Eu preciso travar o registro que esta sendo editado no banco de dados firebird. Travar é fácil eu uso no select where for with look, pronto o registro fica travado até que eu de um rollback ou commit, só que se outra pessoa na rede tentar editar o registro a aplicação fica travada devido o fato do dbexpress por default colocar a transação no modo WAIT, que é para aguardar mesmo.
Só que eu preciso que seja retornado imediatamente um erro para que eu trate esta situação, e é ai que entra o problema eu sei que a solução é eu mudar de WAIT PARA NOWAIT, só que onde muda isso, essa é a questão.
Ja o componente do IB tem essa opção no componente transaction.
Essa é uma dúvida que não quer calar.
Se alguem puder me ajudar ficaria muito agradecido.

Hllsilveira
Curtir tópico
+ 0Posts
19/09/2006
Cesar Romero
Eu uso DBExpress e fica assim a TSQLConnection:
with SQLConnection do
begin
ConnectionName := ´JazzDBDemos´;
DriverName := ´Interbase´;
GetDriverFunc := ´getSQLDriverINTERBASE´;
LibraryName := ´dbexpint.dll´;
LoginPrompt := False;
Params.Clear;
Params.Add(´DriverName=Interbase´);
Params.Add(´Database=..\00.Common\DB\JazzDBDemos.fdb´);
Params.Add(´RoleName=RoleName´);
Params.Add(´User_Name=sysdba´);
Params.Add(´Password=masterkey´);
Params.Add(´ServerCharSet=WIN1252´);
Params.Add(´SQLDialect=3´);
Params.Add(´BlobSize=-1´);
Params.Add(´CommitRetain=False´);
Params.Add(´WaitOnLocks=False´);
Params.Add(´ErrorResourceFile=´);
Params.Add(´LocaleCode=0000´);
Params.Add(´Interbase TransIsolation=ReadCommited´);
Params.Add(´Trim Char=True´);
VendorLib := ´gds32.dll´;
end;
Gostei + 0
20/09/2006
Hllsilveira
Não me retorna o erro.
Gostei + 0
21/09/2006
Leufmt
Quando o segundo usuário acessa um registro que já esta sendo usado ele recebe uma mensagem que o registro foi modificado por outro usuário e aconselho ele a clicar no botão atualizar.
Gostei + 0
25/09/2006
Hllsilveira
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)