Um clippeiro perdido no Delphi !
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
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
Curtidas 0
Respostas
Okama
26/05/2003
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;
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;
GOSTEI 0
Isaac Cavalcanti
26/05/2003
Realmente nao entendi, oq vc quiz dizer por travar o registro, explique melhor
GOSTEI 0
Andersonc
26/05/2003
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.
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.
GOSTEI 0
Okama
26/05/2003
Não seria ´tratar´ ao invés de ´travar´ ??
GOSTEI 0
Alcino
26/05/2003
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
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
GOSTEI 0
Brazoli
26/05/2003
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.
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.
GOSTEI 0