Fórum Conversion error from string - Firebird e Csharp #594659

04/06/2018

0

Estou tentando fazer um insert numa tabela do meu banco de dados com o seguinte código:

string comandoSQL = "INSERT into GASTO_ENERGETICO (DATA_GE, CPF_PACIENTE_GE, CRN_NUTRICIONISTA_GE) values (" + dataConsultaFormatada + ", ''''''''" + txtCPF.Text + "'''''''', ''''''''" + txtNutricionistaAtendente.Text + "'''''''')";

O CPF_PACIENTE_GE é do tipo bigint e o CRN_NUTRICIONISTA_GE é do tipo int, a data está formatada para enviar ''''''''''''''''mm-dd-aaaa".

Porém ao enviar o comando para o banco, ele retorna o seguinte erro: FirebirdSql.Data.FirebirdClient.FbException: ''''''''conversion error from string "-2016"''''''''.

Só que eu não estou enviando em nenhum momento "-2016" para o banco, abaixo está o código de como fica o SQL quando chega no firebird:

INSERT into GASTO_ENERGETICO (DATA_GE, CPF_PACIENTE_GE, CRN_NUTRICIONISTA_GE) values (06-04-2018, ''''''''11122233344'''''''', ''''''''123456'''''''').

Esse mesmo código funcionou para uma tabela, porém não funciona para as demais, estou completamente perdido!
Caue Barros

Caue Barros

Responder

Post mais votado

04/06/2018

Boa noite Allan!

esse com 2018 era o que eu estava tentando mandar e tava retornando o erro com 2016, não sei porque. Mas eu chequei as variáveis de diversas formas e inclusive no debugger, o insert estava com os valores que eu mostrei acima

De qualquer forma, eu consegui resolver o problema indo pra aula hoje e um amigo me ajudou, quando eu dei o insert pelo C#, a variável dataConsultaFormatada estava dessa forma: " + dataConsultaFormatada + " (somente com aspas duplas), quando o certo era '" + dataConsultaFormatada + "' (com aspas simples e aspas duplas), então na hora de passar os valores, o firebird não estava entendendo a variável como uma string e sim como um número e não estava conseguindo fazer a conversão para o formato DATE.

Agora o porque ele ficou mostrando ele ''-2016'' quando eu estava mandando ''2018'' segue um mistério. haha

Agradeço muito a atenção! como eu não tinha ideia do que estava causando o problema, resolvi postar aqui, mas não achei que iriam responder tão cedo, isso é pro meu TCC.

Caue Barros

Caue Barros
Responder

Gostei + 2

Mais Posts

04/06/2018

Caue Barros

não sei pq foi com excesso de aspas no código, é minha primeira vez perguntando aqui no fórum...
Responder

Gostei + 0

04/06/2018

Allan Alves

Boa noite Caue.
Nesse caso pelo que entendi ele ta enviando sim esse "-2016", e é nesse momento que ele te da o erro.
Esse que voce postou com data de 2018 ele consegue ir de boa ou da o mesmo erro?

Não utilizo muito Firebird, mas tenta formatar com as barras também.
Responder

Gostei + 0

04/06/2018

Allan Alves

Tranquilo parceiro.
Entendi, como ele tava levando como numero tentava converter então chegava nesse valor de "-2016".
Detalhadamente o tratamento que ele fez não sei te falar também, mas basicamente é isso que da entender.

vlw!
Boa sorte no TCC.
Responder

Gostei + 0

05/06/2018

Emerson Nascimento

Como você estava enviando um literal, o Firebird fez a seguinte conta:

      6
-     4
-------
=     2
-  2018
-------
= -2016


Ou seja: fez a subtração, como se fosse uma sentença matemática.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar