Avatar billede sporge_jorgen Nybegynder
23. marts 2001 - 13:20 Der er 14 kommentarer og
2 løsninger

problemer med connection til MS SQL

Jeg har lavet en stored procedure i en MS SQL database og jeg har nogle problemer med at overføre en parameter fra Java og ned til databasen. Derfor tænkte jeg på om det kunne have noget med når jeg opretter en connection.
kan man definere at det er en MS SQL db den skal bruge eller har nogen andre bud på hvad fejlen kan være.

Min kode til at oprette connection er:
public ConnectionBean(){
  url1=\"jdbc:odbc:WAP\";
  dbUserId=\"bla\";
  password=\"123\";
  con=null;
}

public void createConnection() {   
try {
Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\").newInstance();
con = DriverManager.getConnection(url1, dbUserId, password);
}
       
catch (Exception e){
  System.out.println(e);
  }
}
Avatar billede disky Nybegynder
23. marts 2001 - 13:23 #1
ser umiddelbart fint ud.

hvordan kalde du din store procedure ?
Avatar billede sporge_jorgen Nybegynder
23. marts 2001 - 13:27 #2
CallableStatement cstmt = con.prepareCall(\"{call searchByName(?)}\");
       
cstmt.setString(1,\"microsoft\");

rs = cstmt.executeQuery();
       
if (! rs.next()) {
  System.out.println(\"Tomt resultset\");
  return null;
}
Avatar billede disky Nybegynder
23. marts 2001 - 13:33 #3
meget mystisk

jeg åbner en forbindelse til MySQL på følgende måde:
    public boolean openConnection(String server)
    {           
        try
        {
            if(con==null)
            {
                Class.forName(\"org.gjt.mm.mysql.Driver\").newInstance();
                con = DriverManager.getConnection(server,\"xxxx\", \"xxxx\");
                return true;
            }
        }
        catch (SQLException e)
        {
            e.printStackTrace(System.out);
        }
        catch (ClassNotFoundException e)
        {
            e.printStackTrace(System.out);
        }
        catch (InstantiationException e)
        {
            e.printStackTrace(System.out);
        }
        catch (IllegalAccessException e)
        {
            e.printStackTrace(System.out);
        }
        return false;
    }

hvor servernavn er \"jdbc:mysql://localhost/ClassOf2000\"

jeg tror lidt det er din \"sun.jbc....\" streng det er galt med.
Avatar billede sporge_jorgen Nybegynder
23. marts 2001 - 13:42 #4
det er også min mistanke men jeg har kan ikke lige finde en MS SQL driver så det var lidt det jeg satsede på at der var en der havde kendskab til hvor man kan finde den.
Avatar billede disky Nybegynder
23. marts 2001 - 13:46 #5
kig evt på
http://java.sun.com/products//jdk/1.1/docs/guide/jdbc/getstart/bridge.doc.html

eller

find en ny driver under:
http://industry.java.sun.com/products/jdbc/drivers

jeg kan ikke engang give dig det eksempel vi bruger på mit arbejde, for den bruge Connection pools.
Avatar billede disky Nybegynder
23. marts 2001 - 13:48 #6
prøv at byt din streng ud med:

jdbc:odbc:dsn_name

hvor dsn_name er navnet du har oprettet i ODBC tingen inde i dit control panel
p.s. find en ægte MsSQL JDBC driver, de er noget hurtigere
Avatar billede sporge_jorgen Nybegynder
23. marts 2001 - 14:06 #7
Jeg arbejder lige på om det kan være driveren.

Min streng ser iøvrigt ud sådan som du foreslår
Avatar billede disky Nybegynder
23. marts 2001 - 14:17 #8
så er det meget mystisk

og du har en ODBC oprettet der hedder \'WAP\' også med den case
Avatar billede sporge_jorgen Nybegynder
23. marts 2001 - 14:23 #9
yeps
Avatar billede disky Nybegynder
23. marts 2001 - 14:23 #10
så kunne jeg tro at din Stored Procedure måske er forkert.

Har du testet den via Visual Interdev ?
Avatar billede eskeman Nybegynder
23. marts 2001 - 14:33 #11
Har du slået ANSI fra i SystemDSN? Det kan godt have en vis betydning!
Avatar billede sporge_jorgen Nybegynder
23. marts 2001 - 14:36 #12
kan man dele pointene.
hvis ja så giv et svar for alt dit arbejde disky, selvom det faktisk var en bommert i systemDSn der var årsagen
Avatar billede disky Nybegynder
23. marts 2001 - 14:38 #13
ja du kan godt dele dem
Avatar billede sporge_jorgen Nybegynder
23. marts 2001 - 14:39 #14
så giv et svar disky
Avatar billede disky Nybegynder
23. marts 2001 - 14:40 #15
det bedste du kan gøre er at sparke den ODBC driver væk og bruge en ægte JDBC driver.

men til test er det andet godt nok :-)

p.s. God Weekend
Avatar billede sporge_jorgen Nybegynder
23. marts 2001 - 14:41 #16
tak i lige måned
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