Solved

how to query MSysObjects (using Java)

Posted on 2003-12-08
4
1,453 Views
Last Modified: 2007-12-19
I have a Java app which reads .mdb files like so:

       Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        // we are using the direct connection method rather than the DNS method
        String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
        database+= filename.trim() + ";DriverID=22;READONLY=true}"; // add on to the end
        Connection con = DriverManager.getConnection( database ,"","");
        ResultSet rs;
        DatabaseMetaData metaData = con.getMetaData();
        // find out what tables and queries are in the database, and display their names
        rs = metaData.getTables(null,null,"%",null);

... which works great, however

I want to query against the system tables in the .mdb, specifically MSysObjects and MSysQueries to get som more structural info, but I get error:

java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Records can not be read; no read permission on 'MSysObjects'.

from the line:
Statement s = con.createStatement();
ResultSet rs_test = s.executeQuery("SELECT * FROM MSysObjects");

I am sure I solved this problem befor by tweaking a setting in Access, but I can't  remember how I did it. I have enabled viewing of the hidden and system tables, but this did not solve it. any help would be great!
0
Comment
Question by:kengoudsward
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
4 Comments
 
LVL 10

Expert Comment

by:jobrienct
ID: 9902312
this thread appears to describe your problem quite well, albeit from a coldfusion perspective, the issue is securty settings i believe, read down past the original answer.

hth

John
0
 
LVL 10

Accepted Solution

by:
jobrienct earned 400 total points
ID: 9902314
0
 

Author Comment

by:kengoudsward
ID: 9909451
John, Thanks for the help
the thread you pointed me to said to...

Open up the database in Access, go to Tools, Options, View and select Hidden
and System objects.  

... which I had already done and wasn't the problem, but it was close. After a bit more playing around (and some sleep, and a new day)

I went to Tools, Security, User and Group Permissions
where I gave read permissions to all users and groups on the tables of interest; now it works!
0
 
LVL 10

Expert Comment

by:jobrienct
ID: 9909790
sorry, you read me wrong - i told you to scroll down passed the accepted answer a bit to where they talked about the security settings.

ahh well, next time I'll be more specific :)

thanks for the question,

John
0

Featured Post

Salesforce Made Easy to Use

On-screen guidance at the moment of need enables you & your employees to focus on the core, you can now boost your adoption rates swiftly and simply with one easy tool.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Overview: This article:       (a) explains one principle method to cross-reference invoice items in Quickbooks®       (b) explores the reasons one might need to cross-reference invoice items       (c) provides a sample process for creating a M…
It’s the first day of March, the weather is starting to warm up and the excitement of the upcoming St. Patrick’s Day holiday can be felt throughout the world.
In Microsoft Access, when working with VBA, learn some techniques for writing readable and easily maintained code.
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …

751 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question