Estado de cursor inválido

2 respostas
K
Tenho uma fonte, mas ela dá o seguinte erro....
java.sql.SQLException: [Microsoft][ODBC Driver Manager] Estado de cursor inválido
        at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)
        at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)
        at sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(JdbcOdbc.java:3908)
        at sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(JdbcOdbcResultSet.java:5699)
        at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:353)
        at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:410)
        at bd.Verficia_usuario.verifica(Verficia_usuario.java:39)

o codigo que dá o erro é esse

package bd;

import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.*;

/**
 *
 * @author Kiko
 */
public class Verficia_usuario {
    
    /** Creates a new instance of Verficia_usuario */
    public Verficia_usuario() {
        
    }
    public static String verifica(String User, String Senha){
        String usuario = User;
        String senha = Senha;
        String sql = "SELECT * FROM usuario where nome_funcionario = 'Kiko' and senha = 'kiko'";
        try {
            banco.init();
            Connection conn = null;
            conn = banco.getConnection();
            Statement estado = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE);
            ResultSet res = estado.executeQuery(sql);
            tipo = res.getString("tipo");            
        } catch (IOException ex) {
            ex.printStackTrace();
        } catch (ClassNotFoundException ex) {
            ex.printStackTrace();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
        return tipo;
    }
    private static String tipo;
}

Como corrigir esse erro?????

2 Respostas

E

opa beleza?

bom li o seu código não achei aonde você intancia o objeto banco

banco.getConnection(); :roll:

nem algum lugar onde você repassa a referencia do objeto…
está faltando alguma parte no seu código que você postou aqui?

abraços

J

ResultSet res = estado.executeQuery(sql);
tipo = res.getString(“tipo”);

Antes de tentar acessar o ResultSet você tem que mover o cursor para uma linha valida…

ResultSet res = estado.executeQuery(sql); res.next(); tipo = res.getString("tipo");

Aí tem um tutorial sobre JDBC que talvez te ajude:

http://jairelton.com

Criado 15 de maio de 2006
Ultima resposta 16 de mai. de 2006
Respostas 2
Participantes 3