resultSet

2 respostas
C

Estou desenvolvendo uma aplicação que consulta um banco Interbase. Após realizar a query e armazenar o resultado em um ResultSet, quando tento pegar os valores da query, dá erro. A parte do programa que faz isso é a seguinte:

... statement = con.createStatement(); rs = statement.executeQuery(query); int codigo = rs.getInt("codpoli"); String nomecand = rs.getString("nome"); String nascimento = rs.getString("dtnascpoli"); String sexo = rs.getString("sexop"); int nacionalidade = rs.getInt("codnacio"); int escolaridade = rs.getInt("codesco"); int profissão = rs.getInt("codprof"); ...
O erro que mostra no browser é:

Error: 500
Internal Servlet Error:

java.lang.VerifyError: (class: interbase/interclient/ErrorKey, method: <em>$372 signature: (Ljava/lang/String;Ljava/lang/String;I)V) Expecting to find unitialized object on stack

at interbase.interclient.ResultSet.checkForValidCursorPosition(ResultSet.java:636)

at interbase.interclient.ResultSet.</em>$31264(ResultSet.java:3802)

at interbase.interclient.ResultSet.getInt(ResultSet.java:784)

at interbase.interclient.ResultSet.getInt(ResultSet.java:1572)

at CandidatoServlet.doGet(CandidatoServlet.java:60)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:715)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:840)

at com.sun.web.core.ServletWrapper.handleRequest(ServletWrapper.java:155)

at com.sun.web.core.InvokerServlet.service(InvokerServlet.java:168)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:840)

at com.sun.web.core.ServletWrapper.handleRequest(ServletWrapper.java:155)

at com.sun.web.core.Context.handleRequest(Context.java:414)

at com.sun.web.server.ConnectionHandler.run(ConnectionHandler.java:139)

o que estou fazendo de errado ? Preciso urgente de ajuda.

[size=“11”][color=“green”]* Post editado para conter BBCode no codigo - matheus[/color][/size]

2 Respostas

F
<blockquote><div class="quote-author">“Ciclope”:</div>Estou desenvolvendo uma aplicação que consulta um banco Interbase. Após realizar a query e armazenar o resultado em um ResultSet, quando tento pegar os valores da query,  erro. A parte do programa que faz isso é a seguinte:

…

statement = con.createStatement();

rs = statement.executeQuery(query);

int codigo = rs.getInt(“codpoli”);

String nomecand = rs.getString(“nome”);

String nascimento = rs.getString(“dtnascpoli”);

String sexo = rs.getString(“sexop”);

int nacionalidade = rs.getInt(“codnacio”);

int escolaridade = rs.getInt(“codesco”);

int profissão = rs.getInt(“codprof”);

…

O erro que mostra no browser é:

Error: 500
Internal Servlet Error:

java.lang.VerifyError: (class: interbase/interclient/ErrorKey, method: <em>$372 signature: (Ljava/lang/String;Ljava/lang/String;I)V) Expecting to find unitialized object on stack

at interbase.interclient.ResultSet.checkForValidCursorPosition(ResultSet.java:636)

at interbase.interclient.ResultSet.</em>$31264(ResultSet.java:3802)

at interbase.interclient.ResultSet.getInt(ResultSet.java:784)

at interbase.interclient.ResultSet.getInt(ResultSet.java:1572)

at CandidatoServlet.doGet(CandidatoServlet.java:60)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:715)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:840)

at com.sun.web.core.ServletWrapper.handleRequest(ServletWrapper.java:155)

at com.sun.web.core.InvokerServlet.service(InvokerServlet.java:168)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:840)

at com.sun.web.core.ServletWrapper.handleRequest(ServletWrapper.java:155)

at com.sun.web.core.Context.handleRequest(Context.java:414)

at com.sun.web.server.ConnectionHandler.run(ConnectionHandler.java:139)

o que estou fazendo de errado ? Preciso urgente de ajuda.

Olha tente isso:

try&#123;
Statement st = con.createStatement&#40;&#41;; 
ResultSet rs = st.executeQuery&#40;query&#41;; 
while&#40;rs.next&#40;&#41;&#41;&#123;
int codigo = rs.getInt&#40;"codpoli"&#41;; 
String nomecand = rs.getString&#40;"nome"&#41;; 
String nascimento = rs.getString&#40;"dtnascpoli"&#41;; 
String sexo = rs.getString&#40;"sexop"&#41;; 
int nacionalidade = rs.getInt&#40;"codnacio"&#41;; 
int escolaridade = rs.getInt&#40;"codesco"&#41;; 
int profissão = rs.getInt&#40;"codprof"&#41;; 
&#125;
catch&#40;Exception ex&#41;&#123;
out.println&#40;ex.getMessage&#40;&#41;&#41;;
&#125;
&#125;

Sò um obs, o problema de vc declarar as váriaveis dentro do bloco try, é que ela só ficará “Visivel” dentro do bloco , se precisar trabalhar com elas em um outro método não será possivel.

C

Obrigado pela ajuda. De certo agora.

Criado 8 de fevereiro de 2004
Ultima resposta 9 de fev. de 2004
Respostas 2
Participantes 2