Fórum ajuda com tabela temporária #266320
21/01/2005
0
Olá!
Tudo bem?
Eu tenho uma SQL em que eu faço um join com duas tabelas e gravo o resultado em uma tabela temporária no ClientDataSet.
Mas agora eu preciso ler essa tabela temporária para poder fazer alguns
filtros.
Eu vi em algum lugar que seria assim
select * from #temp
Que se colocaria na frente do nome da tabela, mas como criar esse
nome da tabela temporária no ClientDataSet.
Abaixo está o código que eu fiz.
Está é a primeira vez que eu uso tabela temporária e aprendi pesquisando
em artigos e foruns e pode ser que eu também esteja fazendo alguma coisa errada ou até mesmo se existe alguma outra forma de se fazer isso uma tabela temporária.
Desde já agradeço a ajuda recebida.
Este aqui é o que eu imagino que eu deva fazer, mas não sei o que em fazer
em relação a esta parte.
SQL.Add(´From #temp´);
Tudo bem?
Eu tenho uma SQL em que eu faço um join com duas tabelas e gravo o resultado em uma tabela temporária no ClientDataSet.
Mas agora eu preciso ler essa tabela temporária para poder fazer alguns
filtros.
Eu vi em algum lugar que seria assim
select * from #temp
Que se colocaria na frente do nome da tabela, mas como criar esse
nome da tabela temporária no ClientDataSet.
Abaixo está o código que eu fiz.
Está é a primeira vez que eu uso tabela temporária e aprendi pesquisando
em artigos e foruns e pode ser que eu também esteja fazendo alguma coisa errada ou até mesmo se existe alguma outra forma de se fazer isso uma tabela temporária.
Desde já agradeço a ajuda recebida.
with IBQuery1 do begin Close; SQL.Clear; SQL.Add(´select A.CODIGO, A.TITULO, A.PARCELA, A.DOCUMENTO, A.SERIE, A.DT_EMIS, A.DT_VCTO, A.VLR_TIT,´); SQL.Add(´SUM(B.VLR_PAGO) TOT_PAGO,´); SQL.Add(´MAX(B.DT_MOVIMENTO) DATA_MOVIMENTO´); SQL.Add(´From CAD_RECEBIMENTO A´); SQL.Add(´Left Join CAD_RECEBIMENTO_MOV B´); SQL.Add(´On(A.CODIGO = B.CODIGO and A.TITULO = B.TITULO and A.PARCELA = B.PARCELA)´); SQL.Add(´GROUP BY A.CODIGO, A.TITULO, A.PARCELA, A.DOCUMENTO, A.SERIE, A.DT_EMIS, A.DT_VCTO, A.VLR_TIT´); Open; end; IBQuery1.First; while not IBQuery1.Eof do begin with ClientDataSet1 do begin Open; Insert; FieldByName(´CODIGO´).Value := IBQuery1.FieldByName(´CODIGO´).AsInteger; FieldByName(´TITULO´).Value := IBQuery1.FieldByName(´TITULO´).AsInteger; FieldByName(´PARCELA´).Value := IBQuery1.FieldByName(´PARCELA´).AsInteger; FieldByName(´DT_EMIS´).Value := IBQuery1.FieldByName(´DT_EMIS´).AsDateTime; FieldByName(´DT_VCTO´).Value := IBQuery1.FieldByName(´DT_VCTO´).AsDateTime; FieldByName(´DT_MOVIMENTO´).Value:= IBQuery1.FieldByName(´DATA_MOVIMENTO´).asDateTime; FieldByName(´VLR_TIT´).Value := IBQuery1.FieldByName(´VLR_TIT´).AsFloat; FieldByName(´VLR_PAGO´).Value := IBQuery1.FieldByName(´TOT_PAGO´).asFloat; Post; IBQuery1.Next; end; end;
Este aqui é o que eu imagino que eu deva fazer, mas não sei o que em fazer
em relação a esta parte.
SQL.Add(´From #temp´);
ClientDataSet1.First; while not ClientDataSet1.Eof do begin with IBQuery2 do begin Close; SQL.Clear; SQL.Add(´select *´); SQL.Add(´From temp´); SQL.Add(´Where ...´); Open; ClientDataSet1.Next; end; end;
Joao_schroeder
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)