Avatar billede bumle90 Nybegynder
24. maj 2002 - 11:03 Der er 2 kommentarer og
1 løsning

servlet med db

Hej.
Jeg har lavet en ganske ganske simpel servlet som skal kunne modtage 3 parametre fra en html side, og lægge disse ned i en database. MEN DET VIRKER IKKE!!!!
Og jeg fatter absolut ikke hvad der er galt. Den kaster en SQL-exception der hvor jeg laver en executeupdate på min sql-sætning, og siger "Handlingen skal bruge en opdaterbar forespørgsel". Dette synes jeg ikke giver nogen mening overhovedet eftersom jeg bruger en executeupdate sammen med en INSERT INTO-SQL sætning.
Men anyways...det er nok bare mig der har misforstået eet eller andet, og jeg håber en af jer lige kan hjælpe mig engang. Her er servlet-koden :


import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;

public class fejlreg extends HttpServlet
{
   
    Connection con;
   
    public void init()
    {
        try
        {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        con=DriverManager.getConnection("jdbc:odbc:fejlregDB");
        } catch (Exception e)
        {
        e.printStackTrace();
        }
    }
   
    public void destroy()
    {
        try
        {
        con.close();
        }
        catch (Exception e)
        {
        e.printStackTrace();
        }
    }

    public void doGet(HttpServletRequest request,HttpServletResponse response)
    throws ServletException,IOException
    {
    PrintWriter output;
    response.setContentType("text/html");
    output=response.getWriter();

    String maskine=request.getParameter("maskine");
    String lokale=request.getParameter("rum");
    String fejlmelding=request.getParameter("beskrivelse");
    output.println("Før DB tilgang");
    boolean insert=insertIntoDb("INSERT INTO fejlmeldinger (Lokale,Computernr,Fejlmelding) "+
    "VALUES ("+maskine+","+lokale+",'"+fejlmelding+"')",output);
    StringBuffer buf=new StringBuffer();
        if (insert)
        {
        buf.append("<HTML><HEAD></HEAD><BODY>");
        buf.append("Din fejlmelding er nu lagt i databsen med følgende oplysninger :");
        buf.append("maskine : "+maskine+"<BR>rum : "+lokale+"<BR>fejlmelding : "+fejlmelding);
        buf.append("</BODY></HTML>");
        }
        else
        {
        buf.append("<HTML><HEAD></HEAD><BODY>");
        buf.append("<BR>Fejl under opdatering af database");
        buf.append("</BODY></HTML>");
        }
    output.println(buf.toString());
    output.println("succes2 = "+insert);
    output.close();
    }

    private boolean insertIntoDb(String SQL,PrintWriter out)
    {
    boolean succes=false;
    out.println("<br><br>"+SQL+"<br><br>");

        try
        {
        Statement stmt=con.createStatement();
        int number=stmt.executeUpdate(SQL);
            if (number!=0)
            succes=true;
        out.println("succes = "+succes);
        }
        catch (SQLException e)
        {
        succes=false;
        e.printStackTrace(out);
        }
    return(succes);
    }
}
Avatar billede erikjacobsen Ekspert
24. maj 2002 - 11:19 #1
Access? Din .mdb fil ligger i et katalog, hvor webserveren ikke
må skrive.
Avatar billede bumle90 Nybegynder
24. maj 2002 - 16:10 #2
hmmm...det kunne godt være derfor, men det er det altså ikke.
Jeg har prøvet at lægge databasen på et udelt lokaldrev, på et delt lokaldrev, og på et udelt fællesdrev, og intet virker.
Jeg bruger IIS, med en add-on på som burde kunne køre servletter.
Men jeg er ved at tro det er pga. webserveren at der går koks i det hele.
Hvilken webserver er bedst at bruge?
Det skal lige siges at jeg også har php og asp sider som jeg stadig gerne vil kunne køre, så jeg vil meget gerne have en server der kan køre det hele. Er det muligt?
Avatar billede bumle90 Nybegynder
24. august 2004 - 17:32 #3
lukker
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