Avatar billede monic Nybegynder
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)
Avatar billede disky Nybegynder
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)
Avatar billede monic Nybegynder
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.
Avatar billede disky Nybegynder
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+\"\')\");
    }             

%>

Avatar billede disky Nybegynder
27. marts 2001 - 11:56 #4
forudsat alle felter er et krav at de er udfyldt
Avatar billede monic Nybegynder
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?
Avatar billede disky Nybegynder
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) )
    {
Avatar billede monic Nybegynder
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

Avatar billede disky Nybegynder
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\' !!
Avatar billede monic Nybegynder
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
Avatar billede disky Nybegynder
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+\"\')\");
    }             

Avatar billede monic Nybegynder
27. marts 2001 - 13:12 #11
Så virker det. Jeg har givet dig nogle flere point på grund af alt besværet.
Avatar billede disky Nybegynder
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 ?
Avatar billede monic Nybegynder
27. marts 2001 - 13:14 #13
Det vil jeg absolut meget gerne - for jeg tabte den røde tråd undervejs.
Avatar billede monic Nybegynder
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!!!
Avatar billede monic Nybegynder
27. marts 2001 - 13:22 #15
3. og 4. forsøg gav også denne fejlmeddelelse
Avatar billede disky Nybegynder
27. marts 2001 - 13:23 #16
med de samme værdier i felterne ?
Avatar billede monic Nybegynder
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.
Avatar billede disky Nybegynder
27. marts 2001 - 13:25 #18
hvad står der i linie 118 i dit program ?
Avatar billede monic Nybegynder
27. marts 2001 - 13:25 #19
Hvad mener du? At jeg skulle have indtastet det samme, eller hvad?
Avatar billede disky Nybegynder
27. marts 2001 - 13:25 #20
ja har du indtastet det samme i alle felter som ved sidste forsøg ?
Avatar billede monic Nybegynder
27. marts 2001 - 13:25 #21
Ikke noget, der er kun 109 linjers kode
Avatar billede monic Nybegynder
27. marts 2001 - 13:26 #22
Nej, jeg prøvede med nogle nye oplysninger.
Avatar billede disky Nybegynder
27. marts 2001 - 13:27 #23
kom lige med hele source koden igen

jeg tror jeg ved hvad problemmet er
Avatar billede monic Nybegynder
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?
Avatar billede monic Nybegynder
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>
Avatar billede disky Nybegynder
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
Avatar billede monic Nybegynder
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

Avatar billede disky Nybegynder
27. marts 2001 - 14:06 #28
if(request.getMethod().equals(\"POST\"))


ups min fejl der skal være et \" efter POST
                             
Avatar billede monic Nybegynder
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!
Avatar billede raos Nybegynder
27. marts 2001 - 14:13 #30
Resepekt går ud til disky - han er en tålmodig fætter.
Avatar billede disky Nybegynder
27. marts 2001 - 14:14 #31
hmmmm, jeg er begyndt at tro fejlen ligger i Access

hvordan er din database tabel defineret ?
Avatar billede disky Nybegynder
27. marts 2001 - 14:14 #32
raos: mange tak.

Jeg kan bare godt lide at hjælpe folk.
Nok også derfor jeg er konsulent :)
Avatar billede monic Nybegynder
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
Avatar billede disky Nybegynder
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
Avatar billede monic Nybegynder
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?
Avatar billede disky Nybegynder
27. marts 2001 - 14:27 #36
det kan jeg heller ikke svare på, det er netop det der undrer mig kraftigt.
Avatar billede monic Nybegynder
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???
Avatar billede disky Nybegynder
27. marts 2001 - 14:34 #38
ups havde jeg overset.

ser ok ud

Gruble gruble gruble
Avatar billede monic Nybegynder
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?
Avatar billede disky Nybegynder
27. marts 2001 - 14:49 #40
ja nu skal der bare tænkes lidt :-)
Avatar billede disky Nybegynder
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
Avatar billede monic Nybegynder
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.
Avatar billede disky Nybegynder
27. marts 2001 - 15:29 #43
Skal det forstås som at den fejler ikke mere, men gemmer heller ikke noget i basen ?
Avatar billede monic Nybegynder
27. marts 2001 - 15:33 #44
ja, lige netop
Avatar billede disky Nybegynder
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
Avatar billede monic Nybegynder
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.
Avatar billede disky Nybegynder
02. april 2001 - 09:21 #47
Det glæder mig det virker.

Undskyld jeg ikke har svaret før, men jeg har haft ferie :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester