Perdendo o primeiro registro!

3 respostas
E
<%
        // Abrindo Banco de Dados e executa uma SQL
        try {

          Connection conn = DriverManager.getConnection("jdbc:odbc:NetVentucar");
          Statement stmt = conn.createStatement();

          String xSQL = "SELECT Produtos.Modelo, Produtos.Cor, Produtos.[Ano fabricação], Produtos.[Ano modelo], Produtos.Placa, Produtos.[Numero do chassis], Produtos.Renavan, Produtos.Dataentestoque, [Produtos proprietários].[Proprietário anterior], [Produtos proprietários].[Valor inicial], Produtos.Valor FROM Produtos INNER JOIN [Produtos proprietários] ON Produtos.Placa = [Produtos proprietários].Placa ORDER BY Produtos.Placa";
          ResultSet rs = stmt.executeQuery(xSQL);
          if ( ! rs.next() ) {
            out.println("Nada foi encontrado...<br>");
          }
          else {
             while ( rs.next() ) {
		out.println("<option>"+rs.getString("Placa")+"</option><br>");
             }
          }
        }
        catch (SQLException E) {
             out.println("Erro ao conectar ao MDB ou na Execução da Select....");
             out.println(E);
        }

%>

O problema é o seguinte:
Ta funcionando perfeitamente, mas eu perco o primeiro registro!!!
Eu qria trocar o If ( rs.next() ) por outra coisa!
Não encontro nada do tipo match em java! Existe?

Grato!!

3 Respostas

D

Kra, vc precisa mesmo desse

if ( ! rs.next() ).......

?

vc pode usar só o while ( rs.next() ) { out.println("<option>"+rs.getString("Placa")+"</option><br>"); }
Agora, se vc precisar mesmo tenta usar o metodo beforeFirst antes do while no seu else assim:

// usando esse next aqui o rs vai estar apontando pro primeiro registro
if ( ! rs.next() ) {
    out.println("Nada foi encontrado...<br>");
} else {
//no caso de entrar no else o rs ja obteve o primeiro registro
// o beforeFirst faz com que o rs retorne pra antes do primeiro registro
    rs.beforeFirst();
    while ( rs.next() ) {
        out.println("<option>"+rs.getString("Placa")+"</option><br>");
    } 
}
M

ou pode trocar o while por um do/while =p

E

Eu fiz o q vc m disse e já havia tirado o rs.next(). So que no Servlet eu preciso dele!
Mas eu usei um rs.first() depois do rs.next() pra fazer teste e ele me dava erro também!!

Poxa, eu to aprendendo Java e adorando!! MAs caramba!! Um match ou found iria bem a calhar!!!

Vou fazer o teste pra ver no que vai dar!!

Criado 13 de maio de 2005
Ultima resposta 13 de mai. de 2005
Respostas 3
Participantes 3