Hej! Testa utan att ange databasename till att börja med (så enkelt som möjligt). Testa också att byta ut namnet på servern mot IP-adress för att eliminera namnupplösningsproblem. Har redan testat allt sådant jag kan komma på.. Microsofts egen jdbc driver mot sql-server är värdelös. Använd en komersiell driver från något annat företag eller kolla på jtds (open source) istället: http://jtds.sourceforge.net. De flesta komersiella jdbc-drivers bygger på denna och den senaste versionen är riktigt skarp. Microsofts driver är en komersiell driver... De har köpt den på licens av nåt bolag (kommer ej ihåg vilken). "Lite dålig"...den är faktiskt ganska värdelös. Nej, Blobar stöds inte...och inte heller Clobar. Om man konverterar ett SQL datum till ett Java Timestamp objekt, och sedan tillbaka igen tappar man millisekunderna, sekunderna matchar men inte millisekunderna. Drivern är grymt långsam om man jämför med andra, man måste alltid använda selectMethod=cursor. Man får ibland "Reread" error då man läser tabeller med NVARCHAR eller bilder...det går dock att lösa med hjälp av proxa drivern med MS JDBC Driver: MSJdbcProxy. Ok jag försöker mig på jdts.. Nu ser det ut så här: Ok jag ger upp att kontakta sqlserver via TCP/IP funkar inte.. Hej! Hittade inte netcfg.. Är Connection refused det ändå fel du får...kan du posta hela stacktracet så kanske jag kan hjälpa dig. Något mycket konstigt har inträffatKoppla upp mot sql databas med microsfto jdbc
Försöker koppla upp mot en datbas med microsft jdbc drivrutin istället för suns odbc brygga, vilken gav mig problem. Dock kunnde jag koppla upp.
Jag har installerat SP2 och lagt in de nödvändiga paketen i CLASSPATH.
Försöker koppla upp med följande kod.
Uppgifterna jag använder är exakt den samma som för den DSN jag använda innan (vilken fungerad).
Här är min kod:
String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String dbURL ="jdbc:microsoft:sqlserver://sqlservern:1433;databaseName=DB1";
try{
Class.forName(driverName);
Connection con = java.sql.DriverManager.getConnection(dbURL,login,password);
if(con!=null) System.out.println("Connection Successful!");
}
catch(Exception e){
e.printStackTrace();
System.out.println("Error Trace in getConnection() : " + e.getMessage());
}
Men det fungerar inte..
och jag får följande felmeddelande:
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:512)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at Connect.main(Connect.java:94)
Error Trace in getConnection() : [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socke
t.
..
Vad kan vara felet?
Det ska vara port 1433 som används ...
Sv: Koppla upp mot sql databas med microsfto jdbc
/KSv: Koppla upp mot sql databas med microsfto jdbc
Kanske har med porten att göra..
Hur vet jag vilken port jag skall använda.. om det inte är 1433Sv: Koppla upp mot sql databas med microsfto jdbc
/NilsSv: Koppla upp mot sql databas med microsfto jdbc
Men du har rätt, det är absolut inte den bästa. Exempelvis har den lite dåliga felmeddelanden och stöder inte BLOB'ar. BEA's driver som följer med WebLogic är betydligt bättre...
/KSv: Koppla upp mot sql databas med microsfto jdbc
Drivern har flera fel och ÄR långsam. Använd jtds...funkar klockrent och kostar inte en krona. En annan driver som också fungerar bra och som inte är särskilt dyr är i-net's: http://www.inetsoftware.de/English/Produkte/MERLIA/default.htm
/NilsSv: Koppla upp mot sql databas med microsfto jdbc
Vet inte riktigt hur jag skall skriva:
Om jag vill skapa en connection med
sqlservern: <minsqlserver> på port: <1111>, och databasen :<mindatabas>
med <login> och <password>.Sv: Koppla upp mot sql databas med microsfto jdbc
String driverName="net.sourceforge.jtds.jdbc.Driver";
String dbUrl="jdbc:jtds:sqlserver://minsqlserver:1433/mindb";
Class.forName(driverName);
Connection con = DriverManager.getConnection(dbUrl,login,password);
Men jag får felmeddelandet: Connection refused..
Sv: Koppla upp mot sql databas med microsfto jdbc
Har nog hittat rätt port nu tror jag, och det skapas en connection ESTABLISHED (tcpciew men sedan händer ingenting progrmmaet bara tuggar på..
Så jag tänkte försöka använda NamedPipes istället:
con = DriverManager.getConnection("jdbc:jtds:sqlserver://minsqlserver;DatabaseName=mindb;User=sa;Password=hemligt;domain=???????;namedPipe=true");
Vad ska jag ange som domän?
Sv: Koppla upp mot sql databas med microsfto jdbc
Du måste se till att databasen har tcp/ip påslaget. Görs enklast vi netcfg som du hittar i binn-biblioteket(Har jag för mig) i MSSQL-server.
/Per-ErikSv: Koppla upp mot sql databas med microsfto jdbc
men TCP/IP är enable, om jag tittar på network settings i ENterprise Manager!
DÅ borde väl TCP/IP vara påslaget.Sv: Koppla upp mot sql databas med microsfto jdbc
/NilsSv: Koppla upp mot sql databas med microsfto jdbc
Jag kan inte längre skapa en DSN till sqlservern
Det har alltid fungerat fram tills jag försökte skapa ett DSN där jag 'ndrad klientkonfigurationen till TCP/IP och en annan port..
Nu kan jag inte längre skapa en enda DSN trots att jag ändrat tillbaka klientkonfigurationen.. Finns det något sätt att återställa odbc inst'llningarna??
Mycket tacksam för hjälp!