Substituição de valores de campos em 2 tabelas (Paradox)
13/09/2004
0
Tenho duas tabelas em paradox:
Table1:
CODIGO............N
NOME................A....50
Table2:
CODIGO............N
NOME................A....50
DATA_NASC......D
CONJUGE..........A....50
Abri um form, inseri duas tables, um BitBtn e gostaria que, ao clicar no botão, ocorra a seguinte alteração na table2:
Alterar o Código da Table2 caso o nome seja igual ao da Table1, independente qual código esteja cadastrado na Table2.
Exemplo: Digamos que na Table1 tenha:
95551 JOAO DA SILVA
95552 JOSE GERALDO
95553 MARIA APARECIDA
Caso haja um JOAO DA SILVA na Table2, o código do JOAO DA SILVA na Table2 altere para 95551.
Caso haja um JOSE GERALDO na Table2, o código de JOSE GERALDO na Table2 altere para 95552.
E assim sussessivamente, até o final da table1. O objetivo é alterar todos os códigos da Table2 com os da Table1 desde que os nomes sejam iguais. Talvez um comando While resolva, mas já quebrei a cabeça e não consegui.
Agradeço a quem puder ajudar, obrigado.
Marcio_soares
Posts
13/09/2004
Dataclass
Olha você vai ter que fazer um ´loop´ percorrendo todos os registros da Table2.Neste loop você pega e verifica se o cara existe na Table1 ,caso exista é só fazer um UPDATE na Table2 usando o codigo encontrado na Table1.
Se tiver bronca implementando é só falar que quando tiver 5 minutos livres agente desenrola!
Abraço!
13/09/2004
Marcio_soares
Table1.first;
begin
While not Table2.eof do
begin
If Table1NOME = Table2NOME;
Table2CODIGO := TABLE1CODIGO;
end;
Table1.next;
end;
Mas não deu certo, onde errei?
Obrigado.
13/09/2004
Gandalf.nho
Table1.first;
While not Table2.eof do
begin
If Table1NOME.Value = Table2NOME.Value then
begin
Table2.Edit;
Table2CODIGO.Value := TABLE1CODIGO.Value;
Table2.Post;
end;
end;
Table1.next;
13/09/2004
Marcio_soares
Se alguém tiver mais idéias, por favor, me ajude.
Por enquanto, obrigado.
14/09/2004
Marcio_soares
Ontem à noite, voltei a mexer no sistema, refiz a rotina, conforme abaixo:
[b:5367f4f704][b]procedure TFORMRecusados.BitBtn1Click(Sender: TObject):[/b:5367f4f704]
begin[/b]
Table1.[b:5367f4f704]first[/b:5367f4f704];
Table2.[b:5367f4f704]first[/b:5367f4f704];
...[b:5367f4f704]while not [/b:5367f4f704]Table1.eof do
.......[b:5367f4f704]begin[/b:5367f4f704]
..........[b:5367f4f704]while not [/b:5367f4f704]Table2.eof do
..............[b:5367f4f704]begin[/b:5367f4f704]
..................Table2.[b:5367f4f704]Edit[/b:5367f4f704];
..................[b:5367f4f704]If [/b:5367f4f704]Table1NOME.value = Table2NOME.value [b:5367f4f704]then
[/b:5367f4f704]
..................Table2CODIGO.value := Table1CODIGO.value;
..................Table2.[b:5367f4f704]post[/b:5367f4f704];
..................Table2.[b:5367f4f704]next;[/b:5367f4f704]
..............[b:5367f4f704]end[/b:5367f4f704];
.......Table1.next;
.......[b:5367f4f704]end[/b:5367f4f704];
[b:5367f4f704]end[/b:5367f4f704];
[b:5367f4f704]end[/b:5367f4f704].
Ocorreu o seguinte:
Está lendo somente o primeiro registro da Table1 e alterando o código correspondente na Table2.
Não está lendo os demais registros da Table1.
O que falta para que seja efetuada a leitura de todos os registros na Table1?
Aguardo resposta, obrigado.
gandalf.nho obrigado por sua ajuda, pois foi imprescindível para estar dando certo.
14/09/2004
Rômulo Barros
UPDATE TABLE2 SET CODIGO = ( SELECT T1.CODIGO FROM TABLE1 T1 WHERE T1.NOME = NOME )
:wink: :wink: :wink: :wink:
Clique aqui para fazer login e interagir na Comunidade :)