Como faço p/ copiar resgitros de uma tabela p/ outra?

Delphi

18/03/2003

Olá Galera,

Gostaria que vcs me dessem uma ajudinha. Tenho uma tabela cadastro e outra tabela Aniversariantes. Gostaria que ao dar um clique no botao, fosse feita uma copia de registros, da tabela de cadastro para a tabela de aniversariantes, onde ambas contem os mesmos campos, só que eu gostaria q só fosse copiados os registros dos aniversariantes do dia. Como faço isso?

Banco: DBF
Delphi: 6.0

Eu já tentei isso:

[i:7160cbcc27][b:7160cbcc27]Query1.SQL.Text:=´INSERT INTO Aniver SELECT * FROM Cadastro WHERE EXTRACT(DAY FROM NASC) = :DIA and EXTRACT(MONTH FROM NASC) = :MES´;
Query1.ParamByName(´DIA´).AsInteger := StrToInt( FormatDateTime( ´DD´,Date ) );
Query1.ParamByName(´MES´).AsInteger := StrToInt( FormatDateTime( ´MM´,Date ) );
Query1.ExecSQL;
Application.MessageBox(´Transferência bem Sucedida!!!´,´Retorno´,64);[/b:7160cbcc27][/i:7160cbcc27]

Mas nao funcionou, deu uma mensagem de erro: Invalid Parameter, nao sei o que fiz errado.

Obrigado :lol:

Vivian


Viviankb

Viviankb

Curtidas 0

Respostas

Poeta Noturno

Poeta Noturno

18/03/2003

faça o seguinte:

var
dia, diah, mes, mesh, ano, anoh: word;

while aniversariantes.recordcount > 0 do
aniversariantes.delete;

with cadastro do
begin
filtered := true;
first;
while not eof do
begin
decodedate(fieldbyname(´nascimento´).asdatetime,ano,mes,dia);
decodedate(date,anoh,mesh,diah);
if (dia = diah) and (mes = mesh) then
begin
aniversariantes.append;
aniversariantes.edit;
[inclui os dados de cada campo]
aniversariantes.post;
end;
next;
end;
end;

Espero que te sirva.

Um abraço

Poeta Noturno


GOSTEI 0
Anonymous

Anonymous

18/03/2003

Para que isso funcione os campos devem ter o mesmo nome, correto? se tiver um campo com o nome diferente, nao dará certo? Eu gostaria de selecionar os campos do tabela. Tipo Cadastro (Matricula, Nome, End, Bairro, etc).

Tem como?

Obrigado mesmo .. Já tentei várias coisas, mas nao deu certo.

Eu fiz o q vc me recomendou e deu o seguinte erro: Project ProjetoAniver.exe raised exception class EDatabaseError with message ´Query_Aniver. Cannot perform this operation on a closed dataset.


GOSTEI 0
POSTAR