File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
Win a copy of Clojure in Action this week in the Clojure forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

JdbcOdbc Connection

 
Ajay Chauhan
Greenhorn
Posts: 5
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Pie
Posts: 64185
83
IntelliJ IDE Java jQuery Mac Mac OS X
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
 
Bear Bibeault
Author and ninkuma
Marshal
Pie
Posts: 64185
83
IntelliJ IDE Java jQuery Mac Mac OS X
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Posts: 5
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Pie
Posts: 64185
83
IntelliJ IDE Java jQuery Mac Mac OS X
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
Posts: 9214
9
Linux Mac OS X Windows
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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.
 
Ajay Chauhan
Greenhorn
Posts: 5
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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???
 
I agree. Here's the link: http://aspose.com/file-tools
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic