Fórum Gravação no BD Firebird só consiste quando fecho a aplicação #319559
19/04/2006
0
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
Curtir tópico
+ 0Posts
20/04/2006
Edilcimar
Gostei + 0
20/04/2006
Mvicente
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
Gostei + 0
20/04/2006
Ksotte
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
Gostei + 0
21/04/2006
Dli
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
Gostei + 0
21/04/2006
Aroldo Zanela
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;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)