Fórum Insert Into com Datas #278512
22/04/2005
0
Ola pessoal,
Estou criando uma funcao para fazer a atualizacao das tabelas de um programa para outro:
Estou usando dois TQuery, um faz a consulta na tabela do programa antigo e o outro faz a insercao dos dados no programa atual. So que nao estou conseguindo fazer a insercao em um cado do tipo Date
Ex.
Query 1
Select * From Pagamentos order by Vencimento
While not Qry1.Eof do
begin
With Qry2 do
begin
Active :=False
SQL.Clean;
SQL.ADD(´INSERT INTO Pagamentos (Codigo,Vencimento, Descricao, etc) VALUES´)
SQL.ADD(´´´+ Qry1.FieldByName(´Codigo´).AsString + ´´,´);
SQL.ADD(´´´+ Qry1.FieldByName(´Vencimento´).AsString + ´´,´); // ERRO TYPE MISMATCH EXPRESSION
SQL.ADD(´´´+ Qry1.FieldByName(´Descricao´).AsString + ´´,´);
Etc...
ExecSQL;
Qry1.Next;
end;
Quanto tendo inserir um campo do tipo Date aparece o seguinte erro
ERRO TYPE MISMATCH EXPRESSION
O que estou fazendo errado? Tem uma forma melhor de fazer estas atualizacoes?
Estou criando uma funcao para fazer a atualizacao das tabelas de um programa para outro:
Estou usando dois TQuery, um faz a consulta na tabela do programa antigo e o outro faz a insercao dos dados no programa atual. So que nao estou conseguindo fazer a insercao em um cado do tipo Date
Ex.
Query 1
Select * From Pagamentos order by Vencimento
While not Qry1.Eof do
begin
With Qry2 do
begin
Active :=False
SQL.Clean;
SQL.ADD(´INSERT INTO Pagamentos (Codigo,Vencimento, Descricao, etc) VALUES´)
SQL.ADD(´´´+ Qry1.FieldByName(´Codigo´).AsString + ´´,´);
SQL.ADD(´´´+ Qry1.FieldByName(´Vencimento´).AsString + ´´,´); // ERRO TYPE MISMATCH EXPRESSION
SQL.ADD(´´´+ Qry1.FieldByName(´Descricao´).AsString + ´´,´);
Etc...
ExecSQL;
Qry1.Next;
end;
Quanto tendo inserir um campo do tipo Date aparece o seguinte erro
ERRO TYPE MISMATCH EXPRESSION
O que estou fazendo errado? Tem uma forma melhor de fazer estas atualizacoes?
Josimar
Curtir tópico
+ 0
Responder
Posts
22/04/2005
Rjun
Por que você não usa parâmetros em vez de enfiar tudo via código ?
Responder
Gostei + 0
22/04/2005
Arc@njo
Tente deste jeito:
SQL.Clean;
SQL.ADD(´INSERT INTO Pagamentos (Codigo,Vencimento, Descricao, etc) VALUES´)
SQL.ADD(QuotedStr(Qry1.FieldByName(´Codigo´).AsString)+´,´);
SQL.ADD(QuotedStr(FormatDateTime(´DD/MM/YYYY´,Qry1.FieldByName(´Vencimento´).AsDateTime))+´,´);
SQL.ADD(QuotedStr(Qry1.FieldByName(´Descricao´).AsString)+´,´);
Etc.
A Função QuotedStr ira colocar o campo entre aspas, e a Função FormatDateTime irá colocar a data no formato necessário, vale ai o teste se o formato aceito é DD/MM/YYYY ou MM/DD/YYYY, testa ai depois retorna.
Espero ter ajudado.
SQL.Clean;
SQL.ADD(´INSERT INTO Pagamentos (Codigo,Vencimento, Descricao, etc) VALUES´)
SQL.ADD(QuotedStr(Qry1.FieldByName(´Codigo´).AsString)+´,´);
SQL.ADD(QuotedStr(FormatDateTime(´DD/MM/YYYY´,Qry1.FieldByName(´Vencimento´).AsDateTime))+´,´);
SQL.ADD(QuotedStr(Qry1.FieldByName(´Descricao´).AsString)+´,´);
Etc.
A Função QuotedStr ira colocar o campo entre aspas, e a Função FormatDateTime irá colocar a data no formato necessário, vale ai o teste se o formato aceito é DD/MM/YYYY ou MM/DD/YYYY, testa ai depois retorna.
Espero ter ajudado.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)