Konuyu görüntüle
IUCODERS FORUM > Programlama > JAVA > Java - M$ SQL Server connection
Yazar
kitapkurdu


avatar

Kayıt: 24.09.2006
20.10.2006-12:55 #10679
merhaba arkadaslar, java dan MSSQL server uzerindeki stored procedureleri cagirmak, sorgu yapmak gibi seyler yapmak istiyorum. server baglantisi kurabilmek icin sql server driver i gerekiyor galiba, (gerekmiyorda olabilir :)). sun in boyle bir driver i mevcutmudur, ya da daha once kullanip begendiginiz bir driver var midir?

tesekkureler.





Yazar
mscamci


avatar

Kayıt: 09.02.2006
20.10.2006-13:38 #10680
JDK'nın içinde built-in olan JDBC-ODBC Bridge'le bağlanabilirsin. Bu durumda driver gerekmez. Daha doğrusu bridge zaten driver ın kendisi. Ama tavsiye etmem, Type 1 driver olduğu için diğerlerinden daha yavaş çalışır (ya da öyle olduğu söylenir).

Driver üretmek Sun'ın işi değil db üreticisinin işi, şu adreste Microsoft'un kendi driver'ını bulabilirsin. Type 4'tür, en tavsiye edilenidir.

http://www.microsoft.com/downloads/details.aspx?FamilyID=4F8F2F01-1ED7-4C4D-8F7B-3D47969E66AE&displaylang=en

Şu adreste de jTDS'i bulabilirsin. Open source'tur, type 4'tür, hem SQL server'da hem sybase'de çalıştığı söylenir.

http://jtds.sourceforge.net/

Ama diyeceğim o ki Microsoft'un driver'ına da SQL Server'ın kendisine de güven olmaz. Çok sık verdiği bir hata var ki, -tam hatırlamıyorum ama, "Cannot find datasource" gibi birşey diyordu- bu hatayı sık sık ve her şey çalışır vaziyetteyken vermesi olası bir durumdur.





Topçu Onba?? - A?r?/Do?ubeyaz?t
Yazar
kitapkurdu


avatar

Kayıt: 24.09.2006
20.10.2006-15:30 #10681
tesekkurler mscamci, jtds driver i indirdim ve eclipse te builtpath -> Add Libraries den jar i ekledim projeye. yalniz simdide soyle bir problemim var. Basit olarak bir SP cagirayim dedim ama debug ederken surekli source not found hatasi yiyorum, DB hatasi midir bu? yoksa baska bir hatam mi var acaba?





Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
20.10.2006-18:18 #10682
o jtds nin kaynak kodudur buyuk bir ihtimalle. istersen kaynak kodunu indirip attach et o zaman daha detaylı dabug çıktısı gorebilirsin.





N/A
Yazar
mscamci


avatar

Kayıt: 09.02.2006
20.10.2006-21:18 #10683
Source not found olayını biraz açarsan yardımcı olabiliriz. Class not found mu? Yoksa Database/datasource not found mu? Stack trace'i falan buraya gönderirsen ya da en iyisi hata olarak verdiği cümleyi buraya yazarsan ya da Google'da aratırsan çözersin. Bir de her zaman için en düşük işlemden başla, mesela önce Connection sağlanıyor mu ona bir bak.

(Bu satırları yazdığım sırada çok şiddetli bir deprem oldu)





Topçu Onba?? - A?r?/Do?ubeyaz?t
Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
21.10.2006-11:57 #10688
debug yaparken F5 ile satırları dolaşırsın Attach Source derse F7 yapıp onu pas geçersin. F6 ise o an debug olan kodun çağırdığı dosyaya gitmesini engellersin





N/A
Yazar
kitapkurdu


avatar

Kayıt: 24.09.2006
26.10.2006-08:57 #10717
araya bayram tatili girince konu biraz sogudu ama sorunlar devam ediyor :). simdi de remote olarak oracle server a connection kurmaya calisirken "Got minus one from a read call" hatasi veriyor.

kod asagida ;


url : jdbc:oracle:thin:@IP:port:DBName

try {
Connection connection ;
Class.forName("oracle.jdbc.driver.OracleDriver");

connection = DriverManager.getConnection(url, username, pass);
connection.close();
} catch (SQLException e) {
System.out.println("SQLError : " + e.getMessage());
}
catch(ClassNotFoundException cnEx){
System.out.println("ClassError : " + cnEx.getMessage());
}





Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
26.10.2006-10:38 #10718
oracle 10.1 den sonra driverlarını değiştirdi. db sürümüne uygun jdbc driverını indir. oracle sana session vermiyor sanırım. kodda sorun yok.





N/A
Yazar
kitapkurdu


avatar

Kayıt: 24.09.2006
31.10.2006-14:27 #10799
Merhaba

Jdbc Odbc driver ile MS Sql server a baglanirken olusturulan connection string;

jdbc:odbc:dbname

olarak belirtiliyor. benim DB baska bir makinedeyse ip de belirtmem gerekiyor. yani remote olunce soyle mi oluyor;

jdbc:odbc:IP//DBName





Yazar
mscamci


avatar

Kayıt: 09.02.2006
31.10.2006-16:32 #10800
Şuna bak:

http://forum.java.sun.com/thread.jspa?threadID=556070&messageID=2726264

Şu cümle özetlemiş:

The JDBC-ODBC bridge is just a bridge between JDBC and ODBC and ODBC does not support remote data sources (i.e. data sources defined on other machines), so whateved JDBC-ODBC bridge you have it still won't work. However, ODBC does support local data sources that refer remote databases.





Topçu Onba?? - A?r?/Do?ubeyaz?t
Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
31.10.2006-19:11 #10801
odbc ilkel ve bir okadar gerzek bir teknolojidir.
http://jtds.sourceforge.net/ burdan gerekli jar dosyasını indir. claspath ine ekle gerekli dokumantasyonu sitesinde bulabilirsin





N/A
Yazar
kitapkurdu


avatar

Kayıt: 24.09.2006
01.11.2006-09:29 #10821
jtds driver i ile baglanmaya calisiyorum ama asagidaki hatayi aliyorum, sonra microsoft un kendi driver iyla login olmaya calisiyorum ama yine ayni "Login failed for user MyUser" hatasi aliyorum. Username ve password dogru ama login olamiyorum.

Birde beles bir MS SQL server client i biliyor musunuz?

java.sql.SQLException: Login failed for user 'MyUser'.
at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:365)
at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2781)
at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2224)
at net.sourceforge.jtds.jdbc.TdsCore.login(TdsCore.java:599)
at net.sourceforge.jtds.jdbc.ConnectionJDBC2.<init>(ConnectionJDBC2.java:331)
at net.sourceforge.jtds.jdbc.ConnectionJDBC3.<init>(ConnectionJDBC3.java:50)
at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:178)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at com.argela.SP.getSPName.GetSP.main(GetSP.java:31)






Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
01.11.2006-10:31 #10825
sql server da "use sql server and windows authentication" diye bir seçenek olması lazım.
management konsolda servera sağ tık yapınca orda bir yerlerde olması lazım.
sql sp3a yı mutlaka kur.
üzerinde çalışacağın bir veritabanı oluştur.
onun için bir kullanıcı oluştur.






N/A
Yazar
kitapkurdu


avatar

Kayıt: 24.09.2006
01.11.2006-12:22 #10827
connection string im asagidaki sekilde. acaba securiy icin bir deger falan girmem gerekiyor mu?

jdbc:jtds:sqlserver://IP:Port/DBName;user=MyUser;password=MyPass





Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
01.11.2006-12:45 #10828
kitapkurdu yazdi
 
connection string im asagidaki sekilde. acaba securiy icin bir deger falan girmem gerekiyor mu?

jdbc:jtds:sqlserver://IP:Port/DBName;user=MyUser;password=MyPass

kullanıcı adı MyUser ve şifresi MyPass diye bir kullanıcı var mı?
var ise bu kullanıcının mevcut veri tabanında işlem yetkisi var mı?
sp3a yı kurdun mu?
bağlantı stringi şöyle bir şeydir.
jdbc:jtds:sqlserver://127.0.0.1:1433/dbadi;user=dbkullanicisi;password=kullanicininsifresi
bağlantı yaptığın kodu buraya yazabilir misin?





N/A
1 2
Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb