Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

how to query MSysObjects (using Java)

Posted on 2003-12-08
4
Medium Priority
?
1,495 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 1200 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

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

Question has a verified solution.

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

Access developers frequently have requirements to interact with Excel (import from or output to) in their applications.  You might be able to accomplish this with the TransferSpreadsheet and OutputTo methods, but in this series of articles I will di…
We live in a world of interfaces like the one in the title picture. VBA also allows to use interfaces which offers a lot of possibilities. This article describes how to use interfaces in VBA and how to work around their bugs.
Learn how to number pages in an Access report over each group. Activate two pass printing by referencing the pages property: Add code to the Page Footers OnFormat event to capture the pages as there occur for each group. Use the pages property to …
Polish reports in Access so they look terrific. Take yourself to another level. Equations, Back Color, Alternate Back Color. Write easy VBA Code. Tighten space to use less pages. Launch report from a menu, considering criteria only when it is filled…

715 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