När jag försöker koppla upp mig till databasen MS SQL Server 2008 från java får jag följande felmeddelande: "java.sql.SQLException: [Microsoft][ODBC Driver Manager] Ogiltig l?ngd p? str?ng eller buffert"
Testet vid ODBC fungerar bra (se bild).
Mina "kopplingar" i MS SQL se bild 2. När jag kopplar upp mig i "Microsoft SQL Server Management Studio" anger jag inget användarnamn eller lösenord. Server type: Database Engine, Server name: X3M-PC, Authentication: Windows Authentication.
Här är javakoden jag använder som fungerar i skolan:
Lösenord tror jag inte jag valt här hemma för SQL och provat olika användarnamn men får hela tiden samma felmeddelande.
import java.sql.*;
public class Main {
static Connection conn;
static Statement st;
public static void main(String[] args) throws SQLException {
try {
DriverManager.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver());
} catch (Exception e) {
System.out.println("Kan inte hitta database driver class: " + e);
}
try {
conn = DriverManager.getConnection("JDBC:ODBC:myServer;database=test;", "skolans login", "skolans lösen");
} catch (Exception e) {
System.out.println("Kan inte hitta database driver class: " + e);
}
System.out.println("Connection Established - SUCCESS!");
try {
st = conn.createStatement();
} catch (Exception e) {
System.out.println("9999Kan inte hitta database driver class: " + e);
}
System.out.println("Statment är OK");
//Skriver ut
String sqlStr = "select s.spnr,s.sname,l.kkod,l.betyg ";
sqlStr += " from student s , laser l";
sqlStr += " where s.spnr = l.spnr ";
ResultSet rset = st.executeQuery(sqlStr); // returnerar resultset
while (rset.next()) {
System.out.println(rset.getString(1) + " " +
rset.getString(2) + " " +
rset.getString(3) + " " +
rset.getInt(4));
}
} // main
} // JDBCTest

