Fórum SQL - Insert #162758
27/05/2003
0
Quero inserir dados de outra tabela.
O que estou fazendo de errado?????
Obrigado!
with DmNF.ADOQ_INF_SaidaCadastro do
begin
close;
sql.Clear;
sql.add(´Insert into Tab_INF_Saida´);
sql.add(´(Num_Nf,Num_Pro,Qtd,Valor_Unit,Dt_Cad)´);
sql.add(´values (´ + inttostr (DmNf.ADOQ_NF_SaidaCadastroNum_NF_Emp.Value) + ´,´
+ inttostr(Dm.ADOQ_PedProPed_Num_Prod.Value) + ´,´
+ inttostr(Dm.ADOQ_PedProPed_Qtd_Prod.Value) + ´,´
+ floattostr(Dm.ADOQ_PedProPed_Valor_Prod.Value) + ´,´
+ datetostr(Date) + ´)´);
ExecSql;
end;
Vscruz
Curtir tópico
+ 0Posts
27/05/2003
Andersonc
1 - O float to str converte para o tipo float definido em configurações regionais, portanto dois e meio seriam 2,5 mas o banco de dados aceita somente 2.5
2 - Com a data ocorre a mesma coisa, vc deve utilizar o formato definido no banco de dados, o padrão di IB é MM-DD-AAAA.
Sugestão: use parâmetros.
Exemplo:
with DmNF.ADOQ_INF_SaidaCadastro do
begin
close;
sql.Clear;
sql.add(´Insert into Tab_INF_Saida´);
sql.add(´(Num_Nf,Num_Pro,Qtd,Valor_Unit,Dt_Cad)´);
sql.add(´values (:NumNF, :Num_Pro, :Qtd, :Valor_Unit, :Dt_Cad) ´);
Params.ParamByName(´NumNF´).Value := DmNf.ADOQ_NF_SaidaCadastroNum_NF_Emp.Value;
Params.ParamByName(´Num_Pro´).Value := Dm.ADOQ_PedProPed_Num_Prod.Value;
Params.ParamByName(´Qtd´).Value := Dm.ADOQ_PedProPed_Qtd_Prod.Value;
Params.ParamByName(´Valor_Unit´).Value := Dm.ADOQ_PedProPed_Valor_Prod.Value;
Params.ParamByName(´Dt_Cad´).Value := Date
ExecSql;
end;
Desta forma o Delphi se vira para realizar as conversões de tipos de dados.
Gostei + 0
27/05/2003
Ninorvdc
SE É STRING USE ASPAS... MAS O QUE MAIS COSTUMA NO ENGANAR É A INSERÇÃO DE CAMPOS DATA, CONSIDERANDO QUE CADA BANCO DE DADOS TRATA DATA DE UMA FORMA DIFERENTE.
VERIFIQUE SE ESSE BANCO DE DADOS QUE USA NÃO SE DEVE INVERTER
O MÊS COM O DIA. (EX. 05/21/2003) OU SE DEVE USAR ASPAS OU NÃO.
EXEMPLO INSERT INTO TABLE DATA VALUES ´01/01/2003´
Ou tira a data só pra certificar-se que o problema não é a data.
Gostei + 0
27/05/2003
Vscruz
Obrigado!!
Victor
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)