Eugenio Gomes Postado Setembro 1, 2011 Denunciar Share Postado Setembro 1, 2011 1ª.TABELA loginbase.IBClientDataSet1.Close; loginbase.IBClientDataSet1.CommandText:='select * from prf_profissao order by prf_profissao'; loginbase.IBClientDataSet1.Active:=true; diver := Tdiver.Create(diver);// diver.Caption := 'Profissões'; diver.DBGrid1.Columns.Add; diver.DBGrid1.Columns.Items[0].FieldName:= 'prf_profissao'; diver.DBGrid1.Columns.Items[0].Title.caption :='Profissão';// diver.ShowModal; Não e necessario ClientDataSet1.SaveToFile('c:\teste.xml');----------------------------------------------- Ate aqui tudo correcto----------------------------------------------- 2ª.TABELA loginbase.IBClientDataSet1.Close; loginbase.IBClientDataSet1.CommandText:='select * from tit_titulo order by tit_titulo'; loginbase.IBClientDataSet1.Active:=true; diver := Tdiver.Create(diver); diver.Caption := 'Titulos'; diver.DBGrid1.Columns.Add; diver.DBGrid1.Columns.Items[0].FieldName:= 'tit_titulo'; diver.DBGrid1.Columns.Items[0].Title.caption :='Titulo';// diver.ShowModal; Aqui esta o problema se eu escrever a seuinte linha de codigo, ClientDataSet1.SaveToFile('c:\teste.xml'); vou eliminar o conteudo ta 1ª.TABELA. Ora o que necessito e de fazer um APPENDTOFILE? para obter o conteudo da duas tabelas. Se porventura existir uma solução agradeço. Em Abraço Eugenio Gomes. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Setembro 1, 2011 Denunciar Share Postado Setembro 1, 2011 voce terá que fazer uma união entre as 2 tabelas usando um campo comum às duas.exemplo:SELECT prf_profissao.COD, prf_profissao.id_profissao, prf_profissao.profissao, tit_titulo.id_titulo, tit_titulo.titulo FROM prf_profissao INNER JOIN tit_titulo ON (prf_profissao.COD = tit_titulo.COD) OBS: Não use o mesmo nome de campo para o nome da tabela, isso causa problemasveja que existe um campo COD para a tabela prf_profissao eexiste um campo COD para a tabela tit_titulodessa maneira voce pode unir as duas tabelas e gerar apenas um resultado no ClientDataSet e assim poder salvar o seu conteudoClientDataSet1.SaveToFile('c:\teste.xml');abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Samara Postado Setembro 1, 2011 Denunciar Share Postado Setembro 1, 2011 é como o Jhonas falo, você precisa ter um campo que faça referencia entre as duas tabelas ou até uma FK, dai faz um join... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Setembro 2, 2011 Denunciar Share Postado Setembro 2, 2011 Reportado:Provalvelmente não me terei explicado da forma mais correcta. As duas tabelas não teem qualquer ligação entre si logo o que sera pretendido e o seguinte: quando abro a 1ª tabela e depois executo o savetofile vou criar o ficheiro xml com o conteudo da tabela. logo quando abro a 2ª.tabela não posso executar o savetofile porque desto modo vou eliminar o conteudo inicial, portanto penso que teria de ser com um (APPEND to file)? E estou somente a falar de 2 tabelas quando o ficheiro xml que pretendo construir sera composto com algumas dezenas de tabelas sem qualquer relação entre si. Se por possivel agradeço a ajuda. um abraço.Eugenio... se voce quiser salvar tabelas com estrutras direferentes em um unico XML não vai conseguir, talvez tenha que fazer alguma transformaçãohttp://edn.embarcadero.com/article/37321abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Eugenio Gomes
1ª.TABELA
loginbase.IBClientDataSet1.Close;
loginbase.IBClientDataSet1.CommandText:='select * from prf_profissao order by prf_profissao';
loginbase.IBClientDataSet1.Active:=true;
diver := Tdiver.Create(diver);
// diver.Caption := 'Profissões';
diver.DBGrid1.Columns.Add;
diver.DBGrid1.Columns.Items[0].FieldName:= 'prf_profissao';
diver.DBGrid1.Columns.Items[0].Title.caption :='Profissão';
// diver.ShowModal; Não e necessario
ClientDataSet1.SaveToFile('c:\teste.xml');
-----------------------------------------------
Ate aqui tudo correcto
-----------------------------------------------
2ª.TABELA
loginbase.IBClientDataSet1.Close;
loginbase.IBClientDataSet1.CommandText:='select * from tit_titulo order by tit_titulo';
loginbase.IBClientDataSet1.Active:=true;
diver := Tdiver.Create(diver);
diver.Caption := 'Titulos';
diver.DBGrid1.Columns.Add;
diver.DBGrid1.Columns.Items[0].FieldName:= 'tit_titulo';
diver.DBGrid1.Columns.Items[0].Title.caption :='Titulo';
// diver.ShowModal;
Aqui esta o problema
se eu escrever a seuinte linha de codigo,
ClientDataSet1.SaveToFile('c:\teste.xml');
vou eliminar o conteudo ta 1ª.TABELA.
Ora o que necessito e de fazer um APPENDTOFILE?
para obter o conteudo da duas tabelas.
Se porventura existir uma solução agradeço.
Em Abraço
Eugenio Gomes.
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.