Eugenio Gomes Posted September 1, 2011 Report Share Posted September 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. Quote Link to comment Share on other sites More sharing options...
0 Jhonas Posted September 1, 2011 Report Share Posted September 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 Quote Link to comment Share on other sites More sharing options...
0 Samara Posted September 1, 2011 Report Share Posted September 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... Quote Link to comment Share on other sites More sharing options...
0 Jhonas Posted September 2, 2011 Report Share Posted September 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 Quote Link to comment Share on other sites More sharing options...
Question
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 to comment
Share on other sites
3 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.