Avatar billede voetmann Nybegynder
28. november 2002 - 16:31 Der er 81 kommentarer og
1 løsning

java mysql og nullpointer exception

Vi har nu rodet med denne fejl i et stykke tid nu.
Der bliver kastet en nullpointer exception når den når til at skulle eksekvere sql statement - ville bare blive lykkelig hvis en kunne forklare fejlen. Der er fyldt data i databasen.

koden er her:

import java.net.URL;
import java.sql.*;
import java.util.*;

interface DbInterface{
  static final String  driver = "jdbc:odbc:";
  static final String  databasenavn = "Auktion";
  static final String  brugernavn = "default";
  static final String password = "user";
 
/*public void findAlle(AbstractList list);
  public Object findId(int id);
  public boolean exists(int id);
  public int insert(Object e);
  public int update(Object e);
  public int delete(Object e);*/
 

 
  //statisk inner class
  class DbAdgang{
    DatabaseMetaData dma;
    static Connection con;
    public DbAdgang(){
        this(driver, brugernavn, password);
    }
    public DbAdgang(String odbcdrv,String bruger, String passwd)
      {
         
      String url = odbcdrv + databasenavn + ";";
       
        try{
            //load af driver
           
        // Class.forName("sun.jdbc.odbc.odbc");
            Class.forName("com.mysql.jdbc.Driver");
        //    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        }
        catch(Exception e){
            System.out.println("Kan ikke lokalisere driver");
            System.out.println(e.getMessage());
        }
        try{
          //forbindelse til databasen
            //  con = DriverManager.getConnection(url, bruger, passwd);
            con = DriverManager.getConnection("jdbc:mysql://localhost/auktion");

            dma = con.getMetaData(); //få fat i meta data
            System.out.println("Forbindelse til " + dma.getURL());
            System.out.println("Driver " + dma.getDriverName());
        }//slut try
        catch(Exception e){
            System.out.println("Problemer med forbindelse til databasen");
            System.out.println(e.getMessage());
        }//slut catch
      }
      public void closeDb(){
      try{
          con.close();
      }
      catch (Exception e){
          System.out.println("Fejl ved lukning " +  e.getMessage());
      }   
      }
      public static Connection getDBcon(){
          return con;
      }
    }
}
Avatar billede voetmann Nybegynder
28. november 2002 - 16:45 #1
Vi bruger MySQL database og en driver der hedder MySQL ODBC 3.51
Er der ikke nogen der kunne give en løsning på opsætningen af denne driver og hvad der skal skrives i javakoden for at opnå en tilfredsstillende connection til DB'en - [allan]
Avatar billede arne_v Ekspert
28. november 2002 - 16:45 #2
Men der er ikke nogen SQL statement i koden du har
postet.
Avatar billede arne_v Ekspert
28. november 2002 - 16:47 #3
Har I prøvet med:
  url = "jdbc:mysql://localhost/" + databasenavn;
?
Avatar billede arne_v Ekspert
28. november 2002 - 16:48 #4
Ovenstående forudsætter at databasen ligge på
samme maskien som jeres Java program, men ellers
erstatter i bare localhost med den server der kører
MySQL.
Avatar billede voetmann Nybegynder
28. november 2002 - 16:49 #5
nej de ligger i en klasse for sig selv - det er ikke mine prepared statements der fejler noget, det er den "skide" driver - (er det ikke min connection string og load af driveren der er noget"skod" ??) - [allan]
Avatar billede voetmann Nybegynder
28. november 2002 - 16:50 #6
kører på samme maskine
Avatar billede arne_v Ekspert
28. november 2002 - 16:51 #7
Prøv med den URL jeg foreslår.
Avatar billede voetmann Nybegynder
28. november 2002 - 16:53 #8
har prøvet - virker ikke
Avatar billede arne_v Ekspert
28. november 2002 - 16:55 #9
Altså:

interface DbInterface{
  static final String  urlprefix = "jdbc:mysql://localhost/";
  static final String  databasenavn = "Auktion";
  static final String  brugernavn = "default";
  static final String password = "user";
 
...

    public DbAdgang(){
        this(urlprefix, brugernavn, password);
    }
    public DbAdgang(String conprefix,String bruger, String passwd)
      {
         
      String url = conprefix + databasenavn;
Avatar billede voetmann Nybegynder
28. november 2002 - 16:55 #10
I min erklæring med Class.forName hvad refererer den egentligt til, og tror du at den er OK?
Avatar billede arne_v Ekspert
28. november 2002 - 16:56 #11
Kan I prøve og printe url lige før connection og
poste hvad den er ?

Er MySQL i standard opsætning ? (lytter på port 3306)
Avatar billede arne_v Ekspert
28. november 2002 - 16:57 #12
Class.forName loader driveren.

DriverManager.getConnection laver forbindelsen.
Avatar billede arne_v Ekspert
28. november 2002 - 16:58 #13
Er det Class.forName der fejler eller
DriverManager.getConnection ?
Avatar billede voetmann Nybegynder
28. november 2002 - 16:59 #14
Avatar billede voetmann Nybegynder
28. november 2002 - 16:59 #15
Class.forName - mangler henvsning til korrekt driver! - hvordan???
Avatar billede arne_v Ekspert
28. november 2002 - 17:00 #16
Hvis Class.forName fejler, så er det typisk fordi
jar-filen med JDBC-driveren ikke er i classpath
eller fordi driver navnet er stavet forkert.

Hvis DriverManager.getConnection fejler, så er det
typisk fordi brugernavn/password ikke passer,
databasen ikke køre, databasen kører på en
anden port eller der er en firewall imellem som
blokerer.
Avatar billede arne_v Ekspert
28. november 2002 - 17:02 #17
Har i jar-filen med MySQL JDBC driver i
classpath ?
Avatar billede voetmann Nybegynder
28. november 2002 - 17:06 #18
hvilken jar fil - kørte bare installeren til driveren - har ikke haft manuelt fat i nogen pakke - hvad hedder pakken ????
Avatar billede arne_v Ekspert
28. november 2002 - 17:08 #19
Så vidt jeg ved kommer JDBC driveren ikke sammen med
MySQL men skal downloades separat !
Avatar billede arne_v Ekspert
28. november 2002 - 17:09 #20
Avatar billede voetmann Nybegynder
28. november 2002 - 17:09 #21
har downloaded driveren og installeret den - det var en installer og ikke en pakke !!!
Avatar billede arne_v Ekspert
28. november 2002 - 17:10 #22
Download enten tar.gz eller zip.

Udpak.

Tilføj jar-fil til classpath.
Avatar billede arne_v Ekspert
28. november 2002 - 17:10 #23
Hvis du så tilføjer jar-filen til din class-path, så
bør du kunne loade driveren.
Avatar billede voetmann Nybegynder
28. november 2002 - 17:30 #24
plages stadig af null pointer exception - skal jeg ligge den pakke ned i mit java bibliotek og hvor helt præcist?
Avatar billede voetmann Nybegynder
28. november 2002 - 17:31 #25
er denne skrevet korrekt?? - Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Avatar billede arne_v Ekspert
28. november 2002 - 17:32 #26
Ja, men det er JDBC ODBC driveren.

Mod MySQL bør du absolut bruge MySQL JDBC driver.
Avatar billede arne_v Ekspert
28. november 2002 - 17:34 #27
Hvis jar-filen hedder xyz.jar (jeg kan ikke huske hvad den
faktisk hedder), så skal du have den i din classpath.

Kommando-linie:
  java -classpath xyz.jar mainclass

IDE:
  tilføj den jar-fil til classpathen via diverse
  menuer (afhænger af hvilken IDE du bruger)
Avatar billede voetmann Nybegynder
28. november 2002 - 17:36 #28
`tog fejl - vores hedder ("com.mysql.jdbc.Driver")
Avatar billede arne_v Ekspert
28. november 2002 - 17:38 #29
Ja og den tror jeg er god nok.

Du kan verficere at den er i jar-filen med:

jar tvf xyz.jar

(erstat xyz med det faktiske navn)
Avatar billede voetmann Nybegynder
28. november 2002 - 17:40 #30
Koden ser nu sådan ud og fejlmeddelelse ser sådan ud. Det kan være at det er til lidt hjælp nu!  :

Fejl:C:\Programmer\jdk1.3\bin\java.exe  ServerMain
Working Directory - c:\RMI281102\RMIServer\
Class Path - .;c:\programmer\kawa 5.0\kawaclasses.zip;c:\programmer\jdk1.3\lib\tools.jar;c:\programmer\jdk1.3\jre\lib\rt.jar;c:\programmer\jdk1.3\jre\lib\i18n.jar
Forbindelse til jdbc:mysql://localhost/auktion

Driver Mark Matthews' MySQL Driver

Annoncetjeneste registreret.


Insert exception i db: java.lang.NullPointerException

SELECT * FROM annonce WHERE pris = '425'

Query exception: java.lang.NullPointerException

Varebeskrivelse: null
Pris: 0
Oprettet den: null
Findes i kategorien: null
Indrykket af: null

Process Exit...


import java.net.URL;
import java.sql.*;
import java.util.*;

interface DbInterface{
    static final String url = "jdbc:mysql://localhost/";
    static final String databasenavn = "auktion";
    static final String brugernavn = "default";
    static final String password = "user";
 
  class DbAdgang{
    DatabaseMetaData dma;
    static Connection con;
   
   
//*******************************************************************************************
    public DbAdgang()
      {
          this(url,brugernavn,password);
      }
//*******************************************************************************************         
    public DbAdgang(String conprefix,String bruger,String passwd)
      {
          String url = conprefix+databasenavn;
       
        try{
       
            Class.forName("com.mysql.jdbc.Driver");
            }
           
        catch(Exception e){
            System.out.println("Kan ikke lokalisere driver");
            System.out.println(e.getMessage());
        }
        try{
         
            con = DriverManager.getConnection(url);

            dma = con.getMetaData();
            System.out.println("Forbindelse til " + dma.getURL());
            System.out.println("Driver " + dma.getDriverName());
        }
       
        catch(Exception e){
            System.out.println("Problemer med forbindelse til databasen");
            System.out.println(e.getMessage());
        }
      }
     
     
     
     
     
//*******************************************************************************************     
      public void closeDb(){
      try{
          con.close();
      }
      catch (Exception e){
          System.out.println("Fejl ved lukning " +  e.getMessage());
      }   
      }
     
//*******************************************************************************************     
      public static Connection getDBcon(){
          return con;
      }
//*******************************************************************************************
    }
}
Avatar billede arne_v Ekspert
28. november 2002 - 17:45 #31
Class.forName og DriverManager.getConnection virker !

Det er INSERT og SELECT som fejler.

Og den kode er ikke med ovenfor.
Avatar billede voetmann Nybegynder
28. november 2002 - 17:50 #32
her er metoden:

public int insert(Object e)
    {
        Annonce a = (Annonce) e;
        int rc=-1;
        String query="INSERT INTO annonce VALUES('"+
                                      a.getBesk()+"', '"+
                                      a.getPris()+"', '"+
                                      a.getDateOpret()+"', '"+
                                        a.getBrugerID()+"', '"+
                                    a.getKategori()+"')";
 
      try{
              Statement stmt = con.createStatement();
              rc = stmt.executeUpdate(query);
       
          }   
          catch(Exception ex){
              System.out.println("Insert exception i db: "+ex);
          }
      return(rc);
    }
Avatar billede arne_v Ekspert
28. november 2002 - 18:00 #33
Der ser jo umiddelbart meget rigtigt ud.

Men - er con blevet initialiseret med
con fra den anden stump kode ?

con = DBAdgang.getDBcon();

eller noget i den stil ?
Avatar billede voetmann Nybegynder
28. november 2002 - 18:00 #34
jeps!
Avatar billede voetmann Nybegynder
28. november 2002 - 18:02 #35
hvis vi finder løsninger, så sender jeg dig squ en flaske rød af den gode drue!
[allan]
Avatar billede arne_v Ekspert
28. november 2002 - 18:03 #36
Hvad siger:

System.out.println("con=" + con);
              Statement stmt = con.createStatement();
System.out.println("stmt=" + stmt);
              rc = stmt.executeUpdate(query);
?
Avatar billede voetmann Nybegynder
28. november 2002 - 18:11 #37
Den når aldrig til udførsel af :
con = DriverManager.getConnection(url)
Derfor ingen con - Og dermed roden til alt ondt
Hvordan skal con oprettes?
Avatar billede voetmann Nybegynder
28. november 2002 - 18:19 #38
en print af con giver følgende:

con.mysql.jdbc.jdbc2.Connection@216869
Avatar billede arne_v Ekspert
28. november 2002 - 18:22 #39
Det ser OK ud.

Og selvfølgelig udfører den:
  con = DriverManager.getConnection(url)
hvordan skulle den ellers kune udskrive:
Forbindelse til jdbc:mysql://localhost/auktion
?
Avatar billede arne_v Ekspert
28. november 2002 - 18:24 #40
Hvad med stmt ?

Og databasen bliver vel ikke lukket ?
Avatar billede voetmann Nybegynder
28. november 2002 - 18:32 #41
da vi prøvede at skrive til consol med stmt - illegal handling

databasen bliver ikke lukket på noget tidspunkt!
Avatar billede voetmann Nybegynder
28. november 2002 - 18:33 #42
con fra den anden klasse = NULL - derfor exception
Avatar billede arne_v Ekspert
28. november 2002 - 18:34 #43
Prøv med:

if(stmt==null)
  System.out.println("stmt==null);
else
  System.out.println("stmt!=null);
Avatar billede voetmann Nybegynder
28. november 2002 - 18:38 #44
hvis con = NULL og stmt tager con som parameter, så vil den jo altid være NULL - ikke sandt eller ?
Avatar billede arne_v Ekspert
28. november 2002 - 18:39 #45
OK - så er spørgsmålet jo hvorfor er den null !

Kalder den ikke getDBcon ?

Returnerer getDBcon noget som er null ?
Avatar billede arne_v Ekspert
28. november 2002 - 18:40 #46
Ja - jeg havde ikke set din sidste kommentar da jeg
skrev.

Hvis con er null så dør con.createStatement.
Avatar billede voetmann Nybegynder
28. november 2002 - 18:46 #47
Ja ! DbInterface.DbAdgang.getDBcon() returnerer NULL
Men lokalt i DbInterface er con=con.mysql.jdbc.jdbc2.Connection@216869
hvilket vel er en reference af en slags. Hvorfor er den så Null ved kald udenfor DbInterface??
Avatar billede arne_v Ekspert
28. november 2002 - 18:55 #48
Mystisk.

Men der er også noget mystisk i den kode du har postet.

Det ser ud som der er en class inden i et interface ????
Avatar billede arne_v Ekspert
28. november 2002 - 18:58 #49
Kan du ikke bare have:

import java.net.URL;
import java.sql.*;
import java.util.*;

public class DbAdgang{
    static final String url = "jdbc:mysql://localhost/";
    static final String databasenavn = "auktion";
    static final String brugernavn = "default";
    static final String password = "user";
 
    DatabaseMetaData dma;
    Connection con;
...

      public static Connection getDBcon(){
          return con;
      }
}

og have:

DBAdgang dba = new DBAdgang(diverse argumenter);

con = dba.getDBcon();

?
Avatar billede voetmann Nybegynder
28. november 2002 - 19:06 #50
Jo - Men så ryger ideen med arkitekturen lidt. DbAdgang ligger som "static inner class" i DbInterface.
I dit eksempel vil der vel også komme konflikt mellem en ikke statisk connection con, og "public static Connection getDBcon()" ?
Avatar billede arne_v Ekspert
28. november 2002 - 19:09 #51
Ups. Ja den sidste static skulle også slettes.

Jeg forsøger bare at finde en forklaring på, hvorfor
con bliver sat til noget og så alligevel er null.
Avatar billede voetmann Nybegynder
28. november 2002 - 19:14 #52
Måske skal du have koden fra begge klasser igen ?
Avatar billede arne_v Ekspert
28. november 2002 - 19:15 #53
Hvorfor iøvrigt den meget specielle konstruktion (som jeg
aldrig har set før) ?

Hvorfor ikke enten have en normal klasse eller en
klasse hvor alt er erklæret static ?
Avatar billede arne_v Ekspert
28. november 2002 - 19:16 #54
Det var måske ikke nogen dårlig ide.
Avatar billede voetmann Nybegynder
28. november 2002 - 19:22 #55
Her er begge klasser som de ser ud i der fulde version - bemærk at disse har tidligere virker fint med MS Access!


import java.net.URL;
import java.sql.*;
import java.util.*;

interface DbInterface{
    static final String url = "jdbc:mysql://localhost/";
    static final String databasenavn = "auktion";
    static final String brugernavn = "default";
    static final String password = "user";
 
  class DbAdgang{
    DatabaseMetaData dma;
   
    static Connection con;
   
   
//*******************************************************************************************
    public DbAdgang()
      {
          this(url,brugernavn,password);
      }
//*******************************************************************************************         
    public DbAdgang(String conprefix,String bruger,String passwd)
      {
          String url = conprefix+databasenavn;
       
        try{
       
            Class.forName("com.mysql.jdbc.Driver");
            }
           
        catch(Exception e){
            System.out.println("Kan ikke lokalisere driver");
            System.out.println(e.getMessage());
        }
        try{
         
            con = DriverManager.getConnection(url,bruger,passwd);
           
            System.out.println("con ="+con);
           
            dma = con.getMetaData();
            System.out.println("Forbindelse til " + dma.getURL());
            System.out.println("Driver " + dma.getDriverName());
        }             
        catch(Exception e){
            System.out.println("Problemer med forbindelse til databasen");
            System.out.println(e.getMessage());
        }
      }
     
     
//*******************************************************************************************     
      public void closeDb(){
      try{
          con.close();
      }
      catch (Exception e){
          System.out.println("Fejl ved lukning " +  e.getMessage());
      }   
      }
     
//*******************************************************************************************     
      public static Connection getDBcon(){
          return con;
      }
//*******************************************************************************************
    }
}












import java.sql.*;
import java.net.URL;
import java.util.*;

public class DbAnnonce implements DbInterface{
    private ResultSet results;
    private ResultSetMetaData rsmd;
    private DatabaseMetaData dma;
    private Connection con;
    private Annonce annonce;
   
//    private String navn;
//******************************************************************   
    public DbAnnonce()
    {
      con = DbInterface.DbAdgang.getDBcon();
      System.out.println("ny test af con "+con);
    }
//******************************************************************
    public Object findPris(int pris)
    {
        return (Annonce) singleWhere("pris = "+"'"+pris+"'");
       
    }
//******************************************************************
    public int insert(Object e)
    {
        Annonce a = (Annonce) e;
        int rc=-1;
        String query="INSERT INTO annonce VALUES('"+
                                      a.getBesk()+"', '"+
                                      a.getPris()+"', '"+
                                      a.getDateOpret()+"', '"+
                                        a.getBrugerID()+"', '"+
                                    a.getKategori()+"')";
       
         
      try{
              System.out.println("hallocon ="+con);
              Statement stmt = con.createStatement();
           
                   
        System.out.println("hallo stmt="+stmt);
              rc = stmt.executeUpdate(query);
       
          }   
          catch(Exception ex){
              System.out.println("Insert exception i db: "+ex);
          }
      return(rc);
    }
//******************************************************************
    private Annonce singleWhere(String wClause)
    {
        Annonce a =new Annonce();
       
        String query="SELECT * FROM annonce";
       
        if (wClause.length()>0)
            query=query+" WHERE "+ wClause;
            System.out.println(query);
        try{
            Statement stmt = con.createStatement();
            results = stmt.executeQuery(query);
            if( results.next() ){
                a = new Annonce();
               
               
                  a.setBesk(results.getString(1));
                  a.setPris(results.getInt(2));
                a.setDateOpret(results.getString(3));
                a.setBrugerID(results.getString(4));
                a.setKategori(results.getString(5));
                }
       
        }
        catch(Exception e){
            System.out.println("Query exception: "+e);
        }
        return a;
    }
}
Avatar billede olly Nybegynder
28. november 2002 - 19:24 #56
Prøv lige at lad os se koden til begge klasser tak... For jeg synes det virker som om du aldrig får lavet en instans af dbAdgang
Avatar billede olly Nybegynder
28. november 2002 - 19:25 #57
Du åbner aldrig connectionen!
Avatar billede olly Nybegynder
28. november 2002 - 19:25 #58
Prøv at ændre getDBcon til det her

  public static Connection getDBcon(){
          DbAdgang();
          return con;
      }
Avatar billede olly Nybegynder
28. november 2002 - 19:27 #59
Lige et tillægsspørgsmål!

Går du på NOEA?
Avatar billede olly Nybegynder
28. november 2002 - 19:29 #60
Ups du opretter jo en connection...
Avatar billede arne_v Ekspert
28. november 2002 - 19:29 #61
Hvad sker der, hvis du fjerner static fra con og getDBcon ?

Rent gæt: jeg har ingen erfaring med interfaces med
inner static classes. Men jeg har mistanke til
konstruktionen. Og jeg er lidt skeptisk overfor,
at den eksakt kode kører med ODBC-Access men ikke
mod MySQL. con null eller ikke null burde intet have
med det at gøre.
Avatar billede voetmann Nybegynder
28. november 2002 - 19:30 #62
hvad da?? - det gør du måske også ??
Avatar billede olly Nybegynder
28. november 2002 - 19:32 #63
Dimitere i morgen ;)

Så jeg har gået der... Ligner noget kode du har fra 2 sem på NOEA nemlig
Avatar billede olly Nybegynder
28. november 2002 - 19:33 #64
Kan altså ikke se det smarte i det design med det interface...
Avatar billede voetmann Nybegynder
28. november 2002 - 19:34 #65
Hvis "static" fjernes opstår
java.lang.IncompatibleClassChangeError
Avatar billede voetmann Nybegynder
28. november 2002 - 19:35 #66
olly - So true, so true. (og tillykke)
Avatar billede olly Nybegynder
28. november 2002 - 19:40 #67
Tak tak... Dy får da aldrig en connection lavet...
Avatar billede olly Nybegynder
28. november 2002 - 19:42 #68
Du mangler et kald til DbAdgang()
Avatar billede voetmann Nybegynder
28. november 2002 - 19:46 #69
placeret i hvilken sammenhæng ??  - hvor skal det implmenteres i koden ??
Avatar billede voetmann Nybegynder
28. november 2002 - 19:47 #70
vi overgiver os for en liden stund - aftensmaden venter ovenpå!
- men vil da gerne ha lidt hjælp alligevel - er tilbage på pinden om 20 min.
Avatar billede arne_v Ekspert
28. november 2002 - 19:52 #71
Jeg er lost !

Muligvis vil jeg sætte mig ned og eksperimentere
lidt med interfaces med inner static classes.
Avatar billede olly Nybegynder
28. november 2002 - 19:58 #72
Hvis i laver det sådan her virker det, men jeg er bare ikke med på det interface

    public DbAnnonce()
    {
      DbInterface.DbAdgang a = new  DbAdgang() ;
      con = a.getDBcon();
      System.out.println("ny test af con "+con);
    }
Avatar billede olly Nybegynder
28. november 2002 - 20:00 #73
arne>> Jeg kan ikke se ideen med et interface på den måde...

Interfaces er da til at diff metoder...
Avatar billede olly Nybegynder
28. november 2002 - 20:03 #74
Fatter bare ikke for du har jo en forbindelse i et indlæg tidligere...

------------
Forbindelse til jdbc:mysql://localhost/auktion
------------

Men den connection får du jo ikke brugt kan jeg se...
Avatar billede arne_v Ekspert
28. november 2002 - 20:10 #75
Jeg har eksperimenteret lidt og det kan simpelethen
ikke virke på den måde.

Olly har ret.

Du skal have en:

DbInterface.DbAdgang a = new DBInterface.DbAdgang();

er sted i koden inden du kalder:

DbInterface.DbAdgang.getDBcon();
     
!
Avatar billede arne_v Ekspert
28. november 2002 - 20:12 #76
Test eksempel:

Weird.java:

package weird;

public interface Weird {
    class X {
        static String v = null;
        public X() {
            v = "something";
            System.out.println(v);
        }
        public static String getV() {
            System.out.println(v);
            return v;
        }
    }
}

TestWeird.java:

package weird;

public class TestWeird {

    public static void main(String[] args) {
        Weird.X a = new Weird.X(); // <----
        String v = Weird.X.getV();
        System.out.println(v);
    }
}

Denne version er OK. Men hvis du udkommenterer
den markerede linie, så får vi null.
Avatar billede arne_v Ekspert
28. november 2002 - 20:14 #77
Du kan putte den famøse linie ind hvor som helst
og du behøver heller ikkr bruge objektet til noget.

Men grundet designet (som jeg stadigvæk synes er
meget mystisk) så skal der kaldes en constructor
inden getDBcon !
Avatar billede olly Nybegynder
28. november 2002 - 20:15 #78
Du skal hvert fald have din DbAdgang() kaldt for du får driver loadet og oprettet en connection, som du kan hente og bruge til at kalde på... Hvorfor vil du absolut have det interface? Interfaces er til at diffinere metoder...
Avatar billede olly Nybegynder
28. november 2002 - 20:18 #79
Men som arne skriver så er det ligemeget hvopr du får kaldt DdAdgang(). Det skal bare gøres inde du kalder getDBcon(). Jeg har testet med at ligge det i en anden klasse også...

Og så vil jeg anbefale at se på et singelton mønster til database adgang.
Avatar billede voetmann Nybegynder
29. november 2002 - 09:52 #80
arne kan du kontaktes på icq/messenger
Avatar billede arne_v Ekspert
29. november 2002 - 09:55 #81
Jeg er for gammel til ICQ.

Du kan sende mig en email på arne_v@mail.danbbs.dk !

(jeg vil dog først læse den i aften - jeg flyver hjem
i eftermiddag)
Avatar billede olly Nybegynder
29. november 2002 - 11:37 #82
Hvis du vil bruge mig via MSN er det på admin@ollyworld.dk

Er der ingen point for:

http://www.eksperten.dk/spm/288794

?

Fik du det til at virke?
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