Como usar Master Source com ADOQuery
Estou em Duvida como usar o MasterSource com o ADoQuery..
Tenho duas tabela a Mãe e a filha...
Porem eu só quero gravar a mãe depois de digitar todos os dados da filha.....ou seja serie em chache...
Se alguem souver como, me ajude...
Grato..
robson.
Tenho duas tabela a Mãe e a filha...
Porem eu só quero gravar a mãe depois de digitar todos os dados da filha.....ou seja serie em chache...
Se alguem souver como, me ajude...
Grato..
robson.
Robsons
Curtidas 0
Respostas
Paullsoftware
05/09/2005
e ai cara blz?
normalmente faço o seguinte:
para linkar duas tabelas usando Query eu faço o seguinte.
no evento OnNewRecord da tabela [b:dd6547b8f9]Detalhe[/b:dd6547b8f9] (filha) coloque:
[color=green:dd6547b8f9]//Deve-se gravar as alterações na tabela mãe antes de inserir novos dados na tabela filha, isso se for uma nova transação...[/color:dd6547b8f9]
if DsMae.State in [DsEdit,DsInsert] then QueryMae.Post;
QueryFilhaCodigo.AsIsteger := QueryMaeCodigo.AsInteger;
com isso já ta feita a ligação dos dados da tabela filha para os dados da tabela mãe.
para fazer uma especie de filtro nos dados da filha faça..:
SQL DA FILHA
do evento AffterScroll da tabela [b:dd6547b8f9]Master[/b:dd6547b8f9] (mãe)
QueryFilha.Close;
QueryFilha.Sql[1]:=´Where Codigo like ´ + chr(39) + IntToStr(QueryMaeCodigo.AsInteger) + Chr(39);
QueryFilha.Open;
espero ter ajudado, se ouver algum erro post aqui, pois, não testei o código acima mais acho que vai funcionar..
normalmente faço o seguinte:
para linkar duas tabelas usando Query eu faço o seguinte.
no evento OnNewRecord da tabela [b:dd6547b8f9]Detalhe[/b:dd6547b8f9] (filha) coloque:
[color=green:dd6547b8f9]//Deve-se gravar as alterações na tabela mãe antes de inserir novos dados na tabela filha, isso se for uma nova transação...[/color:dd6547b8f9]
if DsMae.State in [DsEdit,DsInsert] then QueryMae.Post;
QueryFilhaCodigo.AsIsteger := QueryMaeCodigo.AsInteger;
com isso já ta feita a ligação dos dados da tabela filha para os dados da tabela mãe.
para fazer uma especie de filtro nos dados da filha faça..:
SQL DA FILHA
SELECT * FROM FILHA WHERE CODIGO>0 ORDER BY NOME
do evento AffterScroll da tabela [b:dd6547b8f9]Master[/b:dd6547b8f9] (mãe)
QueryFilha.Close;
QueryFilha.Sql[1]:=´Where Codigo like ´ + chr(39) + IntToStr(QueryMaeCodigo.AsInteger) + Chr(39);
QueryFilha.Open;
espero ter ajudado, se ouver algum erro post aqui, pois, não testei o código acima mais acho que vai funcionar..
GOSTEI 0
Robsons
05/09/2005
Blz....
O meu problema e justamente este...
Eu não queria dar o post na tabela mãe, sem antes digitar todo o
conteudo das filhas...
eu faço isto com ClientDataset, porém tem dado alguns Erros..
Então estou tentando arrumar outra alternativa...
Valeu...
O meu problema e justamente este...
Eu não queria dar o post na tabela mãe, sem antes digitar todo o
conteudo das filhas...
eu faço isto com ClientDataset, porém tem dado alguns Erros..
Então estou tentando arrumar outra alternativa...
Valeu...
GOSTEI 0
Andre0201
05/09/2005
Robinsons, infelizmente não como fazer isso, a não ser que utilize tabelas Temporarias para tratar e depois incluir ou alterar no banco. Ou, seu banco não tenha relacionamentos, o que eu acho meio improvável.
Se seu banco possuir relacionamentos, você será obrigado a incluir a ´Mãe´ para depois incluir as filhas.
Mesmo utilizando tabelas Temporárias, você terá que artualizar no BD primeiro a a ´Mãe´ para depois atualizar as filhas.
Abraços
Se seu banco possuir relacionamentos, você será obrigado a incluir a ´Mãe´ para depois incluir as filhas.
Mesmo utilizando tabelas Temporárias, você terá que artualizar no BD primeiro a a ´Mãe´ para depois atualizar as filhas.
Abraços
GOSTEI 0