| Author |
JdbcOdbc Connection
|
Ajay Chauhan
Greenhorn
Joined: Dec 10, 2003
Posts: 5
|
|
Hi! all..... i am facing a problem while executing the following code.The program runs fine if i give DSN variable as.... String dsn = "jdbc dbc:Test"; but when i try to give my DSN variable by attaching my machine ip address to it in the following manner an error results.. String dsn = "jdbc dbc://172.17.211.38:400/Test"; i m connecting to an MS Access database with dsn name as 'Test' configured thru Data Sources(ODBC) in control panel.....and by now u must have understood that i want to connect to my database from a different machine in the LAN....pls. help me. the error is: java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6031) at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:6188) at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:2458) at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:3 20) at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:163) at java.sql.DriverManager.getConnection(DriverManager.java:517) at java.sql.DriverManager.getConnection(DriverManager.java:177) at Connect.select(Dbase.java:52) at Dbase.main(Dbase.java:15) the code is: import java.sql.*; import java.util.*; import sun.jdbc.odbc.*; class Dbase { public static void main(String[] args) { Connect inst_Connect = new Connect(); inst_Connect.Ajay(); try { inst_Connect.select(); } catch (Exception ee1) { ee1.printStackTrace(); } } } class Connect { void Ajay() { // Load the JDBC-ODBC bridge driver try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch( ClassNotFoundException ee) { ee.printStackTrace(); } } void select() throws SQLException { try { // ODBC data source name Connection con; System.out.println("1 \n"); String dsn = "jdbc dbc://172.17.211.38:400/Test"; //String dsn = "jdbc dbc:Test"; String user = ""; String password = ""; // Connect to the database con = DriverManager.getConnection(dsn, user, password); System.out.println("2 \n"); // Shut off autocommit con.setAutoCommit(false); Statement stmt; // SQL statement object String query; // SQL select string ResultSet rs; // SQL query results boolean more; // "more rows found" switch String v2; // Temporary storage results Vector results = new Vector( 10 ); query = "SELECT FirstName, LastName " + "FROM StudentInfo "; stmt = con.createStatement(); rs = stmt.executeQuery(query); // Check to see if any rows were read more = rs.next(); if (!more) { System.out.println("No rows found."); return; } // Loop through the rows retrieved from the query while (more) { v2 = "Name: " + rs.getString("FirstName") + " " + rs.getString("LastName"); System.out.println( v2 ); results.addElement( v2 + "\n" ); more = rs.next(); } rs.close(); stmt.close(); } catch( Exception ee) { ee.printStackTrace(); } } };
|
 |
Bear Bibeault
Author and ninkuma
Marshal
Joined: Jan 10, 2002
Posts: 56532
|
|
Welcome to the Ranch 'Zombie'! You'll find this forum a great place to seek help on JDBC, and there aren't many rules you'll have to worry about, but one is that proper names are required. Please take a look at the JavaRanch Naming Policy and change your display name to match it. In particular, your display name must be a first and a last name separated by a space character, and must not be obviously fictitious. Thanks! bear JDBC/JSP Forum Bartender
|
[Smart Questions] [JSP FAQ] [Books by Bear] [Bear's FrontMan] [About Bear]
|
 |
Bear Bibeault
Author and ninkuma
Marshal
Joined: Jan 10, 2002
Posts: 56532
|
|
Also please use the UBB code tags to enclose any posted code, which will perserve the formatting. Most people will not read a bunch of unformatted code. bear
|
 |
Ajay Chauhan
Greenhorn
Joined: Dec 10, 2003
Posts: 5
|
|
Thanx to you Mr. Bear Bibeault for informing me about the naming rules.......as requested by you i have changed my name in my profile....... but i haven't received my solution as yet....pls....help me if you can....it's important.
|
 |
Bear Bibeault
Author and ninkuma
Marshal
Joined: Jan 10, 2002
Posts: 56532
|
|
Thanks Ajay for trying to comply with the naming policy. However, you apparently did not pay attention to this part:
your display name must be a first and a last name separated by a space character
thanks, bear
|
 |
Joe Ess
Bartender
Joined: Oct 29, 2001
Posts: 8290
|
|
Read the JDBC FAQ: 5. How can I use the JDBC API to access a desktop database like Microsoft Access over the network? Most desktop databases currently require a JDBC solution that uses ODBC underneath. This is because the vendors of these database products haven't implemented all-Java JDBC drivers. The best approach is to use a commercial JDBC driver that supports ODBC and the database you want to use. See the JDBC drivers page for a list of available JDBC drivers. The JDBC-ODBC bridge from Sun's Java Software does not provide network access to desktop databases by itself. The JDBC-ODBC bridge loads ODBC as a local DLL, and typical ODBC drivers for desktop databases like Access aren't networked. The JDBC-ODBC bridge can be used together with the RMI-JDBC bridge, however, to access a desktop database like Access over the net. This RMI-JDBC-ODBC solution is free.
|
"blabbing like a narcissistic fool with a superiority complex" ~ N.A.
[How To Ask Questions On JavaRanch]
|
 |
Ajay Chauhan
Greenhorn
Joined: Dec 10, 2003
Posts: 5
|
|
Thanks Joe Ess..... the link you referred to proved really helpful..... i used the following url for dsn: String dsn = "jdbc dbc river={Microsoft Access Driver (*.mdb)};DBQ=//localhost/DataBase/test.mdb"; and the code worked fine......but i had to share the database folder. there is one more thing i want to know.....how can one map a n/w drive???
|
 |
 |
|
|
subject: JdbcOdbc Connection
|
|
|