Problemas com Update[Resolvido]

8 respostas
R

Ola pessoal estou com o seguinte problema a variável nm é do tipo String e possui o valor de 8301 mas quando esta efetuando o Update na tabela esta gravando no campo 83010 alguém poderia me dar uma luz do que poderia estar ocorrendo ?

O Banco é SQLSERVER

sql = "UPDATE BD..BDCO020 SET BCONOSNROI = ? WHERE BCOCOD = ? AND BCOEMPCOD = ? ";                    
                 
                    PreparedStatement  pstmtnn = conn.prepareStatement(sql);                  
                    pstmtnn.setObject(1, nm );
                    pstmtnn.setObject(2, webset.getInt("BCOCOD") );
                    pstmtnn.setObject(3, webset.getInt("BCOETBCOD"));
                    pstmtnn.executeUpdate();

8 Respostas

T

Ola, reinke!

Amigo provavelmente essa coluna no seu banco de dados
esta com um tamanho pequeno para armazenar esse dado.
Verifica isso poem um tamanho maior e testa :slight_smile:

Good Luck!

guilherme.chapiewski

Essa história de aumentar o campo serviria se o dado estivesse sendo truncado, o que não é o caso. Pelo que eu entendí está aparecendo um 0 a mais no final, certo?

Tenta imprimir essa variável para ter certeza de que o valor que está sendo passado para a query é esse 8301 mesmo… E tenta ver também se a query gerada está certa para descobrir se o problema é do lado do banco ou do lado da aplicação…

Abraços,
Guilherme Chapiewski

R

tralala:
Ola, reinke!

Amigo provavelmente essa coluna no seu banco de dados
esta com um tamanho pequeno para armazenar esse dado.
Verifica isso poem um tamanho maior e testa :slight_smile:

Good Luck!

Ola, também pensei isso mas infelizmente o campo no banco possui espaço tranquilamente para armazenar os dados mesmo assim, obrigado pela dica.

R

guilherme.chapiewski:
Essa história de aumentar o campo serviria se o dado estivesse sendo truncado, o que não é o caso. Pelo que eu entendí está aparecendo um 0 a mais no final, certo?

Tenta imprimir essa variável para ter certeza de que o valor que está sendo passado para a query é esse 8301 mesmo… E tenta ver também se a query gerada está certa para descobrir se o problema é do lado do banco ou do lado da aplicação…

Abraços,
Guilherme Chapiewski

Ola Guilherme Chapiewski,
a variável realmente possui o valor 8301 e na query o valor passado tb é 8301 provavelmente meu problema possa ser o banco, alguma dica ?

guilherme.chapiewski

Seu campo está como “varchar”?

Mude para “varchar(4)” só para ver o que vai acontecer (não vai caber o número com 0 no final porque não vai ter espaço, vamos ver aonde que vai dar erro ou se não vai dar erro).

R

guilherme.chapiewski:
Seu campo está como “varchar”?

Mude para “varchar(4)” só para ver o que vai acontecer (não vai caber o número com 0 no final porque não vai ter espaço, vamos ver aonde que vai dar erro ou se não vai dar erro).

Excelente idéia Guilherme consegui resolver , obrigado pela dica !

guilherme.chapiewski

Beleza :smiley:

Afinal, o problema era no banco de dados? O tipo de dado estava errado?

R

Sim o problema era o campo do banco segundo nosso DBA.

Criado 10 de janeiro de 2007
Ultima resposta 11 de jan. de 2007
Respostas 8
Participantes 3