aspose file tools*
The moose likes JDBC and the fly likes JdbcOdbc Connection Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Spring in Action this week in the Spring forum!
JavaRanch » Java Forums » Databases » JDBC
Bookmark "JdbcOdbc Connection" Watch "JdbcOdbc Connection" New topic
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: 61417
    
  67

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


[Asking smart questions] [Bear's FrontMan] [About Bear] [Books by Bear]
Bear Bibeault
Author and ninkuma
Marshal

Joined: Jan 10, 2002
Posts: 61417
    
  67

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: 61417
    
  67

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: 8927
    
    9

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???
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: JdbcOdbc Connection