04. januar 2003 - 15:18
Der er
11 kommentarer og 1 løsning
servlet. SQL
Hej Eksperter Der syntes at være et problem men denne kode :-) Den kombilerer fint nok, men sqlkaldet lykkes ikke :-( try { ResultSet rs = d.select("SELECT content FROM pages WHERE name = 'start'"); String content = rs.getString("content"); out.println("<HTML><HEAD><TITLE></TITLE></HEAD>"); out.println("<BODY>"); out.println(content); out.println("</BODY></HTML>"); } catch (SQLException s) { out.println("<h3>SQL fejl: " + s.toString() + " " + s.getErrorCode() + " " + s.getSQLState() + "</h3>"); }
Annonceindlæg fra Context&
04. januar 2003 - 15:19
#1
SQL fejl: java.sql.SQLException: Before start of result set 0 null
04. januar 2003 - 15:25
#2
Du skal kalde: rs.next() inden: rs.getString
04. januar 2003 - 15:26
#3
Forklaring: Når du udfører din query står dit result set før først record. Du skal kalde rs.next() for at kommen hen til første record.
04. januar 2003 - 15:27
#4
Og det virke rmåske nok lidt bøvlet i det simple tilfælde hvor du kun får returneret en record. Men i det mere generelle tilfælde er det meget bekvemt: while(rs.next() { String x = rs.getString("x"); String y = rs.getString("y"); }
04. januar 2003 - 15:29
#5
Okay. Jeg har sådan set fået det til at virke :-) Jeg behøver ikke ligge det ind i en while(rs.next()) {} hvis jeg er sikker på at der kun er en forekomst i rs vel :-)))
04. januar 2003 - 15:30
#6
he he he
04. januar 2003 - 15:31
#7
Det er jo sådan jeg plejer at gøre. Jeg havde bare glemt det. Tak for hjælpen :-)))
04. januar 2003 - 15:32
#8
Nej du behøver ikke ligge en while løkke ind. Du kan bare kalde rs.next(), men hvis du vil være rigtigt omhyggelig så checker du lige om det rs.next kald returnerer true. Hvis det returnerer false, så er der ingen records d.v.s en eller anden fejl-siutuation.
04. januar 2003 - 15:42
#9
if (rs.next() == true) { String content = rs.getString("content"); out.println("<HTML><HEAD><TITLE></TITLE></HEAD>"); out.println("<BODY>"); out.println(content); out.println("</BODY></HTML>"); } else { System.out.println("No records in resultset"); }
04. januar 2003 - 15:43
#10
er det sådan du mener
04. januar 2003 - 15:44
#11
Ja. Dog nok: if (rs.next()) i.s.f.: if (rs.next() == true)
04. januar 2003 - 16:05
#12
fedt nok *lol*
Kurser inden for grundlæggende programmering