Oprettet tor. d. 11. marts 2010 kl. 11:17:33

atheist
atheist (14.012 point. Point ude: 465)

Problemer

Jeg får følgende fejl når jeg forsøger at oprette forbindelse til min mssql-database via java:

[Microsoft][ODBC Driver Manager] Invalid string or buffer length

Filen jeg bruger til at oprette forbindelsen, kan ses her:

package DBLayer;

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;

/**
*
* @author Kasper
*/
public class DBConnection {

    //constans used to get access to the database
    //SQL Server
    private static final String  driver = "jdbc:odbc:";
      //MySql
    //private static final String  driver = "jdbc:mysql://localhost:3306/";
    private static final String  databaseName = "Westernstyle";
    //SQL Server
    private static final String  userName = "";
    private static final String password = "";
    //MySql password and username
    //private static final String  userName = "root";
    //private static final String password = "fisk";
    private DatabaseMetaData dma;
    private static Connection con;
    // an instance of the class is generetated
    private static DBConnection  instance = null;

    // the constructor is private to ensure that only one object of this class is createt
    private DBConnection()
    {
        String url = driver + databaseName;
        try{
            //load af driver
            //SQL Server
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            // mySQL
            //  Class.forName("org.gjt.mm.mysql.Driver");
        }
        catch(Exception e){
            System.out.println("Can not find the driver");
            System.out.println(e.getMessage());
        }//end catch
        try{
            //connection to the database
            con = DriverManager.getConnection(url, userName,password);
            //set autocommit
            con.setAutoCommit(true);
            dma = con.getMetaData(); // get meta data
            System.out.println("Connection to " + dma.getURL());
            System.out.println("Driver " + dma.getDriverName());
            System.out.println("Database product name " + dma.getDatabaseProductName());
        }//end try
        catch(Exception e){
            System.out.println("Problems with the connection to the database");
            System.out.println(e.getMessage());
        }//end catch
    }//end  constructor

  //closeDb: closes the connection to the database
    public static void closeConnection()
    {
          try{
            con.close();
            System.out.println("The connection is closed");
        }
        catch (Exception e){
            System.out.println("Error trying to close the database " +  e.getMessage());
        }
    }//end closeDB

    //getDBcon: Get-metode, returnerer forbindelsen til databasen
    public  Connection getDBcon()
    {
      return con;
    }
    //this method is used to get the instance of the connection
    public static DBConnection getInstance()
    {
        if (instance == null)
        {
          instance = new DBConnection();
        }
        return instance;
    }

}//end DbConnection

Så vidt jeg kan se, drejer det sig om, at jeg forsøger at indsætte en værdi der ikke passer til den tabel jeg forsøger at sætte det ind i, men jeg kan ikke se hvor jeg sætter noget ind i databasen.

Skrevet tor. d. 11. marts 2010 kl. 16:07:19| #1

arne_v
arne_v (1.005.658 point)
Hvilken linie i Java giver fejlen ?

(de vil hjaelpe lidt paa troubleshooting)

Skrevet tor. d. 11. marts 2010 kl. 16:09:27| #2

arne_v
arne_v (1.005.658 point)
Andet som ikke relaterer sig direkte til problemet:

1)  JDBC ODBC bridgen er a piece of crap. Jeg vil anbefale dig at bruge Microsofts JDBC driver for SQLServer.

2)  En connection wrapper er sjaelden god at have som singleton. En connection pool er tit singleton, men det er noget lidt andet.

Skrevet fre. d. 12. marts 2010 kl. 09:29:20| #3

atheist
atheist (14.012 point)
den kaster exceptionen i linjen der hedder:
con = DriverManager.getConnection(url, userName,password);

Problemet er, at dette er en fil vi har fået fra vores lærere. De andre i gruppen kan sagtens få det til at virke, men af en eller anden grund, er det kun mig der ikke kan få det til at køre...

Skrevet man. d. 29. marts 2010 kl. 00:54:23| #4

arne_v
arne_v (1.005.658 point)
Hvad indeholder url ?

Skrevet man. d. 26. april 2010 kl. 03:32:07| #5


Skrevet man. d. 17. januar 2011 kl. 17:23:54| #6


Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Ændret dato visning i SQL Express

Oprettet den 9. februar 2012 kl. 14.50
simsen giver 30 point for svar | Giv et svar »

Kan ikke få forbindelse til SQL Server...

Oprettet den 9. februar 2012 kl. 11.07
VVC2620 giver 60 point for svar | Giv et svar »

Fejl i data, hvis data er omkredset af {} så skal de...

Oprettet den 9. februar 2012 kl. 09.37
jokkejensen giver 200 point for svar | Giv et svar »

Seneste guides

Installer win 7
Den gode bruger


   




Tips & Tricks fra PC World

Teaser billede

Her er fem sjove danske websider du skal kende

Trænger dine lattermuskler til en omgang fitness på dansk? Vi viser vej til fem websider fyldt med humor og vanvittig satire.


Anmeldelser fra PC World

Teaser billede

Test: Denne super-tablet er iPads hårdeste konkurrent

Eee Pad Transformer Prime er frygtindgydende med sin quadcore processor og evne til at trylle sig om til bærbar. Apple bør kigge i bagspejlet, for Asus' tablet-pc kommer buldrende - og gør det...


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Nu kan du snart hente Windows 8

Den nye offentlige betaversion af Windows 8 er klar i denne måned.


Nyheder fra Computerworld

Teaser billede

Måske snart slut med Androids helt store problem

Android-platformen har længe været plaget af et særligt problem. Men måske er problemet nu ved at være elimineret.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger