• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Paul Clapham
  • Ron McLeod
  • Tim Cooke
  • Junilu Lacar
Sheriffs:
  • Rob Spoor
  • Devaka Cooray
  • Jeanne Boyarsky
Saloon Keepers:
  • Jesse Silverman
  • Stephan van Hulst
  • Tim Moores
  • Carey Brown
  • Tim Holloway
Bartenders:
  • Jj Roberts
  • Al Hobbs
  • Piet Souris

JdbcOdbc Connection

 
Greenhorn
Posts: 5
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • 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();
}
}
};
 
Sheriff
Posts: 67595
173
Mac Mac OS X IntelliJ IDE jQuery TypeScript Java iOS
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • 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
Sheriff
Posts: 67595
173
Mac Mac OS X IntelliJ IDE jQuery TypeScript Java iOS
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • 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
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • 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
Sheriff
Posts: 67595
173
Mac Mac OS X IntelliJ IDE jQuery TypeScript Java iOS
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • 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
 
Bartender
Posts: 9626
16
Mac OS X Linux Windows
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • 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
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • 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???
 
Consider Paul's rocket mass heater.
reply
    Bookmark Topic Watch Topic
  • New Topic