Página Inicial do Fórum > Banco de Dados - JDBC / SQL

getInt retornando valor 0 (zero), utilizando SELECT MAX



Criar novo tópico   Responder tópico


  1. andvenancio
    Posts:54


    Comment Arrow

    Publicado em: 30/06/2011 21:42:16

    Tenho a seguinte lógica:



    O método "getCampoInteger" faz um "getInt" no Resultset.

    O conteúdo dos dois primeiros campos do SELECT ("nrVezes" e "nrUltConcursoDezena" ) estão sendo retornados corretamente. Porém a busca do campo "nrMaiorAtraso" está sempre retornando 0 (zero).

    Não dá erro, já acompanhei por debug. Simplesmente retorna o valor zero.

    Também já peguei este SQL e executei diretamente no banco, e lá retorna o valor correto.

    Estou desconfiado que por ter um SELECT MAX dentro de outro SELECT MAX está se perdendo em algum ponto, mas também não sei se é o Firebird (versão 1.5) ou se é algo do Java.

    Alguém tem alguma idéia?



  1. sekkuar
    Posts:5998


    Comment Arrow

    Publicado em: 01/07/2011 09:36:10

    o tipo dos campos no banco de dados é INTEGER mesmo?

    tenta com getDouble() ver se funciona
    _________________
    Sekkuar ~ Ex-Catador Executivo do Javafree - (Não mais) Catando os tópico tudo.
    "The mod javafree deserves, but not the one it needs right now."


    Stack Traces existem pra ajudar e não para trazer uma mensagem de satã dizendo que seu computador será destruído.


    Peça seu Código Pronto para o seu Dever de Casa aqui
    You acknowledge that this software is not designed, licensed or intended for use in the design, construction, operation or maintenance of any nuclear facility.



  1. andvenancio
    Posts:54


    Comment Arrow

    Publicado em: 30/06/2011 21:42:16

    No banco de dados o campo está mesmo como INTEGER.

    Fiz uma tentativa com Double, conforme sua sugestão, e também retorna 0 (zero)....



  1. sekkuar
    Posts:5998


    Comment Arrow

    Publicado em: 01/07/2011 09:36:10

    Não sei... você disse que testou no banco de dados direto e funcionou certo?

    pode ser algum problema nas varáveis que você está suando na busca.


    Faz assim:
    No seu código, você está criando o comando direto no método execute query.

    Desconfio que um desses métodos Indice.toString() está retornando um valor errado.

    Depois, você copia essa String e executa ela no banco pra ver se o resultado é o esperado....

    Ao invez disso, salve esse comando em uma String, imprima a String, e depois execute o comando chamando só a String no método.

    Ai você pode comparar o comando que você montou no SQL e o comando que ele está executando.

    Geralmente eu faço isso e descubro o erro.
    _________________
    Sekkuar ~ Ex-Catador Executivo do Javafree - (Não mais) Catando os tópico tudo.
    "The mod javafree deserves, but not the one it needs right now."


    Stack Traces existem pra ajudar e não para trazer uma mensagem de satã dizendo que seu computador será destruído.


    Peça seu Código Pronto para o seu Dever de Casa aqui
    You acknowledge that this software is not designed, licensed or intended for use in the design, construction, operation or maintenance of any nuclear facility.



  1. andvenancio
    Posts:54


    Comment Arrow

    Publicado em: 30/06/2011 21:42:16

    Já fiz isso.. peguei o SQL montado (pelo DEBUG), copiei e executei direto no banco, traz os três valores corretamente.

    Também já fiz uma tentativa de colocar o SQL com valores fixos (ao invés de utilizar a variável com o toString()), com um valor eu tenho certeza que o último campo SELECT deve retornar um valor maior que zero, pois executei via banco.

    Mesmo assim o terceiro campo do SELECT retorna zero (aquele que tem o SELECT MAX mais elaborado), somente os dois primeiros campos retornam o valor correto.



  1. sekkuar
    Posts:5998


    Comment Arrow

    Publicado em: 01/07/2011 09:36:10

    isso é muito estranho...
    Não sei o que pode ser então.


    ResultSet que eu saiba, só retorna o que o banco de dados envia.
    Se no banco de dados sai certo, devia ficar certo.


    Mas não tenho certeza, nunca mexi no firebird então não sei..


    Qual a sua versão do JDBC? tenta baixar a mais recente e testar, pode ser algum bug dele

    http://www.firebirdsql.org/en/jdbc-driver/

    Essa página tem a versão mais recente (2.16)

    se não for igual o que você já tem, baixa essa nova versão para o seu JDK (tem os diferentes desde 1.3 até 1.6, baixa o certo)
    _________________
    Sekkuar ~ Ex-Catador Executivo do Javafree - (Não mais) Catando os tópico tudo.
    "The mod javafree deserves, but not the one it needs right now."


    Stack Traces existem pra ajudar e não para trazer uma mensagem de satã dizendo que seu computador será destruído.


    Peça seu Código Pronto para o seu Dever de Casa aqui
    You acknowledge that this software is not designed, licensed or intended for use in the design, construction, operation or maintenance of any nuclear facility.



  1. Relacionados

    error loading driver.java.sql.SQLNon Transient Connection: java.net.ConnectException: Erro ao conectar no servidor 'localhost' porta '1527'. Recebida
    http://javafree.uol.com.br/topic-893887-error-loading-driverjavasqlSQLNon-Transient-Connection-javanetConnectException-Erro-ao-conectar-no-servidor-localhost-porta-1527-Recebida.html

    ERRO Hibernate+PostGres+JSF (Caused by: java.lang.NoClassDefFoundError: Could not initialize class util.BaseDadosTCCutil)
    http://javafree.uol.com.br/topic-893825-ERRO-HibernatePostGresJSF-Caused-by-javalangNoClassDefFoundError-Could-not-initialize-class-utilBaseDadosTCCutil.html

    Não Consegue Acessar O Banco De Dados MySQL Acredito !!!
    http://javafree.uol.com.br/topic-893733-Nao-Consegue-Acessar-O-Banco-De-Dados-MySQL-Acredito.html

    Ajuda - Inserir dados no PostGRES usando JDBC manualmente
    http://javafree.uol.com.br/topic-893644-Ajuda-Inserir-dados-no-PostGRES-usando-JDBC-manualmente.html

    Migrar dados do SQL server 2005 para o Firebird
    http://javafree.uol.com.br/topic-891847-Migrar-dados-do-SQL-server-2005-para-o-Firebird.html





Novo tópico   Responder tópico     Índice do forum -> Banco de Dados - JDBC / SQL