[ jocat @ 29.12.2005. 12:42 ] @
| Koristim sledeći kod :
Code:
try {
Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
Connection conn = (Connection) DriverManager.getConnection(
"jdbc:jtds://sqlserver/table","username", "pass");
String query = "SELECT * FROM table";
Statement stmt = conn.createStatement();
ResultSet rset = stmt.executeQuery(query);
// Citanje rezultata upita
while (rset.next()) {
System.out.println(rset.getString(1));
}
rset.close();
stmt.close();
conn.close();
}
catch(Exception e1){
System.out.println("Nisam bas uspeo da se konektujem!");
}
Red Class.forName prolazi,
dok u redu Connection puca, tj ne može da se konektuje kako treba ...
Kako se tačno navodi parametar u getConnection-u ? Kako saznati tačno šta ide posle jdbc:jtds:// ?
Hvala unapred na odgovorima ? |
[ bgd2500 @ 29.12.2005. 15:35 ] @
Probaj ovako
Code:
...
String url = "jdbc:jtds:sqlserver://server:port/database;User=username;Password=password";
Connection conn = DriverManager.getConnection(url);
..
http://jtds.sourceforge.net/faq.html
[ _owl_ @ 29.12.2005. 16:09 ] @
Preporucuje se da se za konektovanje na bazu koristi DataSource objekat umesto ucitavanja drajvera preko classloader-a. U tvom primeru ne treba da koristis poziv metode newInstance().
Code:
import net.sourceforge.jtds.jdbcx.JtdsDataSource;
...
public class DBLink {
Connection connection;
...
private void makeConnection() throws DBException {
try {
JtdsDataSource ds=new JtdsDataSource();
ds.setUser(dbc.getConfigKey("username"));
ds.setPassword(dbc.getConfigKey("password"));
ds.setServerName(dbc.getConfigKey("host"));
ds.setDatabaseName(dbc.getConfigKey("database"));
Connection connection=ds.getConnection();
connection.setAutoCommit(false);
setConnection(connection);
} catch (Exception e) {
System.out.println(e);
throw new DBException("Greska pri konektocvanju na bazu\r\n" + e);
}
}
...
[ jocat @ 20.06.2006. 12:14 ] @
Evo jednog veoma čudnog problema, što se dešava prilikom konektovanja preko jtds na SQL Server :
Do sad sam vršio samo isčitavanje podataka sa SQL Server-a, i sve je radilo OK. Sad kad se javila potreba da upišem nešto u bazu, javio se problem da se query izvrši, i prođe bez javljanja greške, a da se isti taj "INSERT" ne zapisuje u bazu. Ukoliko promenim user name ili pass, tad program redovno javlja odgovarajuću grešku,..
Pokušao sam da taj isti INSERT prekopiram u pustim u Analizer-u, i tako sve radi kako treba - tj upiše slog u bazu.
Unutar istog koda sa istom konekcijom, kad izvršim select upit, sve radi kako treba.
Da postoji neko ograničenje na upis u bazu, verovatno bi trebalo da bude ispisana greška ?
Isto tako, iz Analizer-a ne bi bio dozvoljen upis u tabelu ...
Hvala veliko na odgovorima unapred!
[ zoran.milakovic @ 02.07.2006. 09:48 ] @
Da li si izvrsio commit konekcije? Jer, ako ti je autoCommit=false, moras explicitno da ga pozoves, da bi ti promene u bazi bile trajne.
[ jocat @ 04.07.2006. 06:20 ] @
Da to je bio problem!
Uzgred da li je autoCommit nacin da se ne desi da se rezervisu isti kljucevi prilikom upisa u bazu ? Ustvari za sta je stvarno namenjeno autoCommit ?
Pozzdrav!
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.