[RESOLVIDO] ResultSet getRow() retorna 0 (mas tem Informação no Banco de Dados)

Galera,

Já não estou mais quebrando a cabeça, pois a coitada está só os pedaços…

O meu Problema é o seguinte, (ahh, antes de mais nada… Sou de nível Intermediário em Java)…

Estou utlizando a API jTDS para acessar meu Banco de Dados (SQL Server 2005 Express),
Eu consigo a Conexão tranquilamente, executo Procedures, Functions,… porem,

SOMENTE não consigo Fazer uma consulta e retornar o valor(Rs) no ResultSet…

mas … A Query no em SQL está corretissima, e quando a executo no gerenciador do SQL o ResultSet traz todas as linhas…!!!


Connection conexao;
conexao = DriverManager.getConnection("jdbc:jtds:sqlserver://IPLOCAL:1433/dtsys","sa","senha");
 
System.out.println("CONEXÃO CRIADA COM SUCESSO: ID > " + conexao);

Statement st = conexao.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);

ResultSet rs = st.executeQuery("SELECT * FROM VEICULOS");

System.out.println("LINHAS: " + rs.getRow());

A Tabela VEICULOS tem umas 50 linhas…rs!

Bom, pode ser uma besteirinha…mas meu conhecimento ainda não está a nível de descobrir qual é… preciso da ajuda de voces!

Vale ponto na Média na Faculdade… ai é F$$@… Valeu Galera…!!!

documentação:

getRow(): Retrieves the current row number. The first row is number 1, the second number 2, and so on.

Não sei se é a melhor opção, mas dá um rs.last() antes do getRow, e depois volta para o primeiro com rs.first().

qualquer coisa, faça um count(*) que funciona melhor.

Esse método retorna o índice atual do ResultSet e não a quantidade de linhas. Como vc ainda não chamou o next() está no zero.

Embora o retorno 0 indique que houve um problema nesta consulta, eis o que a documentação fala sobre este método:
public int getRow() throws SQLException
Retrieves the current row number. The first row is number 1, the second number 2, and so on.
Note:Support for the getRow method is optional for ResultSets with a result set type of TYPE_FORWARD_ONLY
Retorna:
the current row number; 0 if there is no current row
Exceções:
SQLException - if a database access error occurs or this method is called on a closed result set SQLFeatureNotSupportedException - if the JDBC driver does not support this method
Desde:
1.2

Portanto, ele retornaria 1, afinal, o retorno do método é o número da linha em questão.

O 0 não será simplesmente porque nem sequer foi feito o rs.next()? Assim ele ainda não está sequer na primeira linha.

Então, eu pensava que o getRow traria o Numero de Linhas, que até pensando bem, seria chamado de getROWS!

mas mesmo assim… não só tomei isso como base para meu problema, eu que no caso,

quando eu acabo de fazer a consulta, tento fazer um getString(colunaX) e acusa o erro: em Portuga. Não há linhas neste ResultSet…!!!

RESOLVIDO !!!
Eu tenho que fazer a chamada do Método rs.next()…
dai ele vai pro primeiro registro…!!!

aii a partir disto, posso recuperar as informações do ResultSet!!!

VALEUUU… essas respostas que abriram minha mente!!!

estou reconstruindo minha cabeça com mais Conhecimento!!!

VALEUUU!!