ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Erro delphi [firedac][phys][ora] ora -01722: invalid number

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
souza2090
Novato
Novato


Registrado: Quinta-Feira, 5 de Abril de 2018
Mensagens: 2

MensagemEnviada: Qui Abr 05, 2018 11:13 am    Assunto: Erro delphi [firedac][phys][ora] ora -01722: invalid number Responder com Citação

procedure TSqlNcm.InsertNcm;
VAR
SeqCtrlNcmUf : String;
SQLInsertNcm: String;
CONEXAOfIREDAC : TDMCONEXAOFIREDAC;
begin
SeqCtrlNcmUf := 'SEQCTRLNCMUF.NEXTVAL';
SQLInsertNcm := 'INSERT INTO CTRLNCMUF CTRL ' + sLineBreak +
'(SEQCTRLNCMUF, NCM, NCM_DESCRICAO, MVA_AJUSTADA_4, ' + sLineBreak +
'MVA_AJUSTADA_7, MVA_AJUSTADA_12, MVA_AJUSTADA_17, ' + sLineBreak +
'MVA_AJUSTADA_18, ALIQUOTA_INTERNA, MVA_ORIGINAL) ' + sLineBreak +
' VALUES (:NEW_SEQCTRLNCMUF, :NEW_NCM, :NEW_NCM_DESCRICAO, :NEW_MVA_AJUSTADA_4, ' + sLineBreak +
' :NEW_MVA_AJUSTADA_7, :NEW_MVA_AJUSTADA_12, :NEW_MVA_AJUSTADA_17, ' + sLineBreak +
' :NEW_MVA_AJUSTADA_18, :NEW_ALIQUOTA_INTERNA, :NEW_MVA_ORIGINAL)';
CONEXAOfIREDAC := TDMCONEXAOFIREDAC.Create(nil);
CONEXAOfIREDAC.FDQueryNcm.Close;
TRY
CONEXAOfIREDAC.FDQueryNcm.SQL.Clear;
CONEXAOfIREDAC.FDQueryNcm.sql.add(SQLInsertNcm) ;
CONEXAOfIREDAC.FDQueryNcm.ParamByName('NEW_SEQCTRLNCMUF').AsString := '-SEQCTRLNCMUF.NEXTVAL';
CONEXAOfIREDAC.FDQueryNcm.ParamByName('NEW_NCM').AsString := QuotedStr(FormPrinc.vNcmFormcadastro);
CONEXAOfIREDAC.FDQueryNcm.ParamByName('NEW_NCM_DESCRICAO').AsString := QuotedStr(FormPrinc.vNcmDescricaoFormcadastro);
CONEXAOfIREDAC.FDQueryNcm.ParamByName('NEW_MVA_AJUSTADA_4').AsString := QuotedStr(FormPrinc.vMvaAjustada4Formcadastro);
CONEXAOfIREDAC.FDQueryNcm.ParamByName('NEW_MVA_AJUSTADA_7').AsString := QuotedStr(FormPrinc.vMvaAjustada7Formcadastro);
CONEXAOfIREDAC.FDQueryNcm.ParamByName('NEW_MVA_AJUSTADA_12').AsString := QuotedStr(FormPrinc.vMvaAjustada12Formcadastro);
CONEXAOfIREDAC.FDQueryNcm.ParamByName('NEW_MVA_AJUSTADA_17').AsString := QuotedStr(FormPrinc.vMvaAjustada17Formcadastro);
CONEXAOfIREDAC.FDQueryNcm.ParamByName('NEW_MVA_AJUSTADA_18').AsString := QuotedStr(FormPrinc.vMvaAjustada18Formcadastro);
CONEXAOfIREDAC.FDQueryNcm.ParamByName('NEW_ALIQUOTA_INTERNA').AsString := QuotedStr(FormPrinc.vAliquotaInternaFormcadastro);
CONEXAOfIREDAC.FDQueryNcm.ParamByName('NEW_MVA_ORIGINAL').AsString := QuotedStr(FormPrinc.vMvaOriginalFormcadastro);
if not CONEXAOfIREDAC.FDQueryNcm.IsEmpty
then
CONEXAOfIREDAC.FDQueryNcm.ExecSQL(); // procedimento nativo do FireDac
FINALLY
FreeAndNil(CONEXAOfIREDAC);
END;
end;
Esse e o codigo que usei estou com dividas pois toda vez da erro de memoria ao utilizar o mesmo no butao de salvar;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Qui Abr 05, 2018 8:44 pm    Assunto: Responder com Citação

Boa noite,

Não tenho nenhuma experiência com Oracle e Firedac, mas desconfio que a sua intenção no primeiro parâmetro seja utilizar alguma espécie de função de auto incremento, então se se for isso mesmo será necessário colocar isso direto na query no lugar do parâmetro, pois da forma como está será interpretado como um valor do tipo string e não o nome de uma função ou algo parecido do banco de dados.
Sobre os demais parâmetros, acho que você deve remover a função QuotedStr, a não ser que a sua intenção seja a de inserir os valores no banco de dados entre aspas.

Espero que ajude


Editado pela última vez por imex em Ter Out 03, 2023 2:56 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
dorivansousa
Novato
Novato


Registrado: Quinta-Feira, 18 de Março de 2004
Mensagens: 9
Localização: Açailândia - Ma

MensagemEnviada: Sex Abr 06, 2018 9:26 am    Assunto: Responder com Citação

coloca o SEQCTRLNCMUF.NEXTVAL no SQL e nao como parametro pq como parametro é como se vc tivesse passando uma string.


aqui VALUES (:NEW_SEQCTRLNCMUF,... coloca VALUES (SEQCTRLNCMUF.NEXTVAL
_________________
Voçê ensina melhor aquilo que mais precisa aprender
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Yahoo Messenger MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB