Fórum Como faço p/ copiar resgitros de uma tabela p/ outra? #146984
18/03/2003
0
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
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
Curtir tópico
+ 0
Responder
Posts
18/03/2003
Poeta Noturno
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
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
Responder
Gostei + 0
18/03/2003
Anonymous
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.
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.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)