ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

dados de 2 tabelas em apenas 1

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
jeffgava
Novato
Novato


Registrado: Sexta-Feira, 9 de Junho de 2006
Mensagens: 11

MensagemEnviada: Qua Nov 14, 2007 2:35 pm    Assunto: dados de 2 tabelas em apenas 1 Responder com Citação

Galera, atualmente tenho duas tabelas d departamento separados...
Mas estamos precisando reformular o programa, e teremos apenas uma tabelas com todos os dados...
Como posso ou faço, para transferir os dados dessas duas tabelas para essa outra? Detalhe é preciso ter os mesmos dados?
Uso Paradox e Delphi 7.
Testei este código, mas não funciona:

Citação:

table2.Open;
tCad.Open;
Table2.First;
tCad.First;
while not table2.eof do//enquanto nao for o fim da tabela faca:
begin
tCad.Edit;
tCad.FieldByName('DataE').AsString :=Table2.FieldByName('Entrada').AsString;
tCad.FieldByName('Selo').AsString :=Table2.FieldByName('NSelo').AsString;
tCad.FieldByName('Empresa').AsString :=Table2.FieldByName('Empresa').AsString;
tCad.FieldByName('NFiscal').AsString :=Table2.FieldByName('NNota').AsString;
tCad.FieldByName('Mes').AsString :=Table2.FieldByName('Mes').AsString;
tCad.Append;
table2.next;
tCad.Next;
end;
ShowMessage('Dados copiados com sucesso');
end;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
forst
Membro Junior
Membro Junior


Registrado: Domingo, 26 de Junho de 2005
Mensagens: 367

MensagemEnviada: Qua Nov 14, 2007 3:08 pm    Assunto: Responder com Citação

Boa tarde,

utilize algo assim:

Código:

with TabelaAntiga do
begin
    First;
    while not eof do
    begin
        NovaTabela.Append;
        NovaTabela.FieldByname('campo1').AsString := FieldByName('campoTabelaAntiga1').AsString;
        NovaTabela.FieldByname('campo2').AsString := FieldByName('campoTabelaAntiga2').AsString;
        NovaTabela.FieldByname('campo3').AsString := FieldByName('campoTabelaAntiga3').AsString;
        NovaTabela.FieldByname('campo4').AsString := FieldByName('campoTabelaAntiga4').AsString;
        NovaTabela.Post;
        Next;
    end;
end;
Showmessage('Processo Executado!');


essa rotina ai funciona perfeitamente..
só adaptar ela ao seu sistema.. e é claro configurar as duas tabelas certinho e deixar elas ativadas.

Espero ter ajudado..
qualquer coisa posta ai...

[]s
_________________
Precisando de ícones para suas aplicações em Delphi?
www.soicones.com
Milhares de Ícones PNG de alta qualidade disponíveis em diversos tamanhos.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
gustavocco
Administrador
Administrador


Registrado: Sexta-Feira, 6 de Fevereiro de 2004
Mensagens: 4253
Localização: Chapecó - SC

MensagemEnviada: Qua Nov 14, 2007 3:11 pm    Assunto: Responder com Citação

Olá, seu codigo parece meio inconsistente. A tabCad está vazia??? se sim tente:

Código:

table2.Open;
tCad.Open;
Table2.First;
while not table2.eof do//enquanto nao for o fim da tabela faca:
begin
tCad.Insert;
tCad.FieldByName('DataE').AsString :=Table2.FieldByName('Entrada').AsString;
tCad.FieldByName('Selo').AsString :=Table2.FieldByName('NSelo').AsString;
tCad.FieldByName('Empresa').AsString :=Table2.FieldByName('Empresa').AsString;
tCad.FieldByName('NFiscal').AsString :=Table2.FieldByName('NNota').AsString;
tCad.FieldByName('Mes').AsString :=Table2.FieldByName('Mes').AsString;
tCad.Post;
table2.next;
end;
ShowMessage('Dados copiados ........');


flw.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
DonOctavioDelFlores
Colaborador
Colaborador


Registrado: Quarta-Feira, 12 de Setembro de 2007
Mensagens: 2630
Localização: Pra lá de Bagda

MensagemEnviada: Qua Nov 14, 2007 4:18 pm    Assunto: Responder com Citação

nao tem insert into select no paradox?
_________________
“The problem with the world is that everyone is a few drinks behind.” Humphrey Bogart
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
DonOctavioDelFlores
Colaborador
Colaborador


Registrado: Quarta-Feira, 12 de Setembro de 2007
Mensagens: 2630
Localização: Pra lá de Bagda

MensagemEnviada: Qua Nov 14, 2007 4:19 pm    Assunto: Responder com Citação

http://forum.devmedia.com.br/viewtopic.php?p=185761&sid=7364d201eb8f6a6196e17deb579f9ef0
_________________
“The problem with the world is that everyone is a few drinks behind.” Humphrey Bogart
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
DonOctavioDelFlores
Colaborador
Colaborador


Registrado: Quarta-Feira, 12 de Setembro de 2007
Mensagens: 2630
Localização: Pra lá de Bagda

MensagemEnviada: Qua Nov 14, 2007 4:21 pm    Assunto: Responder com Citação

Larry Killen <LarryKillen> wrote:

> Is it possible to do an Insert Select in Paradox along the lines of:
>
> Insert Into Diagnostic (DateWeighed, TimeWeighed, LineID, ShackleNbr,
> WeightLbs)
> Values
> (Select DateWeighed, TimeWeighed, LineID, ShackleNbr,
> (Cast(EngUnits As Float)/Counts_Per_Pound) WeightLbm
> From ProductionData_142005
> Where TimeWeighed > '7:00:00 AM'
> and ShackleNbr in (2,4,5,6,7))

Yes, but you have to remove the Values keyword, and the parenthesis arou=
nd =

the Select statement. Odd, but it works...:

Insert Into Diagnostic (DateWeighed, TimeWeighed, LineID, ShackleNbr,
WeightLbs)
Select DateWeighed, TimeWeighed, LineID, ShackleNbr,
(Cast(EngUnits As Float)/Counts_Per_Pound) WeightLbm
From ProductionData_142005
Where TimeWeighed > '7:00:00 AM'
and ShackleNbr in (2,4,5,6,7)

-- =

Good luck,
SverreEH
_________________
“The problem with the world is that everyone is a few drinks behind.” Humphrey Bogart
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Diogo_Cury
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 9 de Junho de 2006
Mensagens: 139

MensagemEnviada: Qua Nov 14, 2007 9:17 pm    Assunto: Responder com Citação

Código:
procedure CopiarRegistro(TblOrigem,TblDestino : TDataSet);
var
  Status : TDataSetState;
  I : Integer;
  CampoOrigem , CampoDestino : TField;
begin
    Status := TblDestino.State;
    //
    if not (Status in [dsEdit, dsInsert]) then
       TblDestino.Append;
    for I := 0 to TblDestino.Fields.Count-1 do
    begin
        CampoOrigem  := TblOrigem.FindField(TblDestino.Fields[i].FieldName);
        CampoDestino := TblDestino.Fields[i];
        if Assigned( CampoOrigem ) and
           Assigned( CampoDestino ) and
           not CampoOrigem.IsNull then
           begin
               CampoDestino.Value := CampoOrigem.Value;
           end;
    end;
    if not (Status in [dsEdit, dsInsert]) then
       TblDestino.Post;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
    TblOrigem.DisableControls;
    TblDestino.DisableControls;
    TblOrigem.First;
    while not TblOrigem.Eof do
    begin
        CopiarRegistro( TblOrigem , TblDestino );
        TblOrigem.Next;
    end;
    TblOrigem.EnableControls;
    TblDestino.EnableControls;
end;


Essa rotina do CopiarRegistro tive q criar la no trampo pq é mt relatorio (Nois usamos TApolloTable) e ClientDataSet, ai eu crio uma Copia da tabela no ClientDataSet com outra procedure e mando ir adicionando só os registros Validos, depois eu brinco com o ClientDataSet + QuickRep.... já tou falando d+ Very Happy

Se precisar d + ajuda é só postar.

PS: Só serão copiados OS CAMPOS QUE FOREM IGUAIS NAS 2 TABELAS E ELES TEM Q SER DO MSM TIPO, EX: CODIGO TIPO STRING E CODIGO TIPO INTEGER EU NAO TESTEI + PROVAVELMENTE VAI DA ERRO.


Diogo.
_________________
Solução Completa pra Nota Fiscal Eletrônica:
Componentes em Delphi com manual completo,
intereçados: diogo_cury_flores@hotmail.com
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB