MS Access Database on Runtime (Tables on Sharepoint)
Using: Office 365
MS Access tables are on my Share Point Site as lists.
The database on my local pc has linked tables to the Share Point lists, which works fantastic. I have a need to place the database on a pc that does not have any office software installed, so I loaded Access Runtime on that pc. Pulls up the database,
but, it the tables will not link to Share Point. No error messages, cursor just spins, nothing happens.
Actually I'm already using JDBC-ODBC driver. The problem is it still doesn't connect. Sorry I should have mentioned this above.
String dbDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
String dbLocation = "//host/directory/database.mdb";
String dbURL = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)}; DBQ=" + dbLocation;
String dbUserName = "Name";
String dbPassword = "Pass";
public boolean connectToDatabase () {
// Microsoft Access Database SQL Connection.
try {
Class.forName(dbDriver);
connection = DriverManager.getConnection(dbURL);
} catch (Exception e) {
return false;
return true;
}If I run my applet local, I can connect to my Access DB (Using a location similar to 'C:\Path\myDB.mdb'). When I put it on my web host, it can't connect to it. DriverManager tries to connect but fails after about half a minute of inactivity. The error message is:
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] '(unknown)' is not a valid path. Make sure that the path name is spelled correctly and that you are connected to the server on which the file resides.
And so I need to know any Java equivalent that doesn't require 'HttpServlet' 'getRealPath(...)' and get's me the server path to my DB or another way to connect to it alltogether.
Devyn
Similar Messages
-
How to create a ms-access database at runtime using java
hi, this is ravi kiran,
i have a situation where i need to create a new ms-access database with one table in it at runtime(when user clicks on some button).
i have been searching many sites to know how to do this in java, but i didnot find any thing useful.
plz tell me how to do this in java.
plz help me, its urgent
thanx in advance.Here's how I did it. Research does help, but sometimes looking at others code does too... You do have to have a dummy file that you made with access though. You can't just make a file file.mdb (it will be corrupt)
public void createDatabase(String database) throws SQLException{
try{
// This file needs to have been created with MS Access
File dbfile = new File(this.dataBaseDir + "dummy.mdb");
// This is the new database file being made
File newFile = new File(this.dataBaseDir + database + ".mdb");
// Copy all bytes from dummy file to new DB file.
FileInputStream instream = new FileInputStream(dbfile);
FileOutputStream ostream = new FileOutputStream(newFile);
int numBytes = instream.available();
byte inBytes[] = new byte[numBytes];
instream.read(inBytes, 0, numBytes);
ostream.write(inBytes, 0, numBytes);
catch(FileNotFoundException e) { e.printStackTrace();}
catch(IOException e) { e.printStackTrace();}
if(DEBUG) System.out.println("creating the " + database + " database");
} -
Creating a new access database using JDBC
Hi Forum,
I have a problem in hand. Let me describe the problem:
I want to create an "access database" from java at runtime. "Access database" is file based, so for a database named test, it will have a file test.mdb.
Now, everything's sweet and wonderful, if somebody creates an "empty access database" at the client machine and i then connect to it and create the tables i require.
But the issue is i want to create the database at runtime (the database name and tables are determined at runtime).
Using the JDBC:ODBC bridge driver , i am able to connect to an existing database, but any "create database" statements are not supported.
A last ditch solution would be that i create an empty database using access and copy the file contents in the SQL server database as a a blob object. Then when i want to create a new access database at runtime, i create a file in a particular folder , with an .mdb
extension, copy the file contents from the SQL server (i also have an SQL server connection) BLOB object, and then try to connect to the
.mdb file.
But this approach seems a "quick hack" and can have problems (which i can't see as of now).
Can you suggest a better alternative for the problem.
See the Java Sun forum at this address for a discussion of a similar problem, but sadly with no solution.
http://forum.java.sun.com/thread.jspa?forumID=31&threadID=484731I have an applet that was previously connected to Oracle 9i. I am faced with connecting to MS Access temporarily for testing purposes.
I have been unable to successfully code connection in java. I have set up the DSN and can access in SQL Worksheet in JDev.
I saw your question regarding creating an access db, and thought you might be so kind as to help me code the connection to access!!!!
Any help you could provide would be greatly appreciated. I have a huge application to finish with alot of sqlj already completed. Connectivity is not my area of expertise!
Any help you could provide would be greatly appreciated!!!
I am not sure if I have to use bridge? Am I progressing in right direction to migrating to SQL Server if need be? -
Unable to Publish Access database to SharePoint site in 2013
I have a user requesting to publish access (2007/2010) web database into SharePoint 2013. I am able to publish this database on all sites under one site collection (test) but fails on the other site (different site collection). I have compared site collection
and site features and both site collection (working and non-working one) has SharePoint Server Enterprise Site features enabled. Is there any other features that should be turned on?
Initially it looks it has succeded but then give mesesage
"Publish Failed - Your application has encountered errors while attempting to publish. The publish operation has failed and the target site has not been created. For more details, see the following tables
Moveto SharePoint Site Issues"
Move to SharePoint Site Issues
Issue
Reason
Object Type
Object Name
Field Name
There was an error uploading properties and/or data macros on this table.
Table
mytab
Errors have prevented one or more tables from being uploaded to the server.
Table
Could not save this object's changes to the server. You must enter a value in the 'Name' field.
Navigation Pane
Navigation Pane
Could not save this object's changes to the server. You must enter a value in the 'Name' field.
VBA Properties
VBA References
Could not save this object's changes to the server. You must enter a value in the 'Name' field.
Database Properties
DBProps
Could not save this object's changes to the server. You must enter a value in the 'Name' field.
Theme
Office Theme
<tfoot></tfoot>
I am unable to make any sense as it's one empty table and able to publish same table on another site (under different site collection).
MK SinHi MK,
According to your description, my understanding is that you got an error when you published Access database to SharePoint 2013.
Please deactivate SharePoint Server Enterprise Site Collection features at site collection level and deactivate SharePoint Server Enterprise Site features at site level, then activate them again, compare the result.
Per the error message, please type a value in the ‘Name’ filed, then publish the table, compare the result.
In addition, here is a similar article, please check whether it is useful for you:
http://support.microsoft.com/kb/2711562
I hope this helps.
Thanks,
Wendy
Wendy Li
TechNet Community Support -
Question about Access database linking in SharePoint
I have a database table I created in Access 2010, I can get it into SharePoint as a list and then create a calendar view. I used the SharePoint icon under Database Tools in Access. My problem is that when I enter new information in the Access
Database I am not able to get SharePoint to reflect this update.
I should state that I am extremely rusty with Access and SharePoint.
I appreciate any help that can be offered and I thank you in advance.Check out few synchronization options from the following link, hope it helps
https://support.office.com/en-us/article/Synchronize-a-SharePoint-2010-list-with-Access-2010-975bfb97-c799-4fce-b7cc-3db3b397f116
Cheers, -
Breaking the Sharepoint connection within an Access database
We have recently changed our online database to a new system. We downloaded all the current information into excel or access. However my major database to track all staff training, mandatory renewables and policy reviews will not allow attachments to be
uploaded to the access database because "the sharepoint table is no longer available". We have had many problems with sharepoint, and wish to convert the database strictly to access and break the sharepoint connection to the former website. Is there
a way to do this?
Please adviseHi
This is the forum to discuss questions about Access develop. For your question is SharePoint related, I am moving this thread to the SharePoint forum
The reason why we recommend posting appropriately is you will get the most qualified pool of respondents, and other partners who read the forums regularly can either share
their knowledge or learn from your interaction with us.
Thank you for your understanding.
Best Regards
Lan
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click
HERE to participate the survey. -
How to automate creation of MS Access databases/tables/records
Can someone point me to some examples that automate the creation of MSAccess database files and tables?
Can I do this with a bat file? If not, a ps1 file?
I bing searched and could not find an example.
I want to test the existence of a mdb (or accdb) file and if it does not exist, create it.
Then I want to see if that mdb (or accdb) file contains a table named "parts".
If it does not contain that table named "parts", create the table.
If that table does not contain any records, than add some sample data, presumably with some SQL "INSERT" statements.
What is the preferred API for this? I was thinking we should use the ADO.NET/OleDB API. I did find a few examples of queries of MSAccess databases with the old ADO API.
ADOX seems very old for creating databases. Is there any thing more modern?
Is powershell the easiest scripting language to do this?
Thanks
Siegfried
siegfried heintzeThis blog post should have most (if not all) of what you need:
http://blogs.technet.com/b/heyscriptingguy/archive/2009/02/16/how-can-i-use-windows-powershell-to-create-an-office-access-database.aspx
One thing to watch out for is the db provider for the connection string. The "Jet Engine" has been superseded by
ACE. -
Getting the table names in an MS Access database
Hi,
I am new to JDBC and making a client/server application that updates a MS Access database through jdbc:odbc.
I need to get a list of existing user tables in the db. I have found a great document on the net which has the code, however the code doesn't work. I have tried different ways and looked every where with no success. (link to the doco: http://www-128.ibm.com/developerworks/opensource/library/j-jdbc-objects/)
Here is my dbManager class that handles all db related services in my application. I would appreciate any help I can get as I have exhusted all my avenues.
Thanks
Sep,
* dbManager.java
* Created on 31 October 2005, 10:20
* To change this template, choose Tools | Options and locate the template under
* the Source Creation and Management node. Right-click the template and choose
* Open. You can then make changes to the template in the Source Editor.
import java.io.*;
import java.sql.*;
import java.util.regex.*;
* @author AUMahdavSe
public class dbManager {
/** Constant Declaration */
public static final String Driver = "sun.jdbc.odbc.JdbcOdbcDriver";
public static final
String sqlCreateTable = "create table TABLENAME (" +
"name varchar (100)," +
"surname varchar(100)," +
"computerType integer," +
"computerNAL varchar(20)," +
"haveMonitor integer," +
"monitorNAL varchar (20)," +
"auditDate varchar(10) );";
public static final String sqlUpdateTable = "insert into TABLENAME values" +
" (NAMEHOLDER, SURNAMEHOLDER, COMPTYPE, COMPNAL, HAVEMON, MONNAL);";
/** Attributes */
private String dbURL = "jdbc:odbc:";
private String Username = "admin"; // user input
private String Password = "purina123"; // user input
private String ODBCDataSource; // config file
private String dbPath; // set through config file or defaults to current folder
private String configFile = "config.txt"; // set either at commandline or defaults to current folder
private Connection con = null;
private Statement stmt = null;
private ResultSet tables;
private DatabaseMetaData dma;
private ResultSetMetaData rsmd;
private String CurrentAuditTable = "TestTable2";
int numCols, i;
/** Set Methodes */
public void setUsername( String usr ) {
this.Username = usr;
public void setPassword( String pswd ) {
this.Password = pswd;
public void setDbPath( String path ) {
this.dbPath = path;
public void setODBCDataSource( String ds ) {
this.ODBCDataSource = ds;
public void setDbURL( String dsname ) {
this.dbURL = this.dbURL + dsname;
/** Get Methodes */
public String getDriver() {
return this.Driver;
// can be run only after a connection obj is setup
public void getMDA() {
try {
this.dma = this.con.getMetaData();
catch (SQLException ex) {
System.err.println("database connection: " + ex.getMessage());
public void getDBTables() {
//now dump out the names of the tables in the database
String[] types = new String[1];
types[0] = "TABLES"; //set table type mask
//note the %-sign is a wild card (not '*')
try {
this.tables = this.dma.getTables(null, null, "%", types);
dumpResults("--Tables--");
this.tables.close();
//this.listTables();
catch (SQLException ex) {
System.err.println("database connection: " + ex.getMessage());
// listing tables
/*int count = 0;
int numCols = 0;
//ResultSetMetaData rsmd;
try {
System.out.println("Listing db tables ...");
//this.tables.beforeFirst();
rsmd = this.tables.getMetaData();
numCols = rsmd.getColumnCount();
System.out.println("number of cols: " + numCols);
boolean more = this.tables.first();
System.out.println("this is why: " + more);
while ( more ) {
count++;
for (int i = 1; i <= numCols; i++)
System.out.print( "Table-" + count + " -> " + this.tables.getString(count)+" " );
System.out.println();
more = this.tables.next();
catch ( SQLException ex ) {
System.out.println( "problem listing db tables: " + ex.getMessage() );
/** Other Methodes */
// Initialize the db parameters, like driver, username, passwd, etc.
public void dbInitialize() {
// load configuration from config.txt (dbPath and ODBC Data Source name)
this.loadDbConfig();
// loadDriver
this.loadDriver();
// get username and password for the ODBC from user
this.getDSSecurity();
// populate dbURL, username and password
this.setDbURL( this.ODBCDataSource );
// connect to db
this.dbConnect();
// get db metadata
this.getMDA();
// get a list of tables in db
this.getDBTables();
// load JDBC driver
public void loadDriver() {
try {
Class.forName( getDriver() );
} catch (Exception e) {
System.out.println("Failed to load JDBC/ODBC driver.");
return;
// connects to db and create a Connection obj and a Statement obj
public void dbConnect() {
try {
this.con = DriverManager.getConnection (
this.dbURL,
this.Username,
this.Password);
this.stmt = con.createStatement();
} catch (Exception e) {
System.err.println("problems connecting to "+this.dbURL);
// creates table tblname in db
public void CreateTable( String tblname ) {
try {
String sqlcommand = mergeTblName(sqlCreateTable, tblname);
this.stmt.execute( sqlcommand );
catch (SQLException ex) {
System.err.println("problems with SQL statement sent to "+this.dbURL+
": "+ex.getMessage());
System.out.println("SQL Command: " + mergeTblName(sqlCreateTable, tblname) );
// updates db with new record(s) by executing the SQL query sqlstmt
// and closes db connection
public void dbUpdate( String sqlstmt ) {
try {
// execute SQL commands to create table, insert data
this.stmt.execute( sqlstmt );
this.con.close();
} catch (Exception e) {
System.err.println("problems with SQL sent to "+this.dbURL+
": "+e.getMessage());
// list all user tables in the db
public void listTables() {
//now dump out the names of the tables in the database
int count = 0;
try {
System.out.println("Listing db tables ...");
//this.tables.beforeFirst();
while ( this.tables.next() ) {
count++;
System.out.print( "Table-" + count + " -> " + this.tables.getString(1) );
System.out.println();
catch ( SQLException ex ) {
System.out.println( "problem listing db tables: " + ex.getMessage() );
// checks whether tbname exist in db as a table
// this function has to be called after dbConnect
public boolean tableExists( String tbname ) {
boolean tbexists = false;
//get the database metadata
try {
dma = con.getMetaData();
catch (SQLException ex) {
System.err.println("database connection: " + ex.getMessage());
//now dump out the names of the tables in the database
String[] types = new String[1];
types[0] = "TABLES"; //set table type mask
//note the %-sign is a wild card (not '*')
try {
tables = dma.getTables(null, null, "%", types);
catch (SQLException ex) {
System.err.println("database connection: " + ex.getMessage());
try {
while ( tables.next() ) {
if ( tbname.equalsIgnoreCase( tables.getString(1) ) ) {
tbexists = true;
catch ( SQLException ex ) {
System.err.println("database connection: " + ex.getMessage());
return tbexists;
// merge tablename using REGEX
public String mergeTblName( String sqlcommand, String tbname ) {
String REGEX = "TABLENAME";
String INPUT = sqlcommand;
String REPLACE = tbname;
Pattern p = Pattern.compile(REGEX);
Matcher m = p.matcher(INPUT); // get a matcher object
INPUT = m.replaceAll(REPLACE);
//System.out.println(INPUT);
return INPUT;
// merge feildnames specific terms using REGEX
public String mergeFldName( Message msg ) {
String sqlcommand;
sqlcommand = "insert into TABLENAME values" +
" ('" + msg.getName() + "', '" + msg.getSurname() + "', " +
msg.getComputerType() + ", '" + msg.getComputerNAL() + "', " +
msg.getHaveMonitor() + ", '" + msg.getMonitorNAL() + "', '" +
msg.getDateOfMsg() + "');";
sqlcommand = mergeTblName( sqlcommand, CurrentAuditTable );
return sqlcommand;
// get users input char
/**public char getChar() {
int i = System.in.read();
while (i != -1) {
// here's your character
char c = (char) i;
i = System.in.read();
return (char) i;
// load the config parameters from config.txt
public void loadDbConfig() {
// make a file obj pointing to the config file config.txt
File configFile = new File( this.configFile );
//...checks on configFile are elided
StringBuffer contents = new StringBuffer();
//declared here only to make visible to finally clause
BufferedReader input = null;
try {
//use buffering
//this implementation reads one line at a time
input = new BufferedReader( new FileReader(configFile) );
String line = null; //not declared within while loop
int count = 0;
while (( line = input.readLine()) != null){
//first line in config file is dbPath
if(count == 0) this.setDbPath( line.trim() );
//second line in config file is ODBCDataSource
if(count == 1) this.setODBCDataSource( line.trim() );
count++;
//contents.append(line);
//contents.append(System.getProperty("line.separator"));
catch (FileNotFoundException ex) {
System.err.println("the file congif.txt cannot be found ...");
System.err.print("Enter the path to db file (e.g. c:\\temp): ");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// read the db path from the command-line; need to use try/catch with the
// readLine() method
try {
this.setDbPath( br.readLine() );
catch (IOException ioe) {
System.out.println("IO error trying to read user input.");
System.exit(1);
System.err.print("Enter the name of the ODBC Data Source: ");
// read the ODBC Data Source name from the command-line; need to use try/catch with the
// readLine() method
try {
this.setODBCDataSource( br.readLine() );
catch (IOException ioe) {
System.out.println("IO error trying to read user input.");
System.exit(1);
ex.printStackTrace();
catch (IOException ex){
//ex.printStackTrace();
finally {
try {
if (input!= null) {
//flush and close both "input" and its underlying FileReader
input.close();
catch (IOException ex) {
//ex.printStackTrace();
//return contents.toString();
// get datasource security details i.e. username and password
public void getDSSecurity() {
// get username
System.out.print("Enter username for the ODBC DataSource: ");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// read the username from the command-line; need to use try/catch with the
// readLine() method
try {
this.setUsername( br.readLine() );
catch (IOException ioe) {
System.out.println("IO error trying to read username.");
System.exit(1);
// get password
System.out.print("Enter password: ");
// read the username from the command-line; need to use try/catch with the
// readLine() method
try {
this.setPassword( br.readLine() );
catch (IOException ioe) {
System.out.println("IO error trying to read password.");
System.exit(1);
private void dumpResults(String head)
//this is a general routine to print out
//column headers and the contents of each column
System.out.println(head);
try
//get the number of columns from the metadata
this.rsmd = this.tables.getMetaData();
numCols = this.rsmd.getColumnCount();
//print out the column names
for (i = 1; i<= numCols; i++)
System.out.print(rsmd.getColumnName(i)+" ");
System.out.println();
//print out the column contents
boolean more = this.tables.next();
while (more)
for (i = 1; i <= numCols; i++)
System.out.print(this.tables.getString(i)+" ");
System.out.println();
more = this.tables.next();
catch(Exception e)
{System.out.println(e.getMessage());}
/** Creates a new instance of dbManager */
public dbManager() {
this.dbInitialize();
}here is the result when I make a new dbManager obj from my server class which is a multithreaded one.
H:\java>java EchoServer
Enter username for the ODBC DataSource: admin
Enter password: purina123
Tables
TABLE_CAT TABLE_SCHEM TABLE_NAME TABLE_TYPE REMARKS
Listening for clients on 12111...
here is the code of my server class called EchoServer:
import java.net.*;
import java.io.*;
public class EchoServer
ServerSocket m_ServerSocket;
dbManager haDB;
public EchoServer()
// db methods to setup a jdbc connection to the database
haDB = new dbManager();
// list tables
//haDB.listTables();
//haDB.getDBTables();
// create table
//haDB.CreateTable("TestTable2");
// update table
// server code
try
// Create the server socket.
m_ServerSocket = new ServerSocket(12111);
catch(IOException ioe)
System.out.println("Could not create server socket at 12111. Quitting.");
System.exit(-1);
System.out.println("Listening for clients on 12111...");
// Successfully created Server Socket. Now wait for connections.
int id = 0;
while(true)
try
// Accept incoming connections.
Socket clientSocket = m_ServerSocket.accept();
// accept() will block until a client connects to the server.
// If execution reaches this point, then it means that a client
// socket has been accepted.
// For each client, we will start a service thread to
// service the client requests. This is to demonstrate a
// multithreaded server, although not required for such a
// trivial application. Starting a thread also lets our
// EchoServer accept multiple connections simultaneously.
// Start a service thread
ClientServiceThread cliThread = new ClientServiceThread(clientSocket, id++, haDB);
cliThread.start();
catch(IOException ioe)
System.out.println("Exception encountered on accept. Ignoring. Stack Trace :");
ioe.printStackTrace();
public static void main (String[] args)
new EchoServer();
class ClientServiceThread extends Thread
Socket m_clientSocket;
int m_clientID = -1;
dbManager m_db;
boolean m_bRunThread = true;
ClientServiceThread(Socket s, int clientID, dbManager db)
m_clientSocket = s;
m_clientID = clientID;
m_db = db;
public void run()
// Obtain the input stream and the output stream for the socket
// A good practice is to encapsulate them with a BufferedReader
// and a PrintWriter as shown below.
BufferedReader in = null;
PrintWriter out = null;
Message msg = new Message();
// Print out details of this connection
System.out.println("Accepted Client : ID - " + m_clientID + " : Address - " +
m_clientSocket.getInetAddress().getHostName());
try
in = new BufferedReader(new InputStreamReader(m_clientSocket.getInputStream()));
out = new PrintWriter(new OutputStreamWriter(m_clientSocket.getOutputStream()));
// At this point, we can read for input and reply with appropriate output.
// Run in a loop until m_bRunThread is set to false
while(m_bRunThread)
// read incoming stream
String clientCommand = in.readLine();
if ( clientCommand.indexOf(",") != -1 ) {
msg.deserialize( clientCommand );
System.out.println("SQL command: " + m_db.mergeFldName(msg) );
m_db.dbUpdate( m_db.mergeFldName(msg) );
//System.out.println("Name :" + msg.getName() );
//System.out.println("Surname :" + msg.getSurname() );
//System.out.println("ComputerType :" + msg.getComputerType() );
//System.out.println("ComputerNAL :" + msg.getComputerNAL() );
//System.out.println("HaveMonitor :" + msg.getHaveMonitor() );
//System.out.println("Monitor NAL :" + msg.getMonitorNAL() );
//System.out.println("AuditDate :" + msg.getDateOfMsg() );
System.out.println("Client Says :" + clientCommand);
if(clientCommand.equalsIgnoreCase("quit"))
// Special command. Quit this thread
m_bRunThread = false;
System.out.print("Stopping client thread for client : " + m_clientID);
else
// Echo it back to the client.
out.println(clientCommand);
out.flush();
catch(Exception e)
e.printStackTrace();
finally
// Clean up
try
in.close();
out.close();
m_clientSocket.close();
System.out.println("...Stopped");
catch(IOException ioe)
ioe.printStackTrace();
}I find that taking any problem and reducing it to the simplest thing is the best way to approach it.
Why you had to post all that bloody code (especially since you didn't write it) is beyond me.
This will list all the tables in an Access database (or any other, for that matter):
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import org.jdom.Element;
import org.jdom.Document;
import org.jdom.output.XMLOutputter;
public class TableLister
public static final String DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";
public static final String DATABASE = "jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:\\Edu\\Java\\Forum\\DataConnection.mdb";
public static final String USERNAME = "admin";
public static final String PASSWORD = "";
public static void main(String [] args)
try
String driver = ((args.length > 0) ? args[0] : DRIVER);
String url = ((args.length > 1) ? args[1] : DATABASE);
String username = ((args.length > 2) ? args[2] : USERNAME);
String password = ((args.length > 3) ? args[3] : PASSWORD);
Class.forName(driver);
Connection conn = DriverManager.getConnection(url, username, password);
DatabaseMetaData meta = conn.getMetaData();
// Bring back ALL tables and views, including SYSTEM tables.
ResultSet tables = meta.getTables(null, null, null, null);
ResultSetMetaData rsmd = tables.getMetaData();
int numColumns = rsmd.getColumnCount();
List columnNames = new ArrayList();
for (int j = 0; j < numColumns; ++j)
columnNames.add(rsmd.getColumnName(j+1));
Element root = new Element("tables");
int tableCount = 0;
while (tables.next())
Element table = new Element("table");
table.setAttribute("id", Integer.toString(++tableCount));
for (int j = 0; j < numColumns; ++j)
Element column = new Element((String)columnNames.get(j));
column.setText(tables.getString((String)columnNames.get(j)));
table.addContent(column);
root.addContent(table);
conn.close();
Document doc = new Document(root);
XMLOutputter outputter = new XMLOutputter(" ", true);
System.out.println(outputter.outputString(doc));
catch (ClassNotFoundException e)
System.err.println("Couldn't load JDBC driver class");
e.printStackTrace();
catch (SQLException e)
System.err.println("SQL state: " + e.getSQLState());
System.err.println("SQL error: " + e.getErrorCode());
e.printStackTrace();
catch (Exception e)
e.printStackTrace();
}Run it and see if it works for you. If it does, put the essence of the code into your stuff.
% -
Writing a table to a MS Access database from Powershell
Hey guys, me again...I'm trying to wrap up a project here and i have a powershell app writing to a SQL database just fine. The last piece is writing to a MS Access database table. For the life of me i cannot find anything out there that really points me
in the right direction.
I know my database name/path and i know the table/headers i need to write my data too.
Anyone have a link to a quick dirty tutorial or can someone point me in the right direction ?
Thanks as always
Rich
Rich ThompsonI get no error message. I created a blank database with a table called dbo_so_shprimg_pvs and headers
called so_hdr_key, so_ship_key, imgfileName, so_shprimg_crtdt. I'm doing a test write-host
prior so i know my variables are good.
Rich
Rich Thompson -
List All Tables in a Microsoft Access Database
Hello,
I am writing in a Java code. This code analyze a Microsft Access Database file and then print a report about it.
The connectivity between Java and the Database is fine, but My problem is that I want to display ALL Table names of the Database:
For example: if the database is save in a file Data.mdb and if the database contain tables: Customer, Employee, Sales. I want a way to get those names!. I tried to excute a query "Desc Data" but it gave me SQL error sayas that you are allowed to use Select, Insert, Delete and Update keyword only.
Any HELP?you can do it the following way...
using your Connection obj (say connection)
DatabaseMetaData dm = connection.getMetaData();
ResultSet rs = dm.getCatalogs();
String cat = null;
if(rs.next())
cat = rs.getString("TABLE_CAT");
String[] str = new String{}["TABLE"]
rs = dm.getTables(cat,null,null,str);
while(rst.next())
System.out.println("Tables"+rs.getString("TABLE_NAME"));
kind regards
Oliver -
SSRS report using Access database in SharePoint.
Dear All,
I have created SSRS report using Access database. I have successfully deploy SSRS report in SharePoint document library.
When I am opening the same report I am getting following error.
Can anyone please help me how to resolve this issue ?
Error:
An error has occurred during report processing. (rsProcessingAborted)
Cannot create a connection to data source 'WOW'. (rsErrorOpeningConnection)
ERROR
[IM014] [Microsoft][ODBC Driver Manager] The specified DSN contains an
architecture mismatch between the Driver and Application
Thanks,
Harish PThis seems odbc driver issue ,Plz check the follwoing links for the solution
http://social.technet.microsoft.com/Forums/sqlserver/en-US/a4ddb239-64d8-4074-978c-45c30381c107/ssrs-2012-error-im014-microsoftodbc-driver-manager-the-specified-dsn-contains-an-architecture?forum=sqlreportingservices
http://social.msdn.microsoft.com/Forums/en-US/a4ddb239-64d8-4074-978c-45c30381c107/ssrs-2012-error-im014-microsoftodbc-driver-manager-the-specified-dsn-contains-an-architecture?forum=sqlreportingservices
Please Mark it as answer if this reply helps you in resolving the issue,It will help other users facing similar problem -
Access Database in sharepoint 2013
We have a new server here at work. One of the virtual servers on this server has an installation of sharepoint 2013. I have installed and configured many previous installations of sharepoint, 2013 is quite the different animal and I am working
through trying to figure out how to set it up and use if for our company.
A fellow employee was setting up an access 2013 database of our staff who does all of our construction. We were successfully able to publish this access database to the sharepoint server from with in the Access 2013 environment.
I am in sharepoint and I don't see the list that represents the access database. Am I missing something here on how to make it display?When you publish a web database, Access Services creates a SharePoint site that contains the database. All of the database objects
and data move to SharePoint lists in that site.
Build and publish an Access database to SharePoint
http://plexhosted.com/billing/knowledgebase/275/How-to-publish-Access-2013-database-on-a-SharePoint-2013-Enterprise-site.html
Please remember to mark your question as answered &Vote helpful,if this solves/helps your problem. ****************************************************************************************** Thanks -WS MCITP(SharePoint 2010, 2013) Blog: http://wscheema.com/blog -
When I run the code below I get the following error:"RUN-TIME ERROR '3078': The Microsoft Access database engine cannot find the input table or query 'False'. Make sure it exists and that its name is spelled correctly. Note that I do not call
anything by the name of "false" anywhere in this code.
The subject code (the underscored line of code is highlighted in the debugger when the error occurs):
Option Compare Database
Private Sub JobAssign_Click()
MatLotListAvail_openform
End Sub
Function MatLotListAvail_openform()
Dim dbsAPIShopManager2010 As DAO.Database
Dim rstMaterialLotJobJoint As DAO.Recordset
Dim strSQL As String
Set dbsAPIShopManager2010 = CurrentDb
strSQL = "SELECT * FROM MaterialLotJobJoint WHERE JobID" = "tempvars!JobID" And "MatLotID" = "tempvars!MatLotID"
Set rstMaterialLotJobJoint = dbsAPIShopManager2010.OpenRecordset(strSQL, dbOpenDynaset)
If rstMaterialLotJobJoint.EOF Then
DoCmd.OpenForm "JobAssignMatConf", acNormal, "", "", acEdit, acNormal
Forms!JobAssignMatConf!PartapiIDVH = TempVars!PartapiID
Forms!JobAssignMatConf!JobapiIDVH = TempVars!JobapiID
Forms!JobAssignMatConf!JobIDVH = TempVars!JobID
Forms!JobAssignMatConf!MaterialLotIDVH = TempVars!MatLotID
Forms!JobAssignMatConf!Desc = TempVars!MatDesc
Forms!JobAssignMatConf!recdate = TempVars!recdate
DoCmd.Close acForm, "MaterialLotListAvailable"
Else: MsgBox "This material lot has already been assigned to this job."
DoCmd.Close acForm, "MaterialLotListAvailable"
End If
End FunctionI think the SQL statement should be
strSQL = "SELECT * FROM MaterialLotJobJoint WHERE JobID=" & _
tempvars!JobID & " AND MatLotID=" & tempvars!MatLotID
This assumes thatJobID and MatLotID are number fields.
Regards, Hans Vogelaar (http://www.eileenslounge.com) -
Join multi access database tables
Anybody knows how to join multi Access database tables
by using LAbview SQL tool kit? It seems Labview SQL does not support "JOIN" feature.
ThanksBut I still dont know how to join multiple tables.
I've tried:
SELECT pd.NAME, pp.PART_ID, pp.MATERIAL, pt.NAME
FROM PRODUCT pd INNER JOIN LOOKUP_PRODUCTPART pp
ON pd.PRODUCT_ID=pp.PRODUCT_ID INNER JOIN PART pt
ON pp.PART_ID=pt.PART_ID
But it doesn't work.
Hm.. the following (joinig two tables) works. It's shows that INNER JOIN works in LabVIEW:
SELECT pd.NAME, pp.PART_ID, pp.MATERIAL, pt.NAME
FROM PRODUCT pd INNER JOIN LOOKUP_PRODUCTPART pp
ON pd.PRODUCT_ID=pp.PRODUCT_ID -
I'm new to VS. I have run the following code. It does not produce any error, and it does not add or update data to my Access database table.
dbUpdate("UPDATE prgSettings SET varValue='test' WHERE varSetting='test'")
Function dbUpdate(ByVal _SQLupdate As String) As String
Dim OleConn As New OleDbConnection(My.Settings.DatabaseConnectionString.ToString)
Dim oleComm As OleDbCommand
Dim returnValue As Object
Dim sqlstring As String = _SQLupdate.ToString
Try
OleConn.Open()
MsgBox(OleConn.State.ToString)
oleComm = New OleDbCommand(sqlstring, OleConn)
returnValue = oleComm.ExecuteNonQuery()
Catch ex As Exception
' Error occurred while trying to execute reader
' send error message to console (change below line to customize error handling)
Console.WriteLine(ex.Message)
Return 0
End Try
MsgBox(returnValue)
Return returnValue
End Function
Any suggestions will be appreciated.
Thanks.You code looks pretty good, at a quick glance. Maybe you can simplify things a bit.
For Insert, please see these samples.
http://www.java2s.com/Code/CSharp/Database-ADO.net/Insert.htm
For Update, please see these samples.
http://www.java2s.com/Code/CSharp/Database-ADO.net/Update.htm
Knowledge is the only thing that I can give you, and still retain, and we are both better off for it.
Best to keep samples here to VB.NET
Please remember to mark the replies as answers if they help and unmark them if they provide no help, this will help others who are looking for solutions to the same or similar problem.
Maybe you are looking for
-
I am running an environment with an Active Directory and Terminal Servers. I have searched high and low for resolutions to this error but I cannot find anything related to my situation, let me explain further. The fixes I found are related to local u
-
Subsequent adjustment not updated in PO history
Dear Gurus, I have just posted a subsequent adjustment for a subcontracting PO, posting an excess consumption of raw material. However, the PO history in PO is not being updated i.e. it is only showing the origional material document that was entered
-
How to stop B2B listener polling when SOA server in Admin Mode
Hi , I recently came across this situation like my B2B FTP listener is polling and deleting file when my SOA server is Admin Mode. Can anyone help me to stop that polling when server is in Admin Mode ? Thanks, Saba
-
Installing Java based Scenarios will effect old 3.0B reports in NW2004s ?
Hi, Can anybody tell me whether Installing Java based Scenarios will effect old reports running in 3.0B.? or we will be just able to use the new features available after installing Java based scenarios and old queries/ web reports will remain same? H
-
Will the 13' Macbook Pro do well with Heavy Video editing?
Hello, I'm a grade 13 High School student who is in his last 4 months of High School. I'm looking to purchase the 13' Macbook Pro (Without Retina Display), with the 2.9Ghz Processor, and 8GBs of RAM. I will be doing Film, Animation, and all the