Fórum Gravação no BD Firebird só consiste quando fecho a aplicação #319559

19/04/2006

0

Pessoa, desculpem a minha ignorância, mas tô começando agora !!!

Eu tenho um formulário com um DBGrid aonde eu escolho um determinado cliente, dou 2 cliques no cliente que eu quero, neste momento abre outro formulário (ainda não consegui posicionar o registro deste formulário no cliente que eu cliquei no DBGrid, mas tudo bem esse é outro assunto) que tem o cadastro completo do cliente.
Clico no botão novo (dtm.iTablePropr.insert), insiro uma nova propriedade para o cliente 1 (este cliente já tinha 1 propriedade cadastrada) e depois clico em Salvar (dtm.iTablePropr.post) e fecho o formulário.
Quando volto para o formulário aonde tem o DBGrid (o qual eu escolho um determinado cliente) e faço a pesquisa das propriedades cadastradas para o cliente 1, e só retorna 1 (uma); deveria voltar 2(duas) porque eu acabei de cadastrar outra. Ai quando eu fecho a aplicação e compilo novamente e refaço a pesquisa, tá lá a MÁRDITA propriedade do cliente !!! o que tô fazendo de errado ??? deveria atualizar sem ter que sair da aplicação.
Obs: uso BD Firebird x Delphi 7

Abraço
Obrigado


Ksotte

Ksotte

Responder

Posts

20/04/2006

Edilcimar

Vc não está gravando em cache?


Responder

Gostei + 0

20/04/2006

Mvicente

Amigo,

Se vc estiver usando componentes da palheta Interbase, vc deve dar um commmit na transação, se vc estiver usando dbExpress, não esqueça de dar um ApplyUpdates(0) após o post!
Qto a vc posicionar o registro no form, qdo clica no dbgrid, uma das maneiras q vc pode fazer é guardar o id do registro e qdo abrir o form dar um locate..Essa é uma entre várias...

Espero ter ajudado!

Marcelo


Responder

Gostei + 0

20/04/2006

Ksotte

Marcelo, Bom Dia !

1)
Eu estou usando componentes da Paleta Interbase; estou dando commit mas na tabela eu tenho que dar um commit (nometabela.commit) isso depois do post; eu teria que fazer isso na transação ? (nometransação.commit) ??

2)
Me explica melhor como faz para posicionar o registro do outro formulário, a partir do click no DBGrid (por favor é claro rs...)

Abração
Kleber


Responder

Gostei + 0

21/04/2006

Dli

Para localizar/posicionar no registro:

tabela.locate(´nomedocampo´,codigo,[]).asInteger;


onde codigo pode ser um edit,dbEdit ou o proprio codigo.
Normalmente pego o codigo em um DBEdit que tem a informação gravada na tabela.

[]´s

Jose


Responder

Gostei + 0

21/04/2006

Aroldo Zanela

Colega,

Dê um duplo clique no componente de transação e selecione a segunda opção do grupo Transaction properties, ou seja, read committed. No evento afterpost de seus objetos Table, queries, ou DataSets adicione o seguinte:

NomeObjetoTransação.CommitRetaining;



Responder

Gostei + 0

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

Aceitar