Um clippeiro perdido no Delphi !
26/05/2003
0
Alguem tem algum exemplo de um sistema em Delphi, que mostre como faço para travar um registro, tratamento normais feito pelo bom e velho clipper.
Obrigado!
Silvio Morelo
Santo André - SP
Silviomorelo
Posts
26/05/2003
Okama
Para tal tratamaneto verifique o Help do componente que você está usando.
IbTable1.Insert;
IbTable1.FieldByName(´Codigo´).Value := 10;
IbTable1.FieldByName(´Nome´).Value := ´Clipper´;
IbTable1.FieldByName(´Descricao´).Value := ´A Melhor Ferramenta para DOS´;
IbTable1.Post;
----
Edit1.Text := IbTable1.FieldByName(´Nome´).AsString;
----
IbTable1.Delete;
----
IbTable1.Edit;
<comandos>
IbTable1.Post;
26/05/2003
Isaac Cavalcanti
26/05/2003
Andersonc
Neste caso, em delphi com Interbae, não é necessário realizar o controle de bloqueio de registro pela aplicação.
O interbase trabalha com uma forma otimista de gravação do registro, de modo a tratar a concorrência no momento da efetivação do registro, se o mesmo estiver em edição retorna um erro a aplicação denominado Record locked... Basta tratar este erro e tentar novamente.
Você também pode controlar a transação, com TDATABASE.StartTransaction; TDATABASE.COMMIT; TDATABASE.ROLLBACK, isto para o caso da utilização do BDE. Para IBX ou DBExpress o processo é quase parecido.
Exemplo:
dbteste.StartTransaction;
...
try
// manipulações com table ou query, efetivando alterações em banco de dados
...
dbteste.commit;
except
dbteste.Rollback
end;
ou seja, executa um atransação em um bloco protegido, caso não consiga
executar até a efetivação do commit (causando uma excessão) desfaz toda a alteração feita desde o momento do starttransaction.
26/05/2003
Alcino
Para voce travar um registro, basta colocá-lo em modo de edição.
Ex.:
tbcliente.active:=true;
tbcliente.first;
tbcliente.edit; // coloca em edição e trava o registro automaticamente.
tbcliente.post; // grava e destrava o registro
__________________________________
ALSOFT -Sistemas e Softwares
http://alsoft.cjb.net
(0xx91) 9634-0617/9166-3386
Alcino Pamplona
27/05/2003
Brazoli
Veja bem, se vc tem certeza que seu sistema vai rodar somente no Interbase, aconselho a usar os componentes da Palheta Interbase.
IbDatabase, IbTransaction e o IbQuery. É uma maravilha, pelos menos penso assim.
Quanto ao travamento, como ja disseram os colegas, o interbase já faz a parte dele, mas claro que vc pode criar suas próprias regras. Mas é sempre bom deixar o próprio gerenciador fazer o que sabe fazer..
Seja bem vindo à comunidade delphi.
Clique aqui para fazer login e interagir na Comunidade :)