Um clippeiro perdido no Delphi !

26/05/2003

1

Estou tentando desenvolver um sistema em Delphi 6.0 com Interbase, mas está meio dificil, a maioria dos livros e exemplos na internete é com componetes vinculados com o Banco (DBEdit, DBGrid etc...)

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


Responder

Posts

26/05/2003

Okama

Saudações Clippeiro, é sempre uma emoção encontrar um programador Clipper.

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;


Responder
Realmente nao entendi, oq vc quiz dizer por travar o registro, explique melhor


Responder

26/05/2003

Andersonc

O Interbase possui um mecanismo de controle interno de transações.
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.


Responder

26/05/2003

Okama

Não seria ´tratar´ ao invés de ´travar´ ??


Responder

26/05/2003

Alcino

amigoãp, quem escreve é um programador clipper e delphi ao mesmon tempo.
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


Responder

27/05/2003

Brazoli

também sou clippeiro, (meio enferrujado, mas sou).

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.


Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira