atualizar tabelas. alguem sabe?

Delphi

06/07/2003

Olá pessoal

Preciso atualizar Tabelas Paradox de mesma estrutura origem/destino e não estou conseguindo.

origem c:\Tabelas\xxx.db

destino c:\Tbls\xxx.db

até o momento estou usando database desktop do delphi, nele existe a opção insert/atualizar tabelas, mas é trabalhoso fazer tabela por tabela

tentei usar o componente UpdateSql e nem isso consigo acertar

alguem pode me ajudar? Dicas, exemplos, ...

agradeço pela atenção


Valdemar_d

Valdemar_d

Curtidas 0

Respostas

Edilcimar

Edilcimar

06/07/2003

no database desktop existe a opção copy que serve para copiar uma tabela por cima de outra


GOSTEI 0
Valdemar_d

Valdemar_d

06/07/2003

no database desktop existe a opção copy que serve para copiar uma tabela por cima de outra



tudo bem mas queria executar atraves de button pelo programa que foi criado. ou seja, usuario recebeu as tabelas de um destino e quer atualizar e inserir os novos registros (origem) que não tem em sua tabela.
como faço isso?


GOSTEI 0
Edilcimar

Edilcimar

06/07/2003

preferencialmente coloque todos os campos em variáveis e depois faça um append na(s) tabela(s) desejada(s)


GOSTEI 0
Valdemar_d

Valdemar_d

06/07/2003

preferencialmente coloque todos os campos em variáveis e depois faça um append na(s) tabela(s) desejada(s)



Ok. Estou trabalhando com modulos dados onde tenho minhas tabelas e querys.

você tem um algum exemplo para que possa adaptar no que pretendo fazer? Estou perdido nos comandos


GOSTEI 0
Valdemar_d

Valdemar_d

06/07/2003

preferencialmente coloque todos os campos em variáveis e depois faça um append na(s) tabela(s) desejada(s)



Ok. Estou trabalhando com modulos dados onde tenho minhas tabelas e querys.

você tem um algum exemplo para que possa adaptar no que pretendo fazer? Estou perdido nos comandos


GOSTEI 0
Edilcimar

Edilcimar

06/07/2003

with table1 do // tabela temporária
begin
append;
fieldbyname(´cliente´).asstring := cliente;
fieldbyname(´nascimento´).asstring := datanascimento;
post;
end;
aqui foi gerada uma tabela temporária para transmissao dos dados, porém pode ser retirado diretamente da tabela como o continuação abaixo
with table1 do
begin
first;
cliente := fieldbyname(´cliente´).asstring;
datanascimento := fieldbyname(´nascimento´).asstring;
with table2 do
begin
append;
fieldbyname(´cliente´).asstring := cliente;
fieldbyname(´nascimento´).asstring := datanascimento;
post;
end;
with table3 do
begin

end;
with tableN do
begin

end;
NEXT;
End;


GOSTEI 0
Valdemar_d

Valdemar_d

06/07/2003

with table1 do // tabela temporária begin append; fieldbyname(´cliente´).asstring := cliente; fieldbyname(´nascimento´).asstring := datanascimento; post; end; aqui foi gerada uma tabela temporária para transmissao dos dados, porém pode ser retirado diretamente da tabela como o continuação abaixo with table1 do begin first; cliente := fieldbyname(´cliente´).asstring; datanascimento := fieldbyname(´nascimento´).asstring; with table2 do begin append; fieldbyname(´cliente´).asstring := cliente; fieldbyname(´nascimento´).asstring := datanascimento; post; end; with table3 do begin end; with tableN do begin end; NEXT; End;


Edilcimar :D OK

Testei em uma tabela de um campo o mesmo chave primaria e funcionou com a adaptação que fiz no seu exemplo enviado.
Agora tenho que testar com varios campos e as demais para ter certeza se funciona bem.

Obrigado pela Ajuda.


procedure TFormAtualizar.Button2Click(Sender: TObject);
VAR marca : string;
begin

ModGeral.TblMar.DisableControls;
ModGeral.TblMar.First;

while (not ModGeral.TblMar.Eof) do
begin
ModGeral.table1.Edit;
with ModGeral.TblMar do
begin
// first;
marca := fieldbyname(´marca´).asstring;
with ModGeral.table1 do
begin
if not ModGeral.table1.Locate(´Marca´, marca,[]) then
begin
ModGeral.table1.Edit;
append;
fieldbyname(´marca´).asstring := marca;
post;
end
else
begin
ModGeral.table1.Edit;
Update;
fieldbyname(´marca´).asstring := marca;
post;
end
end;
{with table3 do
begin

end;
with tableN do
begin

end; }
NEXT;
End;
end;
ModGeral.TblMar.EnableControls;
end;


GOSTEI 0
Edilcimar

Edilcimar

06/07/2003

eu uso isto normalmente e funciona


GOSTEI 0
POSTAR