 |
ActiveDelphi .: O site do programador Delphi! :.
|
| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
jeffgava Novato

Registrado: Sexta-Feira, 9 de Junho de 2006 Mensagens: 11
|
Enviada: Qua Nov 14, 2007 2:35 pm Assunto: dados de 2 tabelas em apenas 1 |
|
|
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 |
|
 |
forst Membro Junior


Registrado: Domingo, 26 de Junho de 2005 Mensagens: 367
|
Enviada: Qua Nov 14, 2007 3:08 pm Assunto: |
|
|
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 |
|
 |
gustavocco Administrador

Registrado: Sexta-Feira, 6 de Fevereiro de 2004 Mensagens: 4253 Localização: Chapecó - SC
|
Enviada: Qua Nov 14, 2007 3:11 pm Assunto: |
|
|
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 |
|
 |
DonOctavioDelFlores Colaborador

Registrado: Quarta-Feira, 12 de Setembro de 2007 Mensagens: 2630 Localização: Pra lá de Bagda
|
Enviada: Qua Nov 14, 2007 4:18 pm Assunto: |
|
|
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 |
|
 |
DonOctavioDelFlores Colaborador

Registrado: Quarta-Feira, 12 de Setembro de 2007 Mensagens: 2630 Localização: Pra lá de Bagda
|
|
| Voltar ao Topo |
|
 |
DonOctavioDelFlores Colaborador

Registrado: Quarta-Feira, 12 de Setembro de 2007 Mensagens: 2630 Localização: Pra lá de Bagda
|
Enviada: Qua Nov 14, 2007 4:21 pm Assunto: |
|
|
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 |
|
 |
Diogo_Cury Aprendiz

Registrado: Sexta-Feira, 9 de Junho de 2006 Mensagens: 139
|
Enviada: Qua Nov 14, 2007 9:17 pm Assunto: |
|
|
| 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+
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 |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|