Toon posts:

[JSP] JDBC problemen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een probleempje met mun JSP in JBuilder.
Ik krijg de volgende fout bij het opvragen van gegevens uit een JDBC:
com.borland.datastore.jdbc.SqlState: ResultSet is positioned before first data row :?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<%@page language="java" import="java.io.*,java.sql.*,java.util.*"%>
<%
  String code=null;
  int stp=0;
  String periode=null;
  String naam=null;
  String opleiding=null;
  String voertaal=null;
  String docent=null;
  String contact=null;
  String secr=null;
  String tentperiode=null;

  String dbDriverName = (String)
  session.getAttribute("jdbcDriver");
  String dbConnectString = (String)
  session.getAttribute("jdbcConnectString");
  String dbUserName = (String)
  session.getAttribute("jdbcUserName");
  String dbPassword = (String)
  session.getAttribute("jdbcPassword");

  Connection conn = null;
  ResultSet rs=null;
  try {
    Class.forName(dbDriverName);
    code = request.getParameter("eroscode");
    conn = DriverManager.getConnection(dbConnectString, 
    dbUserName, dbPassword);
    Statement stat = conn.createStatement();
    rs = stat.executeQuery("SELECT NAAM,STUDIEPUNTEN from
    MODUULOVERZICHT WHERE EROSCODE = '"+ code +"'");

    naam = rs.getString("NAAM");
    stp= rs.getInt("STUDIEPUNTEN");
    rs.close();
    conn.close();
  }
  catch (Exception e){
%>
  <P>Er is helaas iets misgegaan met het ophalen
  van de gegevens uit de database.
  </P>
  <H2>Stack Trace</H2>
  <PRE> <% e.printStackTrace(new PrintWriter(out)); %>
  </PRE>
<%
  if (conn != null) {
  conn.close();
  }
}
%>

Het probleem ligt niet bij het ophalen van de (eros)code, die krijgt -ie netjes door vanuit een vorige JSP. Alleen die vage fout. Iemand een oplossing ??? :?

Verwijderd

Topicstarter
Laat maar, heb het al was vergeten om :
code:
1
2
3
while (rs.next()){   <===
 rs.getString blah blah blah
}

Lekker dom ook :)

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Pino20:
code:
1
2
    rs = stat.executeQuery("SELECT NAAM,STUDIEPUNTEN from
    MODUULOVERZICHT WHERE EROSCODE = '"+ code +"'");
Hier moet je wel mee uitkijken... Over het algemeen moet je nooit in een omgeving waarbij de gebruiker invloed kan uitoefenen op een SQL statement een statement samenstellen door String optelling. De kwaadwillende gebruiker kan een een code met SQL fragementen meegeven en jij hebt een groot probleem.

Je kunt daarom beter een PreparedStatement gebruiken in combinatie met set methode, of zelf even checken of 'code' aan de eisen voldoet :) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment