Fórum Falha do DBExpress #329712

19/09/2006

0

Olá pessoal estou com um problema ja algum tempo, e pelo o que estou vendo é uma falha devido a falta de informação e solução na internet.

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

Hllsilveira

Responder

Posts

19/09/2006

Cesar Romero

O componente de conexão que vc usa não tem a propriedade Params?


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;


Responder

Gostei + 0

20/09/2006

Hllsilveira

Caro amigo uso da mesma forma que você, testei também esta passagem de parâmetros que você me passou mas continua aguardando a liberação do registro da outra aplicação.
Não me retorna o erro.


Responder

Gostei + 0

21/09/2006

Leufmt

Eu utilizo o dbexpress com o InterBase, e faço o seguinte?
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.


Responder

Gostei + 0

25/09/2006

Hllsilveira

Mas como você faz este controle através de flag no banco de dados, o usuário consegue entrar no registro modificado, como é feito.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar