Galera…to quebrando o cranio para fazer uma subtracao da seguinte linha
Long Num = new Long(rs.getLong("id"));
Este campo pega dados de um banco que tem 6 digitos(ex: 123456)
Problema que o mesmo nao pode ter alem de 5 digitos …e quando eu chamo ele numa classe…ele da erro
calcula.setNum(Num);
Alguem tem alguma ideia? por exemplo, dividir por 1000 ou subtrair a primeira casa…
abs
Cara o objeto Long permite valor maior que 999999, o erro deve ser outra coisa.
você pode dizer qual a exception q está havendo?
o que você faz com num dentro de calcula.setNum(Num)?
Entao luciano…problema nao é o “Long…”
Ele recebe um valor de um campo de uma tabela e joga numa outra tabela…
Só que o campo que ele esta pegando, esta com 6 digitos…
Na hora que vou jogar na outra tabela…da erro, pq o tamanho maximo é de 5 digitos…entende?(ex. 12345)…
…Esse é o problema…por isso eu queria fazer um processo no meio do “caminho” para jogar na outra tabela o valor correto ja…
Primeiro de tudo. Por que existe essa inconsistência?
Você até pode “engolir” um dígito, mas isso abrirá chance de duplicação.
Acho melhor você ir até a raiz do problema, que é identificar porque os ids são incompatíveis. Isso provavelmente é um problema muito maior do que só remover um dígito.
Cara dessa forma você vai estar perdendo uma casa significativa no seu valor, se for possivel aumenta o tamanho maximo da coluna.
se não for possivel cria uma coluna flag 1/0 que indica se o valor foi dividido pro mil. Pelo menos dessa forma vc tem como saber se tem q multiplicar o valor quando for recuperar.
Valeu pela resposta…Entao deixa eu detalhar mais o processo
Vai ser gerado um numero de nota fiscal…automatico
Diante disso, é gerado um boleto na compra…existe um campo no boleto que é o numero do conveio do cara com o banco…+ este numero de nota fiscal
Acontece que o campo por padrao tem 5 digitos(imposto pelo campo do boleto do banco)
Entao, quando eu pego o campo do numero da nota fiscal…e jogo no campo do boleto(para identificar o cliente) ele da erro, visto que ja esta com 6 digitos(exe> 150000)
Por isso, essa questao…
Melhor perguntar para o dono do sistema o que é para fazer. O certo seria aumentar o campo do número da nota fiscal no boleto (e olha que já considero 6 digitos muito pequeno).
Fala xara…
Acho que o que voce esta querendo pelo que entendi, nao é aumentar o campo da nota fiscal, mas pegar o campo da NF e jogar no campo do boleto(essa pratica é comum para vc identificar qual cliente comprou )
Sendo assim, a questao nao é aumentar o campo, mas diminuir um digito do ID que esta vindo da NF…(partindo do principio que nao pode alterar o campo da NF e do boleto)
algo como
num1=rec.getDouble("valor1"); //poderiamos por um valor fixo e elastico aqui como por ex: 100.000
num2=rec2.getDouble("valor2");
num=num1-num2; // se o campo que ele menciona esta em 134000 vai ficar como 34000
Isso é só pra entender por favor…o certo mesmo seria aumentar o campo do BOLETO no meu ver…
…Se esse é o problema…Entao, isso “quebra seu galho”
Long Num = new Long(rs.getLong("id")-100000);
Mas lembre-se, quando seus pedidos chegarem a 200.000(nao sei a sua realidade). Voce voltara a ter esse problema…
Ate++