Avatar billede flimmerdreng Nybegynder
04. juni 2005 - 23:22 Der er 32 kommentarer og
1 løsning

Ang. NullPointerException og ResultSet.

Jeg er studerende og eksperimenterer i java. Jeg har lavet et lille program i java, som skal skaffes adgang via en applet, men når jeg kaler ResultSet via den knap jeg har programmeret den til kommer den med en NullPointerException. Jeg kan sagtens få adgang til databasen ved create men ikke select. Her er min kildekode til min database klasse
import java.util.*;
import java.sql.*;

public class Database
{
  private Connection forb;
  private Statement stmt;
  String a = "";
  public void Database()

  { try
    { 
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection forb = DriverManager.getConnection("jdbc:odbc:Patienter");
    stmt = forb.createStatement();
   
    stmt.executeUpdate("create table patienten (CPRnr int, Navn varchar(32), Adresse int, Postnr int, By varchar(32), TLFnr int)" ); 
    stmt.executeUpdate("create table familie (CPRnr int, Navn varchar(32), Adresse int, Postnr int, By varchar(32), TLFnr int, Mobiltlf int, Navn2 varchar(32), Adresse2 int, Postnr2 int, By2 varchar(32), TLFnr2 int, Mobiltlf2 int)" );
    stmt.executeUpdate("create table doktor (CPRnr int, Navn varchar(32), Adresse int, Postnr int, By varchar(32), TLFnr int)" );
    stmt.executeUpdate("create table medicin (CPRnr int, Medicin1 varchar(32), Dagligt1 int, Medicin2 varchar(32), Dagligt2 int, Medicin3 varchar(32), Dagligt3 int, Medicin4 varchar(32), Dagligt4 int, Medicin5 varchar(32), Dagligt5 int, Medicin6 varchar(32), Dagligt6 int, Doseringsdato int)" );
   
    }
    catch (Exception a)
    {
        System.out.println("Kan ikke oprette data: "+a);
    }
  }
//  public void OpretData() throws SQLException
//        { 
//          try // hvis tabellen ikke eksisterer opstår der en SQL-undtagelse
//            {
//        String time = tid.ur();
       
//          int tem = temp.temperatur();
//          stmt.executeUpdate("INSERT INTO INFO VALUES ('"+time+"',"+tem+")");
         
//              } 
//          catch (SQLException e)
//              {
//                System.out.println("Kunne ikke indsætte værdier: "+e);
//                }
           
//            }


//  public void SletData() throws SQLException
//      { 
//        stmt.execute("delete * FROM INFO");
     
//      }
     
  public String HentPat() throws SQLException

       
        ResultSet rs = stmt.executeQuery("select CPRnr, Navn, Adresse, Postnr, By, TLFnr from patienten");
             
          while (rs.next())
          {  int cpr = rs.getInt("CPRnr"); 
              String pnavn = rs.getString("Navn");
              int padresse = rs.getInt("Adresse");
              int ppostnr = rs.getInt("Postnr");
              String pby = rs.getString("By");
              int ptlf = rs.getInt("TLFnr");
              a = a+"\n"+cpr+"\n"+pnavn+"\n"+padresse+"\n"+ppostnr+"\n"+pby+"\n"+ptlf;
             
          }
return a;         
}
    public String HentFam(String x) throws SQLException

       
        ResultSet rs = stmt.executeQuery("select * from patienten"); Det er her det går galt
             
          while (rs.next())
          {  int cpr = rs.getInt("CPRnr"); 
              String pnavn = rs.getString("Navn");
              int padresse = rs.getInt("Adresse");
              int ppostnr = rs.getInt("Postnr");
              String pby = rs.getString("By");
              int ptlf = rs.getInt("TLFnr");
              x = x+"\n"+cpr+" "+pnavn+" "+padresse+" "+ppostnr+" "+pby+" "+ptlf;
          }
        return x; 
}         
     

         
}       


//  public Vector HentData() throws SQLException
//  {
//        Vector total = new Vector();
//        ResultSet rs = stmt.executeQuery("select * from INFO");
//        while (rs.next())
//        {
//            temperatur d = new temperatur ( rs.getString(1), rs.getString(2), rs.getInt(3));
//            total.addElement(d);
//          } 
//        return total;
//    }   
//       
//

Hurtige svar belønnes bedst!!!!Det er eksamensopgave.
Avatar billede flimmerdreng Nybegynder
04. juni 2005 - 23:23 #1
rettelse til ovenstående. Det er metoden ovenover det går galt i resultset
Avatar billede erikjacobsen Ekspert
04. juni 2005 - 23:27 #2
By er et reserveret ord. Hvilken database anvender du?
Avatar billede flimmerdreng Nybegynder
05. juni 2005 - 00:20 #3
Jeg anvender MS ACCESS
Avatar billede erikjacobsen Ekspert
05. juni 2005 - 00:44 #4
Så skriv [by] i stedet for. Også i dine create-sætninger.
Avatar billede flimmerdreng Nybegynder
05. juni 2005 - 01:01 #5
det prøver jeg lige. Det virkede heller ikke. Desværre. Har du andre forslag
Avatar billede jakoba Nybegynder
05. juni 2005 - 02:57 #6
Du indsætter dine data i en tabel der hedder 'INFO' og prøver at hente dem ud af en der hedder 'patienten'
Avatar billede flimmerdreng Nybegynder
05. juni 2005 - 09:38 #7
Alt der udkommenteret har jeg ikke brugt. Dvs. alt med //. det fungerer ikke i mit program. Jeg har oprettet en tabel som hedder patienten i toppen af programmet
Avatar billede erikjacobsen Ekspert
05. juni 2005 - 09:43 #8
Du er velkommen til at vise os den kode, der ikke virker.
Avatar billede flimmerdreng Nybegynder
05. juni 2005 - 09:50 #9
public class Database
{
  private Connection forb;
  private Statement stmt;
  String a = "";
  public void Database()

  { try
    { 
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection forb = DriverManager.getConnection("jdbc:odbc:Patienter");
    stmt = forb.createStatement();
   
    stmt.executeUpdate("create table patienten (CPRnr int, Navn varchar(32), Adresse int, Postnr int, By varchar(32), TLFnr int)" ); 
    stmt.executeUpdate("create table familie (CPRnr int, Navn varchar(32), Adresse int, Postnr int, By varchar(32), TLFnr int, Mobiltlf int, Navn2 varchar(32), Adresse2 int, Postnr2 int, By2 varchar(32), TLFnr2 int, Mobiltlf2 int)" );
    stmt.executeUpdate("create table doktor (CPRnr int, Navn varchar(32), Adresse int, Postnr int, By varchar(32), TLFnr int)" );
    stmt.executeUpdate("create table medicin (CPRnr int, Medicin1 varchar(32), Dagligt1 int, Medicin2 varchar(32), Dagligt2 int, Medicin3 varchar(32), Dagligt3 int, Medicin4 varchar(32), Dagligt4 int, Medicin5 varchar(32), Dagligt5 int, Medicin6 varchar(32), Dagligt6 int, Doseringsdato int)" );
   
    }
    catch (Exception a)
    {
        System.out.println("Kan ikke oprette data: "+a);
    }
  }
  public String HentPat() throws SQLException

       
        ResultSet rs = stmt.executeQuery("select CPRnr, Navn, Adresse, Postnr, By,  TLFnr from patienten");
        Den linie herover kommer med NPE, når den kaldes fra min brugerflade           
          while (rs.next())
          {  int cpr = rs.getInt("CPRnr"); 
              String pnavn = rs.getString("Navn");
              int padresse = rs.getInt("Adresse");
              int ppostnr = rs.getInt("Postnr");
              String pby = rs.getString("By");
              int ptlf = rs.getInt("TLFnr");
              a = a+"\n"+cpr+"\n"+pnavn+"\n"+padresse+"\n"+ppostnr+"\n"+pby+"\n"+ptlf;
             
          }
return a;         
}
    public String HentFam(String x) throws SQLException

       
        ResultSet rs = stmt.executeQuery("select * from patienten");
        Den linie herover kommer med NPE, når den kaldes fra min brugerflade     
          while (rs.next())
          {  int cpr = rs.getInt("CPRnr"); 
              String pnavn = rs.getString("Navn");
              int padresse = rs.getInt("Adresse");
              int ppostnr = rs.getInt("Postnr");
              String pby = rs.getString("By");
              int ptlf = rs.getInt("TLFnr");
              x = x+"\n"+cpr+" "+pnavn+" "+padresse+" "+ppostnr+" "+pby+" "+ptlf;
          }
        return x; 
}         
}
}       
Dette er den kode som ikke virker. Har skrevet under de 2 steder som fejlen opstår i.
Avatar billede flimmerdreng Nybegynder
05. juni 2005 - 09:52 #10
Ups tror der er en klamme for meget. Den er uden betydning. Den er ikke med i mit program.
Avatar billede mikkelbm Nybegynder
05. juni 2005 - 10:42 #11
Du må få smidt en eller anden exception i hovedet. Kan vi ikke se stacktrace på den?
Avatar billede arne_v Ekspert
05. juni 2005 - 10:56 #12
catch (Exception a)
    {
        System.out.println("Kan ikke oprette data: "+a);
    }

->

    catch (Exception a)
    {
        e.printStackTrace();
        System.out.println("Kan ikke oprette data: "+a);
    }

vil nok hjælpe lidt på fejlsøgningen
Avatar billede erikjacobsen Ekspert
05. juni 2005 - 11:00 #13
Som jeg sagde før: I stedet for by skal du skrive [by]  - eksempel:

        ResultSet rs = stmt.executeQuery("select CPRnr, Navn, Adresse, Postnr, [By],  TLFnr from patienten");
Avatar billede erikjacobsen Ekspert
05. juni 2005 - 11:01 #14
Bliver din metode Database() kaldt? Eller skulle det have været en constructor?
Avatar billede arne_v Ekspert
05. juni 2005 - 11:03 #15
ja - det er jo nok med 99.9999% sandsynelighed en constructor
Avatar billede arne_v Ekspert
05. juni 2005 - 11:04 #16
og hele konstruktionen er farlig - en exception i Database constructor/metoden
og så skal der ske en null pointer exception i HentPat fordi stmt er null
Avatar billede flimmerdreng Nybegynder
05. juni 2005 - 12:21 #17
import java.util.*;
import java.sql.*;

public class Database
{
  private Connection forb;
  private Statement stmt;
  String a = "";
  String b = "";
  String c = "";
  String d = "";
 
  public void Database()

  { try
    { 
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection forb = DriverManager.getConnection("jdbc:odbc:Patienter");
    stmt = forb.createStatement();
   
    stmt.executeUpdate("create table patienten (CPRnr int, Navn varchar(32), Adresse int, Postnr int, by varchar(32), TLFnr int)" ); 
    stmt.executeUpdate("create table familie (CPRnr int, Navn varchar(32), Adresse int, Postnr int, by varchar(32), TLFnr int, Mobiltlf int, Navn2 varchar(32), Adresse2 int, Postnr2 int, by2 varchar(32), TLFnr2 int, Mobiltlf2 int)" );
    stmt.executeUpdate("create table doktor (CPRnr int, Navn varchar(32), Adresse int, Postnr int, by varchar(32), TLFnr int)" );
    stmt.executeUpdate("create table medicin (CPRnr int, Medicin1 varchar(32), Dagligt1 int, Medicin2 varchar(32), Dagligt2 int, Medicin3 varchar(32), Dagligt3 int, Medicin4 varchar(32), Dagligt4 int, Medicin5 varchar(32), Dagligt5 int, Medicin6 varchar(32), Dagligt6 int, Doseringsdato int)" );
   
    }
    catch (Exception a)
    {
        a.printStackTrace(); 
        System.out.println("Kan ikke oprette data: "+a);
    }
  }

  public String HentPat() throws SQLException

       
        ResultSet rs = stmt.executeQuery("select CPRnr, Navn, Adresse, Postnr, by, TLFnr from patienten");
             
          while (rs.next())
          {  int cpr = rs.getInt("CPRnr"); 
              String pnavn = rs.getString("Navn");
              int padresse = rs.getInt("Adresse");
              int ppostnr = rs.getInt("Postnr");
              String pby = rs.getString("by");
              int ptlf = rs.getInt("TLFnr");
              a = a+"\n"+cpr+"\n"+pnavn+"\n"+padresse+"\n"+ppostnr+"\n"+pby+"\n"+ptlf;
             
          }
return a;         
}
    public String HentFam() throws SQLException

       
        ResultSet rs = stmt.executeQuery("select * from familie");
             
          while (rs.next())
          {  int cpr = rs.getInt("CPRnr"); 
              String fnavn = rs.getString("Navn");
              int fadresse = rs.getInt("Adresse");
              int fpostnr = rs.getInt("Postnr");
              String fby = rs.getString("by");
              int ftlf = rs.getInt("TLFnr");
              int fmob = rs.getInt("Mobiltlf"); 
              String fnavn2 = rs.getString("Navn2");
              int fadresse2 = rs.getInt("Adresse2");
              int fpostnr2 = rs.getInt("Postnr2");
              String fby2 = rs.getString("by2");
              int ftlf2 = rs.getInt("TLFnr2");
              int fmob2 = rs.getInt("Mobiltlf2");
              b = b+"\n"+cpr+"\n"+fnavn+"\n"+fadresse+"\n"+fpostnr+"\n"+fby+"\n"+ftlf+"\n"+fmob+"\n"+fnavn2+"\n"+fadresse2+"\n"+fpostnr2+"\n"+fby2+"\n"+ftlf2+"\n"+fmob2;
          }
        return b; 
}         
    public String HentDok() throws SQLException

       
        ResultSet rs = stmt.executeQuery("select * from doktor");
             
          while (rs.next())
          {  int cpr = rs.getInt("CPRnr"); 
              String dnavn = rs.getString("Navn");
              int dadresse = rs.getInt("Adresse");
              int dpostnr = rs.getInt("Postnr");
              String dby = rs.getString("by");
              int dtlf = rs.getInt("TLFnr");
              c = c+"\n"+cpr+"\n"+dnavn+"\n"+dadresse+"\n"+dpostnr+"\n"+dby+"\n"+dtlf;
             
          }
return c;         
}

    public String HentMed() throws SQLException

       
        ResultSet rs = stmt.executeQuery("select * from medicin");
             
          while (rs.next())
          {  String med1 = rs.getString("Medicin1"); 
              String dgl1 = rs.getString("Dagligt1");
              String med2 = rs.getString("Medicin2");
              String dgl2 = rs.getString("Dagligt2");
              String med3 = rs.getString("Medicin3");
              String dgl3 = rs.getString("Dagligt3");
              String med4 = rs.getString("Medicin4");
              String dgl4 = rs.getString("Dagligt4");
              String med5 = rs.getString("Medicin5");
              String dgl5 = rs.getString("Dagligt5");
              String med6 = rs.getString("Medicin6");
              String dgl6 = rs.getString("Dagligt6");
              int dosis = rs.getInt("Doseringsdato");
              d = d+"\n"+med1+"\n"+dgl1+"\n"+med2+"\n"+dgl2+"\n"+med3+"\n"+dgl3+"\n"+med4+"\n"+dgl4+"\n"+med5+"\n"+dgl5+"\n"+med6+"\n"+dgl6+"\n"+dosis;
             
          }
return d;         
}
         
}       
Det er den nye kode og her mit printStackTrace

java.sql.SQLException: [Microsoft][ODBC Microsoft Access-driver] Tabellen "patienten" findes allerede.

    at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)

    at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)

    at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3111)

    at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:338)

    at sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate(JdbcOdbcStatement.java:288)

    at Database.Database(Database.java:21)

    at __SHELL2.run(__SHELL2.java:7)

    at bluej.runtime.ExecServer.vmSuspend(ExecServer.java:186)

    at bluej.runtime.ExecServer$3.run(ExecServer.java:673)
Jeg kan selv se at tabellen patienten eksisterer i forvejen. Hvordan kommer jeg uden om den fejl.
Avatar billede arne_v Ekspert
05. juni 2005 - 13:23 #18
undlader at lave CREATE TABLE hvis tabellen eksisterer i forvejen formoder jeg
Avatar billede flimmerdreng Nybegynder
05. juni 2005 - 13:42 #19
Det virker hvis jeg kører den udenom min applet, men henter jeg den via min knap på appletten kommer den med nullpointer og det gør den ikke selvstændigt. Kan jeg prøve det samme med printstacktrace på min knap
Avatar billede arne_v Ekspert
05. juni 2005 - 13:48 #20
Jeg er lidt skeptisk overfor brugen af JDBC ODBC bridge i en applet.

Det vil vel kun virke hvis alle dem der skal køre den applet har en DSN
som peger på den rigtige database ??
Avatar billede flimmerdreng Nybegynder
05. juni 2005 - 14:09 #21
Her kommer min kode til appletten. Det er knappen CPROK som ikke virker eller hvad der nu sker.

// Dette er et eksempel på simple brugerflader i awt...ktr 2003.08.18
import java.util.*;  // Importerer en pakke med nanvnet utilities som gør os i stand til at anvende de foruddefinerede klasser
import java.io.*;  // Importerer en pakke med nanvnet input/output
import java.applet.Applet;  // Importerer en pakke med nanvnet applet
import java.awt.*;  // Importerer en pakke med nanvnet abstract windows toolkit
import java.awt.event.*;    // Importerer en pakke med nanvnet awt event. kan udføre handlinger
import java.sql.*;

public class Brugerflade extends Applet  implements ActionListener // Laver en udviddet applet og gør os i stand til at lytte
{                                                                // efter en handling

// først defineres vores variabler :
    Button KnapDagplan, KnapFamilie, KnapAftaler, KnapMedicin, KnapJournal, KnapAndet, KnapOK, KnapOKCPR, KnapDoktor, KnapAndet2, KnapJournal2, KnapDagplan2, KnapAftaler2;
    TextArea SkriveFlade;
    TextField Bruger, PWD, CPR;
    Label Forfatter, Til;
   
    Database data = new Database();
    Andet and = new Andet();
    Aftaler aft = new Aftaler();
    Journal ajour = new Journal();
    Dagplan dag = new Dagplan();
   



//***************************************************************************
    public void init()  // Her initialiseres brugerfladen når browseren kalder siden

   
    {  setLayout(new FlowLayout()); // andre layouts kan indsættes
      data.Database();
// så laver vi nye komponent objekter :   
// Her defineres hver enkelt knap ud fra klassen Button og hvad der står i knappen på forhånd
        Bruger = new TextField("Brugernavn");
        Bruger.setColumns(12);
        PWD = new TextField("Password");
        PWD.setColumns(12);
        CPR = new TextField("Indtast CPR-nummer");
        CPR.setColumns(12);
        KnapOKCPR = new Button("CPR OK");
        KnapDagplan = new Button("Dagens gøremål");
        KnapFamilie = new Button("Pårørende");
        KnapAftaler = new Button("Aftaler");
        KnapMedicin = new Button("Medicin Cardex");
        KnapJournal = new Button("Patient-Journal");
        KnapAndet = new Button("andet");
        KnapOK = new Button("OK");
        KnapDoktor = new Button("Egen læge");
        KnapDagplan = new Button("Opd. Dagplan");
        KnapJournal = new Button("Opd. Journal");
        KnapAftaler = new Button("Opd. Andet");
        KnapAndet = new Button("OK");
        SkriveFlade = new TextArea(25,50); // Her defineres et vindue til uskrift og størrelsen ud fra klassen Textarea
       
        Forfatter = new Label("Flemming Steenstrup Jakobsen");    // Her defineres en label ud fra klassen Label
       
// komponenterne sættes på canvasen :
       
        add(Bruger);
        add(PWD);
        add(KnapOK);
        add(CPR);
        add(KnapOKCPR);
        add(KnapDagplan);
        add(KnapFamilie);
        add(KnapAftaler);
        add(KnapMedicin);
        add(KnapJournal);
        add(KnapAndet);
        add(KnapDoktor);
        add(KnapDagplan);
        add(Forfatter);
        add(SkriveFlade);
       
       
       
// vi beder java om at lytter på brugerens adfærd :     
       
        KnapDagplan.addActionListener(this);
        KnapOKCPR.addActionListener(this);
        KnapFamilie.addActionListener(this);
        KnapAftaler.addActionListener(this);
        KnapMedicin.addActionListener(this);
        KnapJournal.addActionListener(this);
        KnapAndet.addActionListener(this);
        KnapOK.addActionListener(this);
        KnapDoktor.addActionListener(this);
        KnapJournal.addActionListener(this);
        KnapDagplan.addActionListener(this);
        KnapAndet.addActionListener(this);


    } 
 
// Hvis der bliver trykket på en knap, har vi 6 muligheder : Det er et 
  public void actionPerformed(ActionEvent e)
  {

        if (e.getSource() == KnapOK)
       
          { 
              try 
              { 
                  SkriveFlade.setText("CPR-nummer er korrekt ");
                 
                 
                }
              catch (Exception fejl)
              {  SkriveFlade.setText("Indtastningsfejl... Prøv igen " + fejl); 
                }
            } 
           
        if (e.getSource() == KnapOKCPR)
       
          { 
              try 
              { 
                  SkriveFlade.setText(data.HentPat());
                 
                 
                }
              catch (Exception fej2)
              {
                fej2.printStackTrace();
                System.out.println("Indtastningsfejl... Prøv igen " + fej2); 
              }
            } 
     
        if (e.getSource() == KnapDagplan)
       
          { 
              try 
              { 
                 
                  SkriveFlade.setText(dag.hentDagplan());
                 
                }
              catch (Exception fej3)
              {  SkriveFlade.setText("Data ikke tilgængelig " + fej3); 
                }
            } 
          if (e.getSource() == KnapFamilie)
          {
              try
                {
                  SkriveFlade.setText(data.HentFam());
                }
             

            catch (Exception fejl4)
                {
                  SkriveFlade.setText("Fejl i forbindelsen... Prøv senere " + fejl4);
                }
      }
      if (e.getSource() == KnapAftaler)
       
          { 
              try 
              { 
                 
                  SkriveFlade.setText(aft.hentAftaler());
                }
              catch (Exception fejl5)
              {
                  SkriveFlade.setText("Data ikke tilgængelig " + fejl5);
                }
            } 
      if (e.getSource() == KnapMedicin)
       
          { 
              try 
              { 
                  SkriveFlade.setText(data.HentMed());   
                }
              catch (Exception fejl6)
              {
                  SkriveFlade.setText("Fejl i forbindelsen... Prøv senere " + fejl6);
                }
            }
      if (e.getSource() == KnapJournal)
       
          { 
              try 
              { 
                  SkriveFlade.setText(ajour.hentJournal());
                }
              catch (Exception fejl7)
              {
                  SkriveFlade.setText("Data ikke tilgængelig " + fejl7);
                }
        } 
           
      if (e.getSource() == KnapAndet)
       
          { 
              try 
              { 

                  SkriveFlade.setText(and.hentAndet());
                 
                }
              catch (Exception fej8)
              {  SkriveFlade.setText("Fejl i forbindelsen... Prøv senere " + fej8); 
                }
            }
      if (e.getSource() == KnapDoktor)
       
          { 
              try 
              { 
                  SkriveFlade.setText(data.HentDok());
                 
                 
                }
              catch (Exception fej9)
              {  SkriveFlade.setText("Indtastningsfejl... Prøv igen " + fej9); 
                }
            } 
}       
}


Herunder den Exception som opstår. Første del er når brugerfladen init. så skal forbindelsen til databsen oprettes.
java.security.AccessControlException: access denied (java.lang.RuntimePermission accessClassInPackage.sun.jdbc.odbc)
    at java.security.AccessControlContext.checkPermission(Unknown Source)
    at java.security.AccessController.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkPackageAccess(Unknown Source)
    at sun.applet.AppletSecurity.checkPackageAccess(Unknown Source)
    at sun.applet.AppletClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at Database.Database(Database.java:16)
    at Brugerflade.init(Brugerflade.java:32)
    at sun.applet.AppletPanel.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Kan ikke oprette data: java.security.AccessControlException: access denied (java.lang.RuntimePermission accessClassInPackage.sun.jdbc.odbc)

Her er anden del når jeg trykker på knappen, men den virker nok, bare den sikkerhed bliver fjernet eller hvad det nu er.
java.lang.NullPointerException
    at Database.HentPat(Database.java:58)
    at Brugerflade.actionPerformed(Brugerflade.java:119)
    at java.awt.Button.processActionEvent(Unknown Source)
    at java.awt.Button.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
Indtastningsfejl... Prøv igen java.lang.NullPointerException

Håber stadig I vil hjælpe. Jeg skal aflevere mit program imorgen
Avatar billede arne_v Ekspert
05. juni 2005 - 14:31 #22
har du rettet brugen af by ?

har du fjernet det overflødige void ?
Avatar billede arne_v Ekspert
05. juni 2005 - 14:31 #23
Og hvad med DSN-appley problemet ??
Avatar billede erikjacobsen Ekspert
05. juni 2005 - 14:36 #24
Jeg begynder at se hvad du laver ;)   

Hvorfor skal det være en applet?

Du kan ikke fra en applet til en Access database. Du kunne gøre det med MSSql eller MySql. Tænk over den generelle model: en applet hentes fra en webserver, på webserveren ligger Access-filen, den kan ganske enkelt ikke tilgås fra en fremmed klient via TCP/IP.

Så i stedet for at rette de mange fejl du har, så: Hvad er det du vil?
Avatar billede flimmerdreng Nybegynder
05. juni 2005 - 15:02 #25
brugen af by er ændret fra By til by. Det overflødige void er fjernet nu. Det med DSN er det ikke DNS du tænker på. Jeg har lavet en database på samme måde før, så det skal ikke være noget problem. Jeg har brugt MS ACCESS på det samme netværk uden om nettet. Det skal bare være sådan at det virker i første omgang. Husk jeg er ikke så erfaren må man sige.
Jeg har måtte fjerne kaldet på data.Database() i appletten da den ikke peger på noget mere så nu ser billedet anderledes ud. Nu er der mere galt.

java.security.AccessControlException: access denied (java.lang.RuntimePermission accessClassInPackage.sun.jdbc.odbc)
    at java.security.AccessControlContext.checkPermission(Unknown Source)
    at java.security.AccessController.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkPackageAccess(Unknown Source)
    at sun.applet.AppletSecurity.checkPackageAccess(Unknown Source)
    at sun.applet.AppletClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at Database.<init>(Database.java:16)
    at Brugerflade.<init>(Brugerflade.java:18)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at java.lang.Class.newInstance0(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at sun.applet.AppletPanel.createApplet(Unknown Source)
    at sun.plugin.AppletViewer.createApplet(Unknown Source)
    at sun.applet.AppletPanel.runLoader(Unknown Source)
    at sun.applet.AppletPanel.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Kan ikke oprette data: java.security.AccessControlException: access denied (java.lang.RuntimePermission accessClassInPackage.sun.jdbc.odbc)
java.lang.NullPointerException
    at Database.HentPat(Database.java:58)
    at Brugerflade.actionPerformed(Brugerflade.java:119)
    at java.awt.Button.processActionEvent(Unknown Source)
    at java.awt.Button.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
Indtastningsfejl... Prøv igen java.lang.NullPointerException
Avatar billede erikjacobsen Ekspert
05. juni 2005 - 15:17 #26
Men skal det være en applet? Det er den umiddelbare årsag til fejlbeskeden omkring sikkerhed.
Avatar billede flimmerdreng Nybegynder
05. juni 2005 - 15:20 #27
OK men hvordan skal det så laves. Jeg skal have lavet nogle knapper, tekstfelter og en skriveflade. Jeg er ny i det her og skal aflevere min eksamensopgave imorgen. Hvis det ikke er for svært er det OK
Avatar billede arne_v Ekspert
05. juni 2005 - 15:22 #28
nej - DSN - du bruger JDBC ODBC bridge med DSN
Avatar billede erikjacobsen Ekspert
05. juni 2005 - 15:23 #29
Men skal det være en applet? Der må stå noget i din opgave om hvordan det forventes den løses. Hvis opgaven siger applet, skal du selvfølgelig forholde dig til det. Men hvis den siger det "bare" skal være et java-program, skal du nøjes med det - så burde det være nemmere.

PS: Du skal ikke regne med vi (hvis jeg må tillade mig at udtale mig på andres vegne) løser din eksamensopgave for dig. Men måske du kan få hjælp når du går i stå.
Avatar billede flimmerdreng Nybegynder
05. juni 2005 - 15:35 #30
ja det forstår jeg. men det er jo også derfor at jeg netop spørger, da jeg er gået i stå her. Og så det at den pludselig kommer med en fejl jeg ikke har set før. Det virker på mig som om, at der er sket en ændring i java efter opdateringen da det har virket før med et andet program
Avatar billede erikjacobsen Ekspert
05. juni 2005 - 15:36 #31
Men skal det være en applet?
Avatar billede flimmerdreng Nybegynder
12. juni 2005 - 10:34 #32
jeg har afleveret min opgave. Den blev fin. Nu sidder jeg og spekulerer på, hvordan jeg kan udbygge den. Kan man foretage en søgning ud fra et felt i databasen f.eks et cprnummer så jeg får personens opllysninger udskrevet. Altså skrive cprnummer i et tekstfelt og eksekvere via en knap.
Avatar billede flimmerdreng Nybegynder
13. juni 2005 - 15:58 #33
tak for hjælpen klarede det selv
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