26. marts 2001 - 22:33
Der er
46 kommentarer og 1 løsning
Friske øjne???
Hej, jeg har skrevet følgende jsp-side, hvor data hældes i en access-database. Ved første test gik alt vel, men nu får jeg en intetsigende fejlmeddelelse. Jeg kan ikke se fejlen - men det kan et par friske øjne måske? Min kode: HTML> <HEAD> <TITLE>Sælg en vare</TITLE> </HEAD> <%@ page language=\"java\" import=\"java.sql.* \" %> <%@ page import=\"java.util.*\" %> <BODY> Salg af vare<BR> Bemærk venligst: De skal udfylde alle felter markeret med <FONT COLOR=\"#FF3300\">*</FONT> <CENTER> <FORM ACTION=\"salg.jsp\" METHOD=POST> <TABLE BORDER=0> <TR> <TD valign=\"top\"><FONT COLOR=\"#FF3300\">*</FONT>Vælg et område:</TD> <TD valign=\"top\"> <SELECT NAME=\"Omrade\"> <OPTION VALUE=\"Tøj\"> Tøj <OPTION VALUE=\"Køkkengrej\"> Køkkengrej <OPTION VALUE=\"Møbler\"> Møbler <OPTION VALUE=\"Legetøj\"> Legetøj <OPTION VALUE=\"Kontorartikler\"> Kontorartikler <OPTION VALUE=\"Andet\"> Andet </SELECT> </TD> </TR> <TR> <TD valign=\"top\"><FONT COLOR=\"#FF3300\">*</FONT>Varebetegnelse:</TD> <TD valign=\"top\"> <INPUT TYPE=\"text\" NAME=\"varebetegnelse\" SIZE=53 MAXLENGTH=53> </TD> </TR> <TR> <TD valign=\"top\"><FONT COLOR=\"#FF3300\">*</FONT>Pris:</TD> <TD valign=\"top\"> <INPUT TYPE=\"text\" NAME=\"pris\" SIZE=53 MAXLENGTH=53> </TD> </TR> <TR> <TD valign=\"top\"><FONT COLOR=\"#FF3300\">*</FONT>Budinterval:</TD> <TD valign=\"top\"> <INPUT TYPE=\"text\" NAME=\"budinterval\" SIZE=53 MAXLENGTH=53> </TD> </TR> <TR> <TD valign=\"top\"><FONT COLOR=\"#FF3300\">*</FONT>Beskrivelse af varen:</TD> <TD valign=\"top\"> <TEXTAREA NAME=\"beskrivelse\" COLS=40 ROWS=8 WRAP=physical> </TEXTAREA> </TD> </TR> </TABLE> <BR><BR> <INPUT TYPE=\"submit\" VALUE=\"Gem oplysninger\"> </FORM> <% String DSNname = \"projektdatabase\"; String username = \"\"; String password = \"\"; Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\"); java.sql.Connection connection = java.sql.DriverManager.getConnection(\"jdbc:odbc:\" + DSNname,username,password); java.sql.Statement statement = connection.createStatement(); Enumeration parameters = request.getParameterNames(); if (parameters.hasMoreElements()) { String omraadeValue = request.getParameter(\"Omrade\"); String varebetegnelseValue = request.getParameter(\"varebetegnelse\"); String prisValue = request.getParameter(\"pris\"); String budintervalValue = request.getParameter(\"budinterval\"); String beskrivelseValue = request.getParameter(\"beskrivelse\"); statement.executeUpdate( \"INSERT INTO salg (\\\"OMRAADE\\\", \\\"VAREBETEGNELSE\\\", \\\"PRIS\\\", \\\"BUDINTERVAL\\\", \\\"VAREBESKRIVELSE\\\") VALUES (\'\"+omraadeValue+\"\',\'\"+varebetegnelseValue+\"\', \'\"+prisValue+\"\', \'\"+budintervalValue+\"\', \'\"+beskrivelseValue+\"\')\"); } %> </BODY> </HTML> Her kommer så fejlmeddelelsen: 500 Servlet Exception java.sql.SQLException: General error at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:4118) at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:4246) at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:1172) at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:206) at sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate(JdbcOdbcStatement.java:163) at _jsp._projekt._salg__jsp._jspService(/projekt/salg.jsp:109) at com.caucho.jsp.JavaPage.service(JavaPage.java:87) at com.caucho.jsp.JavaPage.subservice(JavaPage.java:81) at com.caucho.jsp.Page.service(Page.java:407) at com.caucho.server.http.FilterChainPage.doFilter(FilterChainPage.java:136) at com.caucho.server.http.Invocation.service(Invocation.java:259) at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:146) at com.caucho.server.http.RunnerRequest.handleRequest(RunnerRequest.java:347) at com.caucho.server.http.RunnerRequest.handleConnection(RunnerRequest.java, Compiled Code) at com.caucho.server.TcpConnection.run(TcpConnection.java, Compiled Code) at java.lang.Thread.run(Thread.java:479) -------------------------------------------------------------------------------- Resin 1.3.b1 (built Mon Jan 29 19:25:51 PST 2001)
Annonceindlæg fra Lenovo
27. marts 2001 - 09:26
#1
det her giver problemmer: Enumeration parameters = request.getParameterNames(); if (parameters.hasMoreElements()) { String omraadeValue = request.getParameter(\"Omrade\"); String varebetegnelseValue = request.getParameter(\"varebetegnelse\"); String prisValue = request.getParameter(\"pris\"); String budintervalValue = request.getParameter(\"budinterval\"); String beskrivelseValue = request.getParameter(\"beskrivelse\"); statement.executeUpdate( \"INSERT INTO salg (\\\"OMRAADE\\\", \\\"VAREBETEGNELSE\\\", \\\"PRIS\\\", \\\"BUDINTERVAL\\\", \\\"VAREBESKRIVELSE\\\") VALUES (\'\"+omraadeValue+\"\',\'\"+varebetegnelseValue+\"\', \'\"+prisValue+\"\', \'\"+budintervalValue+\"\', \'\"+beskrivelseValue+\"\')\"); } Da det er en form du vil gemme i en base, skal du hellere enkeltvis checke om dine felter er udfyldt. Først derefter skal du lave en \'insert into .....\' Husk hvis et parameter ikke var udfyldt i din form, bliver in String = null, og det er ikke sikkert din database vil æde \'null\' værdier !! så lav noget ala\' { String omraadeValue = request.getParameter(\"Omrade\"); String varebetegnelseValue = request.getParameter(\"varebetegnelse\"); String prisValue = request.getParameter(\"pris\"); String budintervalValue = request.getParameter(\"budinterval\"); String beskrivelseValue = request.getParameter(\"beskrivelse\"); if( omraadeValue!=null) && (beskrivelseValue!=null) ) //check alle de parametre der er et krav ! { if(prisValue==null) prisValue=\"\"; //skal gentages for alle parametre der skal i basen, men som det ikke er et krav man udfylder ! database kald med \'insert into .....\' } Håber mit svar er til at forstå (dette dumme indtastnings felt er for lille)
27. marts 2001 - 11:52
#2
Jeg har lidt problemer med at omsætte dit svar til konkret kode. Her er hvad jeg kom frem til, men det giver ikke det rette resultat: <% String DSNname = \"projektdatabase\"; String username = \"\"; String password = \"\"; Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\"); java.sql.Connection connection = java.sql.DriverManager.getConnection(\"jdbc:odbc:\" + DSNname,username,password); java.sql.Statement statement = connection.createStatement(); Enumeration parameters = request.getParameterNames(); { String omraadeValue = request.getParameter(\"Omrade\"); String varebetegnelseValue = request.getParameter(\"varebetegnelse\"); String prisValue = request.getParameter(\"pris\"); String budintervalValue = request.getParameter(\"budinterval\"); String beskrivelseValue = request.getParameter(\"beskrivelse\"); if( (omraadeValue!=null) && (varebetegnelseValue!=null) && (prisValue!=null) && (budintervalValue!=null)) { if(beskrivelseValue==null) prisValue=\"\"; statement.executeUpdate( \"INSERT INTO salg (\\\"OMRAADE\\\", \\\"VAREBETEGNELSE\\\", \\\"PRIS\\\", \\\"BUDINTERVAL\\\", \\\"SLUT\\\", \\\"VAREBESKRIVELSE\\\") VALUES (\'\"+omraadeValue+\"\',\'\"+varebetegnelseValue+\"\', \'\"+prisValue+\"\', \'\"+budintervalValue+\"\', \'\"+beskrivelseValue+\"\')\"); } %> Fejlmeddelelsen: 500 Servlet Exception /projekt/salg.jsp:142: \'catch\' without \'try\'. } catch (java.lang.Throwable e) { ^ /projekt/salg.jsp:147: \'}\' expected. } ^ Da jeg først lige har kastet mig ud i at lære jsp og kun kan en smule java, forstår jeg ikke fejlmeddelelsen.
27. marts 2001 - 11:56
#3
byt <% String DSNname = \"projektdatabase\"; String username = \"\"; String password = \"\"; Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\"); java.sql.Connection connection = java.sql.DriverManager.getConnection(\"jdbc:odbc:\" + DSNname,username,password); java.sql.Statement statement = connection.createStatement(); Enumeration parameters = request.getParameterNames(); if (parameters.hasMoreElements()) { String omraadeValue = request.getParameter(\"Omrade\"); String varebetegnelseValue = request.getParameter(\"varebetegnelse\"); String prisValue = request.getParameter(\"pris\"); String budintervalValue = request.getParameter(\"budinterval\"); String beskrivelseValue = request.getParameter(\"beskrivelse\"); statement.executeUpdate( \"INSERT INTO salg (\\\"OMRAADE\\\", \\\"VAREBETEGNELSE\\\", \\\"PRIS\\\", \\\"BUDINTERVAL\\\", \\\"VAREBESKRIVELSE\\\") VALUES (\'\"+omraadeValue+\"\',\'\"+varebetegnelseValue+\"\', \'\"+prisValue+\"\', \'\"+budintervalValue+\"\', \'\"+beskrivelseValue+\"\')\"); } %> ud med <% String DSNname = \"projektdatabase\"; String username = \"\"; String password = \"\"; Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\"); java.sql.Connection connection = java.sql.DriverManager.getConnection(\"jdbc:odbc:\" + DSNname,username,password); java.sql.Statement statement = connection.createStatement(); if( (omraadeValu!=null) && (varebetegnelseValue!=null) && (prisValue!=null) && (budintervalValue!=null) && (beskrivelseValue!=null) ) { String omraadeValue = request.getParameter(\"Omrade\"); String varebetegnelseValue = request.getParameter(\"varebetegnelse\"); String prisValue = request.getParameter(\"pris\"); String budintervalValue = request.getParameter(\"budinterval\"); String beskrivelseValue = request.getParameter(\"beskrivelse\"); statement.executeUpdate( \"INSERT INTO salg (\\\"OMRAADE\\\", \\\"VAREBETEGNELSE\\\", \\\"PRIS\\\", \\\"BUDINTERVAL\\\", \\\"VAREBESKRIVELSE\\\") VALUES (\'\"+omraadeValue+\"\',\'\"+varebetegnelseValue+\"\', \'\"+prisValue+\"\', \'\"+budintervalValue+\"\', \'\"+beskrivelseValue+\"\')\"); } %>
27. marts 2001 - 11:56
#4
forudsat alle felter er et krav at de er udfyldt
27. marts 2001 - 12:04
#5
Hermed gjort. Nu får jeg fejlen: 500 Servlet Exception /projekt/salg.jsp:98: Undefined variable: omradeValue if( (omradeValue!=null) && (varebetegnelseValue!=null) && (prisValue!=null) && (budintervalValue!=null) && (beskrivelseValue!=null) ) ^ /projekt/salg.jsp:98: Undefined variable: varebetegnelseValue Kan det skyldes at jeg har brugt en combobox?
27. marts 2001 - 12:35
#6
byt (); if( (omraadeValu!=null) && (varebetegnelseValue!=null) && (prisValue!=null) && (budintervalValue!=null) && (beskrivelseValue!=null) ) { String omraadeValue = request.getParameter(\"Omrade\"); String varebetegnelseValue = request.getParameter(\"varebetegnelse\"); String prisValue = request.getParameter(\"pris\"); String budintervalValue = request.getParameter(\"budinterval\"); ud med (); String omraadeValue = request.getParameter(\"Omrade\"); String varebetegnelseValue = request.getParameter(\"varebetegnelse\"); String prisValue = request.getParameter(\"pris\"); String budintervalValue = request.getParameter(\"budinterval\"); if( (omraadeValu!=null) && (varebetegnelseValue!=null) && (prisValue!=null) && (budintervalValue!=null) && (beskrivelseValue!=null) ) {
27. marts 2001 - 12:49
#7
Det giver præcis samme fejlmeddelelse som før: /projekt/salg.jsp:98: Undefined variable: omradeValue if( (omradeValue!=null) && (varebetegnelseValue!=null) && (prisValue!=null) && (budintervalValue!=null) && (beskrivelseValue!=null) ) ^ /projekt/salg.jsp:98: Undefined variable: varebetegnelseValue
27. marts 2001 - 12:56
#8
taste fejl if( (omraadeValue!=null) && (varebetegnelseValue!=null) && (prisValue!=null) && (budintervalValue!=null) && (beskrivelseValue!=null) ) Hvis du har skrevet det jeg sagde 2. gang du skulle bytte ud med, kan det ganske enkelt ikke passe med den fejl, for den peger på en \'variable\' der hedder \'imradeValue\' og i mit stykke kode står der \'omraadeValu\' !!
27. marts 2001 - 13:05
#9
Hmmmm....jeg har ellers bemærket at der var en tastefejl og rettet den hver gang jeg har kopieret din tekst over, således at hele min side nu ser sådanne ud: <HTML> <HEAD> <TITLE>Sælg en vare</TITLE> </HEAD> <%@ page language=\"java\" import=\"java.sql.* \" %> <%@ page import=\"java.util.*\" %> <BODY> Salg af vare<BR> Bemærk venligst: De skal udfylde alle felter markeret med <FONT COLOR=\"#FF3300\">*</FONT> <CENTER> <FORM ACTION=\"salg.jsp\" METHOD=POST> <TABLE BORDER=0> <TR> <TD valign=\"top\"><FONT COLOR=\"#FF3300\">*</FONT>Vælg et område:</TD> <TD valign=\"top\"> <SELECT NAME=\"Omrade\"> <OPTION VALUE=\"Tøj\"> Tøj <OPTION VALUE=\"Køkkengrej\"> Køkkengrej <OPTION VALUE=\"Møbler\"> Møbler <OPTION VALUE=\"Legetøj\"> Legetøj <OPTION VALUE=\"Kontorartikler\"> Kontorartikler <OPTION VALUE=\"Andet\"> Andet </SELECT> </TD> </TR> <TR> <TD valign=\"top\"><FONT COLOR=\"#FF3300\">*</FONT>Varebetegnelse:</TD> <TD valign=\"top\"> <INPUT TYPE=\"text\" NAME=\"varebetegnelse\" SIZE=53 MAXLENGTH=53> </TD> </TR> <TR> <TD valign=\"top\"><FONT COLOR=\"#FF3300\">*</FONT>Pris:</TD> <TD valign=\"top\"> <INPUT TYPE=\"text\" NAME=\"pris\" SIZE=53 MAXLENGTH=53> </TD> </TR> <TR> <TD valign=\"top\"><FONT COLOR=\"#FF3300\">*</FONT>Budinterval:</TD> <TD valign=\"top\"> <INPUT TYPE=\"text\" NAME=\"budinterval\" SIZE=53 MAXLENGTH=53> </TD> </TR> <TR> <TD valign=\"top\"><FONT COLOR=\"#FF3300\">*</FONT>Slutdato og klokkeslet:</TD> <TD valign=\"top\"> <INPUT TYPE=\"text\" NAME=\"slut\" SIZE=53 MAXLENGTH=53> </TD> </TR> <TR> <TD valign=\"top\"><FONT COLOR=\"#FF3300\">*</FONT>Beskrivelse af varen:</TD> <TD valign=\"top\"> <TEXTAREA NAME=\"beskrivelse\" COLS=40 ROWS=8 WRAP=physical> </TEXTAREA> </TD> </TR> </TABLE> <BR><BR> <INPUT TYPE=\"submit\" VALUE=\"Gem oplysninger\"> </FORM> <% String DSNname = \"projektdatabase\"; String username = \"\"; String password = \"\"; Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\"); java.sql.Connection connection = java.sql.DriverManager.getConnection(\"jdbc:odbc:\" + DSNname,username,password); java.sql.Statement statement = connection.createStatement(); if( (omraadeValue!=null) && (varebetegnelseValue!=null) && (prisValue!=null) && (budintervalValue!=null) && (beskrivelseValue!=null) ) { String omraadeValue = request.getParameter(\"Omrade\"); String varebetegnelseValue = request.getParameter(\"varebetegnelse\"); String prisValue = request.getParameter(\"pris\"); String budintervalValue = request.getParameter(\"budinterval\"); String beskrivelseValue = request.getParameter(\"beskrivelse\"); statement.executeUpdate( \"INSERT INTO salg (\\\"OMRAADE\\\", \\\"VAREBETEGNELSE\\\", \\\"PRIS\\\", \\\"BUDINTERVAL\\\", \\\"VAREBESKRIVELSE\\\") VALUES (\'\"+omraadeValue+\"\',\'\"+varebetegnelseValue+\"\', \'\"+prisValue+\"\', \'\"+budintervalValue+\"\', \'\"+beskrivelseValue+\"\')\"); } %> </BODY> </HTML> Det giver stadig fejlen: 500 Servlet Exception /projekt/salg.jsp:100: Undefined variable: omraadeValue if( (omraadeValue!=null) && (varebetegnelseValue!=null) && (prisValue!=null) && (budintervalValue!=null) && (beskrivelseValue!=null) ) ^ /projekt/salg.jsp:100: Undefined variable: varebetegnelseValue -------------------------------------------------------------------------------- Resin 1.3.b1 (built Mon Jan 29 19:25:51 PST 2001
27. marts 2001 - 13:07
#10
byt if( (omraadeValue!=null) && (varebetegnelseValue!=null) && (prisValue!=null) && (budintervalValue!=null) && (beskrivelseValue!=null) ) { String omraadeValue = request.getParameter(\"Omrade\"); String varebetegnelseValue = request.getParameter(\"varebetegnelse\"); String prisValue = request.getParameter(\"pris\"); String budintervalValue = request.getParameter(\"budinterval\"); String beskrivelseValue = request.getParameter(\"beskrivelse\"); statement.executeUpdate( \"INSERT INTO salg (\\\"OMRAADE\\\", \\\"VAREBETEGNELSE\\\", \\\"PRIS\\\", \\\"BUDINTERVAL\\\", \\\"VAREBESKRIVELSE\\\") VALUES (\'\"+omraadeValue+\"\',\'\"+varebetegnelseValue+\"\', \'\"+prisValue+\"\', \'\"+budintervalValue+\"\', \'\"+beskrivelseValue+\"\')\"); } ud med String omraadeValue = request.getParameter(\"Omrade\"); String varebetegnelseValue = request.getParameter(\"varebetegnelse\"); String prisValue = request.getParameter(\"pris\"); String budintervalValue = request.getParameter(\"budinterval\"); String beskrivelseValue = request.getParameter(\"beskrivelse\"); if( (omraadeValue!=null) && (varebetegnelseValue!=null) && (prisValue!=null) && (budintervalValue!=null) && (beskrivelseValue!=null) ) { statement.executeUpdate( \"INSERT INTO salg (\\\"OMRAADE\\\", \\\"VAREBETEGNELSE\\\", \\\"PRIS\\\", \\\"BUDINTERVAL\\\", \\\"VAREBESKRIVELSE\\\") VALUES (\'\"+omraadeValue+\"\',\'\"+varebetegnelseValue+\"\', \'\"+prisValue+\"\', \'\"+budintervalValue+\"\', \'\"+beskrivelseValue+\"\')\"); }
27. marts 2001 - 13:12
#11
Så virker det. Jeg har givet dig nogle flere point på grund af alt besværet.
27. marts 2001 - 13:13
#12
jamen mange tak for det da :) Skal du have en forklaring på hvad dit problem var, og hvorfor det nu virker ?
27. marts 2001 - 13:14
#13
Det vil jeg absolut meget gerne - for jeg tabte den røde tråd undervejs.
27. marts 2001 - 13:21
#14
Hjælp hjælp - jeg skrev godt nok at det virkede, men det var kun min første test. Da jeg atter prøvede at gemme noget fik jeg fejlmeddelelsen: 500 Servlet Exception java.sql.SQLException: General error at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:4118) at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:4246) at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:1172) at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:206) at sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate(JdbcOdbcStatement.java:163) at _jsp._projekt._salg__jsp._jspService(/projekt/salg.jsp:118) at com.caucho.jsp.JavaPage.service(JavaPage.java:87) at com.caucho.jsp.JavaPage.subservice(JavaPage.java:81) at com.caucho.jsp.Page.service(Page.java:407) at com.caucho.server.http.FilterChainPage.doFilter(FilterChainPage.java:136) at com.caucho.server.http.Invocation.service(Invocation.java:259) at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:146) at com.caucho.server.http.RunnerRequest.handleRequest(RunnerRequest.java:347) at com.caucho.server.http.RunnerRequest.handleConnection(RunnerRequest.java, Compiled Code) at com.caucho.server.TcpConnection.run(TcpConnection.java, Compiled Code) at java.lang.Thread.run(Thread.java:479) -------------------------------------------------------------------------------- Resin 1.3.b1 (built Mon Jan 29 19:25:51 PST 2001) Jeg har altså ikke lavet noget om i koden!!!
27. marts 2001 - 13:22
#15
3. og 4. forsøg gav også denne fejlmeddelelse
27. marts 2001 - 13:23
#16
med de samme værdier i felterne ?
27. marts 2001 - 13:24
#17
Det er lige som mit program i første omgang inden vi starede at rette i. Første forsøg gik fint nok, men næste gang jeg ville gemme i databasen, kommer denne underlige fejl.
27. marts 2001 - 13:25
#18
hvad står der i linie 118 i dit program ?
27. marts 2001 - 13:25
#19
Hvad mener du? At jeg skulle have indtastet det samme, eller hvad?
27. marts 2001 - 13:25
#20
ja har du indtastet det samme i alle felter som ved sidste forsøg ?
27. marts 2001 - 13:25
#21
Ikke noget, der er kun 109 linjers kode
27. marts 2001 - 13:26
#22
Nej, jeg prøvede med nogle nye oplysninger.
27. marts 2001 - 13:27
#23
kom lige med hele source koden igen jeg tror jeg ved hvad problemmet er
27. marts 2001 - 13:29
#24
Jeg har en tilsvarende jsp-side, hvor jeg registrerer brugeroplysninger, som er lavet tilsvarende den kode jeg skrev i øverste indlæg - med den forskel, at der ikke optræder en compbobox. Alt virker fint på denne side, kan du bruge det til noget?
27. marts 2001 - 13:29
#25
Here it comes: <HTML> <HEAD> <TITLE>Sælg en vare</TITLE> </HEAD> <%@ page language=\"java\" import=\"java.sql.* \" %> <%@ page import=\"java.util.*\" %> <BODY> Salg af vare<BR> Bemærk venligst: De skal udfylde alle felter markeret med <FONT COLOR=\"#FF3300\">*</FONT> <CENTER> <FORM ACTION=\"salg.jsp\" METHOD=POST> <TABLE BORDER=0> <TR> <TD valign=\"top\"><FONT COLOR=\"#FF3300\">*</FONT>Vælg et område:</TD> <TD valign=\"top\"> <SELECT NAME=\"Omrade\"> <OPTION VALUE=\"Tøj\"> Tøj <OPTION VALUE=\"Køkkengrej\"> Køkkengrej <OPTION VALUE=\"Møbler\"> Møbler <OPTION VALUE=\"Legetøj\"> Legetøj <OPTION VALUE=\"Kontorartikler\"> Kontorartikler <OPTION VALUE=\"Andet\"> Andet </SELECT> </TD> </TR> <TR> <TD valign=\"top\"><FONT COLOR=\"#FF3300\">*</FONT>Varebetegnelse:</TD> <TD valign=\"top\"> <INPUT TYPE=\"text\" NAME=\"varebetegnelse\" SIZE=53 MAXLENGTH=53> </TD> </TR> <TR> <TD valign=\"top\"><FONT COLOR=\"#FF3300\">*</FONT>Pris:</TD> <TD valign=\"top\"> <INPUT TYPE=\"text\" NAME=\"pris\" SIZE=53 MAXLENGTH=53> </TD> </TR> <TR> <TD valign=\"top\"><FONT COLOR=\"#FF3300\">*</FONT>Budinterval:</TD> <TD valign=\"top\"> <INPUT TYPE=\"text\" NAME=\"budinterval\" SIZE=53 MAXLENGTH=53> </TD> </TR> <TR> <TD valign=\"top\"><FONT COLOR=\"#FF3300\">*</FONT>Slutdato og klokkeslet:</TD> <TD valign=\"top\"> <INPUT TYPE=\"text\" NAME=\"slut\" SIZE=53 MAXLENGTH=53> </TD> </TR> <TR> <TD valign=\"top\"><FONT COLOR=\"#FF3300\">*</FONT>Beskrivelse af varen:</TD> <TD valign=\"top\"> <TEXTAREA NAME=\"beskrivelse\" COLS=40 ROWS=8 WRAP=physical> </TEXTAREA> </TD> </TR> </TABLE> <BR><BR> <INPUT TYPE=\"submit\" VALUE=\"Gem oplysninger\"> </FORM> <% String DSNname = \"projektdatabase\"; String username = \"\"; String password = \"\"; Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\"); java.sql.Connection connection = java.sql.DriverManager.getConnection(\"jdbc:odbc:\" + DSNname,username,password); java.sql.Statement statement = connection.createStatement(); String omraadeValue = request.getParameter(\"Omrade\"); String varebetegnelseValue = request.getParameter(\"varebetegnelse\"); String prisValue = request.getParameter(\"pris\"); String budintervalValue = request.getParameter(\"budinterval\"); String beskrivelseValue = request.getParameter(\"beskrivelse\"); if( (omraadeValue!=null) && (varebetegnelseValue!=null) && (prisValue!=null) && (budintervalValue!=null) && (beskrivelseValue!=null) ) { statement.executeUpdate( \"INSERT INTO salg (\\\"OMRAADE\\\", \\\"VAREBETEGNELSE\\\", \\\"PRIS\\\", \\\"BUDINTERVAL\\\", \\\"VAREBESKRIVELSE\\\") VALUES (\'\"+omraadeValue+\"\',\'\"+varebetegnelseValue+\"\', \'\"+prisValue+\"\', \'\"+budintervalValue+\"\', \'\"+beskrivelseValue+\"\')\"); } %> </BODY> </HTML>
27. marts 2001 - 13:31
#26
vi laver lige en bytter igen byt <% String DSNname = \"projektdatabase\"; String username = \"\"; String password = \"\"; Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\"); java.sql.Connection connection = java.sql.DriverManager.getConnection(\"jdbc:odbc:\" + DSNname,username,password); java.sql.Statement statement = connection.createStatement(); String omraadeValue = request.getParameter(\"Omrade\"); String varebetegnelseValue = request.getParameter(\"varebetegnelse\"); String prisValue = request.getParameter(\"pris\"); String budintervalValue = request.getParameter(\"budinterval\"); String beskrivelseValue = request.getParameter(\"beskrivelse\"); if( (omraadeValue!=null) && (varebetegnelseValue!=null) && (prisValue!=null) && (budintervalValue!=null) && (beskrivelseValue!=null) ) { statement.executeUpdate( \"INSERT INTO salg (\\\"OMRAADE\\\", \\\"VAREBETEGNELSE\\\", \\\"PRIS\\\", \\\"BUDINTERVAL\\\", \\\"VAREBESKRIVELSE\\\") VALUES (\'\"+omraadeValue+\"\',\'\"+varebetegnelseValue+\"\', \'\"+prisValue+\"\', \'\"+budintervalValue+\"\', \'\"+beskrivelseValue+\"\')\"); } %> ud med <% if(request.getMethod().equals(\"POST)) { String DSNname = \"projektdatabase\"; String username = \"\"; String password = \"\"; Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\"); java.sql.Connection connection = java.sql.DriverManager.getConnection(\"jdbc:odbc:\" + DSNname,username,password); java.sql.Statement statement = connection.createStatement(); String omraadeValue = request.getParameter(\"Omrade\"); String varebetegnelseValue = request.getParameter(\"varebetegnelse\"); String prisValue = request.getParameter(\"pris\"); String budintervalValue = request.getParameter(\"budinterval\"); String beskrivelseValue = request.getParameter(\"beskrivelse\"); if( (omraadeValue!=null) && (varebetegnelseValue!=null) && (prisValue!=null) && (budintervalValue!=null) && (beskrivelseValue!=null) ) { statement.executeUpdate( \"INSERT INTO salg (\\\"OMRAADE\\\", \\\"VAREBETEGNELSE\\\", \\\"PRIS\\\", \\\"BUDINTERVAL\\\", \\\"VAREBESKRIVELSE\\\") VALUES (\'\"+omraadeValue+\"\',\'\"+varebetegnelseValue+\"\', \'\"+prisValue+\"\', \'\"+budintervalValue+\"\', \'\"+beskrivelseValue+\"\')\"); } } %> forskellen gør det at den KUN forsøger at lægge noget i basen, hvis din form er blevet \'POST\'et altså ikke når man bare loader den. Det plejer altid at give problemmer
27. marts 2001 - 13:33
#27
Det giver følgende fejl: /projekt/salg.jsp:82: String not terminated at end of line. if(request.getMethod().equals(\"POST)) ^ /projekt/salg.jsp:83: \')\' expected. ^ 2 errors
27. marts 2001 - 14:06
#28
if(request.getMethod().equals(\"POST\")) ups min fejl der skal være et \" efter POST
27. marts 2001 - 14:12
#29
Du er sikkert træt af at høre det, men vi er tilbage ved fejlmeddelelsen: java.sql.SQLException: General error at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:4118) at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:4246) at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:1172) at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:206) at sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate(JdbcOdbcStatement.java:163) at _jsp._projekt._salg__jsp._jspService(/projekt/salg.jsp:122) at com.caucho.jsp.JavaPage.service(JavaPage.java:87) at com.caucho.jsp.JavaPage.subservice(JavaPage.java:81) at com.caucho.jsp.Page.service(Page.java:407) at com.caucho.server.http.FilterChainPage.doFilter(FilterChainPage.java:136) at com.caucho.server.http.Invocation.service(Invocation.java:259) at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:146) at com.caucho.server.http.RunnerRequest.handleRequest(RunnerRequest.java:347) at com.caucho.server.http.RunnerRequest.handleConnection(RunnerRequest.java, Compiled Code) at com.caucho.server.TcpConnection.run(TcpConnection.java, Compiled Code) at java.lang.Thread.run(Thread.java:479) Du skal nok få nogle flere point hvis du stadig har modet til at hjælpe!
27. marts 2001 - 14:13
#30
Resepekt går ud til disky - han er en tålmodig fætter.
27. marts 2001 - 14:14
#31
hmmmm, jeg er begyndt at tro fejlen ligger i Access hvordan er din database tabel defineret ?
27. marts 2001 - 14:14
#32
raos: mange tak. Jeg kan bare godt lide at hjælpe folk. Nok også derfor jeg er konsulent :)
27. marts 2001 - 14:21
#33
Tabellen salg ser ud som følger: Feltnavn: Datatype: Effektnummer(PN) tal Omraade tekst Varebetegnelse tekst Pris tal Budinterval tal Varebeskrivelse tekst Slut dato og klokkeslet Antalbud tal Vil du have andre oplysninger end datatyperne? Jeg er forresten meget enig med Raos
27. marts 2001 - 14:22
#34
jeg ved ikke om det har betydning, men der er forskel i navnene, altså om du bruger små og store bogstaver
27. marts 2001 - 14:25
#35
Skal jeg forsøge at rette mine feltnavne til at starte med småt. Men hvorfor går så første forsøg med at skrive til databasen godt?
27. marts 2001 - 14:27
#36
det kan jeg heller ikke svare på, det er netop det der undrer mig kraftigt.
27. marts 2001 - 14:31
#37
Jeg har lige ændret i min tabel, så alle navnene står med småt, men det gjorde ingen forskel. Du har ikke kommenteret min teori med comboboxen, men den er måske for langt ude???
27. marts 2001 - 14:34
#38
ups havde jeg overset. ser ok ud Gruble gruble gruble
27. marts 2001 - 14:48
#39
Lidt mere mystik: I stedet for at refreshe siden for at gøre et nyt forsøg med at gemme i databasen lukker jeg siden helt ned og starter den op igen. Jeg indtaster herefter nogle oplysninger i felterne og gemme, hvorefter alle formene tømmes, som de skal, dvs. fejlmeddelelsen dukker ikke op, men der er ikke kommet nye oplysninger i databasen når jeg kigger efter. Kan du bruge det til noget?
27. marts 2001 - 14:49
#40
ja nu skal der bare tænkes lidt :-)
27. marts 2001 - 14:50
#41
prøv at tilføj følgende helt i toppen af siden. <% response.setDateHeader(\"Expires\", 0); response.setHeader(\"Pragma\", \"no-cache\"); if (request.getProtocol().equals(\"HTTP/1.1\")) { response.setHeader(\"Cache-Control\", \"no-cache\"); } %> det gør at siden IKKE kan caches nogen steder
27. marts 2001 - 14:56
#42
Der gemmes stadig intet i databasen, men jeg får heller ingen fejlmeddelelse. Det er det samme resultat som jeg skrev i sidste indlæg.
27. marts 2001 - 15:29
#43
Skal det forstås som at den fejler ikke mere, men gemmer heller ikke noget i basen ?
27. marts 2001 - 15:33
#44
ja, lige netop
27. marts 2001 - 15:55
#45
her kommer lige det jeg bruger til database adgang, og det virker :)
/*
* DataBase.java
*
* Created on 3. december 2000, 21:06
*/
package disky.database;
import java.sql.*;
/**
*
* @author Søren Reinke
* @version
*/
public class DataBase extends Object
{
Connection con=null;
/** Creates new DataBase */
public DataBase()
{
}
public boolean openConnection(String server)
{
try
{
if(con==null)
{
Class.forName(\"org.gjt.mm.mysql.Driver\").newInstance();
con = DriverManager.getConnection(server,\"root\", \"root\");
return true;
}
}
catch (SQLException e)
{
e.printStackTrace(System.out);
}
catch (ClassNotFoundException e)
{
e.printStackTrace(System.out);
}
catch (InstantiationException e)
{
e.printStackTrace(System.out);
}
catch (IllegalAccessException e)
{
e.printStackTrace(System.out);
}
return false;
}
public void closeConnection()
{
if(con!=null)
{
try
{
con.close();
}
catch (SQLException e)
{
e.printStackTrace(System.out);
}
}
}
public int doUpdate(String sql)
{
if(con!=null)
{
try
{
Statement stat=con.createStatement();
return stat.executeUpdate(sql);
}
catch (SQLException e)
{
e.printStackTrace(System.out);
}
}
return 0;
}
public ResultSet doQuery(String sql)
{
if(con!=null)
{
try
{
Statement stat=con.createStatement();
return stat.executeQuery(sql);
}
catch (SQLException e)
{
e.printStackTrace(System.out);
}
}
return null;
}
}
og jeg kalder det på følgende måde.
private DataBase db=null;
db=new DataBase();
db.openConnection(\"jdbc:
mysql://localhost/ClassOf2000\" );
String userID;
userID=(String)session.getAttribute(\"userID\");
String sql=\"select * from elever where userID=\"+userID+\" and type=0\";
ResultSet res=db.doQuery(sql);
if(res!=null)
{
try
{
this.name=res.getString(\"name\");
this.adresse=res.getString(\"adresse\");
this.postnummer=res.getString(\"postnummer\");
this.bynavn=res.getString(\"bynavn\");
this.land=res.getString(\"land\");
this.telefon=res.getString(\"telefon\");
this.mobil=res.getString(\"mobil\");
this.email=res.getString(\"email\");
this.homepage=res.getString(\"homepage\");
this.fax=res.getString(\"fax\");
this.password=res.getString(\"password\");
return true;
}
catch(SQLException e)
{
e.printStackTrace(System.out);
}
}
måske hjælper det lidt.
prøv at leg med det.
kan først svare i morgen igen
27. marts 2001 - 18:31
#46
Hej disky, så er det lykkes mig at løse mit problem. Det havde rigtigt nok noget at gøre med databasen. Problemet lå i at den ikke vil autonummere min primærnøgle automatisk. Mange tak for din ihærdige indsats for at løse mit problem. Jeg håber ikke at jeg har ødelagt din nattesøvn. :-) Tjek et af de nyeste spørgsmål - du har absolut tjent nogle flere point efter den lange indsats.
02. april 2001 - 09:21
#47
Det glæder mig det virker. Undskyld jeg ikke har svaret før, men jeg har haft ferie :-)
Kurser inden for grundlæggende programmering