Avatar billede telep Nybegynder
29. april 2008 - 12:39 Der er 6 kommentarer og
1 løsning

Forbinde til MS SQL 2005 - classpath error

Hej,

Jeg ved godt der findes 1000 tråde om dette, men jeg kan desværre ikke få det til at spille.

Jeg vil gerne fra Netbeans 6.1 forbinde til min MS SQL Server 2005.
Jeg har hentet denne:
http://msdn.microsoft.com/en-us/data/aa937724.aspx
og lagt den under:
C:\Programmer\MSJDBC\sqljdbc_1.2\enu\sqljdbc.jar

Jeg har i Netbeans tilføjet den under properties for projektet, til libraries og compile.

Jeg har nu følgende kode:

    try
    {
        String connectionUrl = "jdbc:sqlserver:myServer;" +
            "databaseName=tm2;user=sa;password=";
        String jdbcPath = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
       
        Class.forName(jdbcPath);
        Connection con = null;
        con = DriverManager.getConnection(connectionUrl);
       
        CallableStatement cStm = con.prepareCall("{? = CALL CallInsertNewSM(?,?)}");
       
        Timestamp ts = new Timestamp(System.currentTimeMillis());
             
        cStm.setTimestamp("@StartTime", ts);
        cStm.setInt("@CallPaternID", 2380);
       
        cStm.execute();
    }
    catch (Exception err)
    {
        try
        {
            FileWriter fw1 = new FileWriter("c:/m1.txt", true);
            PrintWriter pw1 = new PrintWriter(fw1);
            pw1.println("err: " +err.toString());
            pw1.close();
        }
        catch (Exception err2)
        {
        }
    }

Som det kan regnes ud fejler funktionen og der bliver skrevet dette i logfilen:

err: java.sql.SQLException: No suitable driver found for jdbc:sqlserver:myServer;databaseName=tm2;user=sa;password=

Nogen der ved hvad jeg mangler at gøre?
Avatar billede arne_v Ekspert
29. april 2008 - 15:02 #1
hm - det ser OK ud - jeg plejer at bruge:

jdbc:sqlserver://myServer;...

(med to slasher foran hostnavn)

men jeg tror ikke at det goer forskellen.
Avatar billede telep Nybegynder
29. april 2008 - 15:27 #2
Det gjorde sørme forskellen...

Nu hvor vi er igang og to /'er har udløst svaret...
Kan du så ikke lige svare mig på hvordan jeg indsætter til et DateTime felt i databasen?
Som du kan se bruger jeg

        Timestamp ts = new Timestamp(System.currentTimeMillis());
           
        cStm.setTimestamp("@StartTime", ts);

for at indsætte en tid - men i virkeligheden vil jeg gerne indsætte en java.sql.date som jeg har trukket ud i fra en tidligere qry...

Er det noget du lige har liggende i ærmet?

Tak.
Avatar billede arne_v Ekspert
29. april 2008 - 15:57 #3
proev:

Timestamp ts = new Timestamp(dindate.getTime());
Avatar billede arne_v Ekspert
29. april 2008 - 15:57 #4
svar
Avatar billede arne_v Ekspert
29. april 2008 - 15:57 #5
Og det er f..... noget sjusk fra den driver udvikler at de 2 slasher er mandatory.
Avatar billede nielle Nybegynder
29. april 2008 - 16:22 #6
Er det ikke fordi at "jdbc:sqlserver" skal opfattes som vlrende protokollen? Og så skal der jo normalt være en "://" akkurat lige som i:

http://

?
Avatar billede arne_v Ekspert
29. april 2008 - 16:47 #7
Det er en URL, saa hvis man bruger en syntax som //host:port/database som mange
databaser goer, saa virker det logisk.

Men //host;DatabaseName=database er ikke specielt URL like. Jeg ville ikke
have gaettet paa at // var mandatory her fordi det ligner en traditionel
MS connection string.

Det staar JDBC driver udvikleren frit at vaelge den syntax han/hun foretraekker, saa
der er ikke overtraadt nogle regler.
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