Access database creation

I have a seemingly simply problem. I need to create an MS-Access MDB file on a *nix server and populate a single table with 300K or so records in an automated report, generated from a JSP / servlet. I cannot seem to locate a resource that can do this without draging a windows server into the mix. Does such a product exist? Is this the proper forum for posting such a question? Any pointers are appreciated.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    

THe customers are a collection of PHB's (Pointy Haired Boss) types that only have access and need to be able to munge the summary data I'm sending down into their reports. ACcess is a requirement from their side.
I'm currently working a solution that will include tables in a DBF file with a small access 'stub' that links to the tables in the mdb. If I can get the managers to accept the change, it should work just fine. ELse they will be paying for another Microsoft server just to generate this report.

Similar Messages

  • 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 heintze

    This 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.
    %

  • I can't access Database 11g EE in the browser

    Hi Rajiv,
    Thanks for your contribution to find solution to my problem.
    In the first place I wanted to direct my problem to the forum that deals with Database 11g Enterprise Edition but I can't find it. Please if I am in a wrong place kindly direct me.
    Really I can't specify where the problem actually is. Probably if I give the installation procedure I went through and specified Error messages, one may be able to help me.
    Installation Option: - Create and configure database was selected
    System Class: -Sever Class was selected
    Install Product:-
    Oracle Database Installation= Succeeded
    · Prepare= Succeeded
    · Copy files= Succeeded
    · Setup files= Succeeded
    Oracle database configuration= Succeeded
    · Oracle Net Configuration Assistant=Succeeded
    · Oracle database configuration Assistant=Ignored
    · Oracle configuration Manager Configuration (optional)=Succeeded
    In the process of the Install Product the following Error messages displayed:
    1. File not found C:\app\godis\product\11.2.0\dbhome_1\oc4j\j2ee\oc4j_applications\applications\em.ear
    2. File not found C:\app\godis\product\11.2.0\dbhome_1\oc4j\j2ee\oc4j_applications\applications\em\em.war
    3. File not found C:\app\godis\product\11.2.0\dbhome_1\ctx\admin\dr0ulib.sql.sbs
    4. File not found C:\app\godis\product\11.2.0\dbhome_1\bin\db2gc
    5. File not found C:\app\godis\product\11.2.0\dbhome_1\oc4j\oc4j_DBConsole\config\system-applications.xml
    6. File not found C:\app\godis\product\11.2.0\dbhome_1\oc4j\oc4j_DBConsole\config\system-jazn-data.xml
    7. File not found C:\app\godis\product\11.2.0\dbhome_1\oc4j\j2ee\oc4j_applications\applications\em.ear
    8. Template General_Purpose.dbc does not exist. Please specify an existing template for database creation> OK was selected
    9.[INS-20802] Oracle Database Configuration Assistant failed> skip was selected>Finish.
    I opened firefox browser and typed https://godis:1158/em (‘godis ‘as name of the laptop hosting the installation) but the following error message displayed in the browser:
    Unable to connect
    Firefox can't establish a connection to the server at godis:1158.
    The site could be temporarily unavailable or too busy. Try again in a few moments.
    If you are unable to load any pages, check your computer's network connection.
    If your computer or network is protected by a firewall or proxy, make sure that Firefox is permitted to access the Web.
    I clicked Start>All Programs>Oracle-db11g_home1>Configuration and Migration Tools>Database Configuration Assistant and followed screen instructions to configure orcl database but at the end of the configuration the following error displayed:-
    Enterprise Manager Configuration failed due to the following error:-
    Error instantiating OC4J Configuration files. Refer to the log file at C:\app\godis\cfgtoollogs\dbca\orcl\emConfig.log for more details. You can retry configuring this database with Enterprise Manager later by manually running C:\app\godis\product\11.2.0\dbhome_1\bin\emca Script
    When I ran the emca.bat file it splashed without achieving any positive result
    I checked C:\app\godis\product\11.2.0\dbhome_1\install\portlist configuration settings file but there is no port number enlisted in the file. It is totally empty
    I reinstalled and changed the System Class from Server Class to Desktop Class but the same experience
    I will appreciate if some can help me solve the problem since this is my first attempt on Enterprise Edition. I need the help of an expert
    Regard
    Godis-Tei

    >.[INS-20802] Oracle Database Configuration Assistant failed> skip was selected>Finish.
    I doubt that any database actually exists now.
    Are both Operating System Services for database & listener running now?
    what clues exist within alert_SID.log file?
    How do I ask a question on the forums?
    https://forums.oracle.com/message/9362002#9362002

  • How to reference MS Access database in ColdFusion MX 7 on 64-bit Windows

    I am migrating customers from:
    Windows 2000 Server (fully patched)
    Internet Information Services (IIS) 5
    ColdFusion 5
    to:
    Windows Server 2003 Standard x64 Edition (fully patched)
    Internet Information Services (IIS) 6 (running in 32-bit
    mode)
    ColdFusion MX 7 (7.0.2) Standard
    Unfortunately, some of these existing customers are still
    using Microsoft Access databases instead of SQL Server. Having all
    of these existing customers migrate to SQL Server is not yet
    practical. On the old Windows 2000 / ColdFusion 5 server, they are
    using OLE DB data sources to reference the MS Access databases
    using the "Microsoft.Jet.OLEDB.4.0" provider. None are configured
    to use ODBC drivers when referencing MS Access or SQL Server.
    I have yet to figure out how to get ColdFusion MX 7 to:
    - Create a data source that references MS Access databases on
    64-bit Windows.
    - Reference an existing MS Access data source created with
    the 32-bit version of the ODBC Data Source Manager on 64-bit
    Windows.
    A bit of background information regarding MS Access on 64-bit
    Windows:
    - At the time of this writing, Microsoft has not
    created/released 64-bit drivers for Microsoft Access and it's
    unlikely they ever will, for understandable reasons.
    - Contrary to seemingly popular belief, the Microsoft Jet 4.0
    Database Engine does exist on 64-bit Windows. See the following
    regarding version and file location information:
    How to obtain the latest service pack for the Microsoft Jet
    4.0 Database Engine
    http://support.microsoft.com/kb/239114
    - You CAN create MS Access based data sources within 64-bit
    Windows, but they have to be made using the 32-bit version of "ODBC
    Data Source Manager". I'm assuming these DSNs may only be used by
    32-bit applications, but I have not tested that theory.
    32-bit data sources:
    ODBC Data Source Manager:
    %SystemRoot%\SysWOW64\odbcad32.exe
    Registry location:
    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC
    Default file DSN directory:
    C:\Program Files (x86)\Common Files\ODBC\Data Sources
    64-bit data sources:
    ODBC Data Source Manager:
    %SystemRoot%\system32\odbcad32.exe
    Registry location:
    HKEY_LOCAL_MACHINE\SOFTWARE\ODBC
    Default file DSN directory:
    C:\Program Files\Common Files\ODBC\Data Sources
    The 64-bit version of "ODBC Data Source Manager" (under
    Administrative Tools) only show "SQL Server" and/or "SQL Native
    Client" as options when creating new data sources, unless
    third-party software is installed that supplies additional drivers.
    The 32-bit version of "ODBC Data Source Manager" (by default,
    there is no shortcut for this in the Start menu) shows the typical
    drivers seen on 32-bit versions of Windows, including SQL Server,
    SQL Native Client, Microsoft Access, Excel, FoxPro, Paradox, etc.
    When using ColdFusion Administrator in ColdFusion MX 7.0.2 in
    64-bit Windows 2003 (IIS is running in 32-bit mode to allow
    ColdFusion MX 7 to function at all), two problems are encountered
    when dealing with MS Access (and presumably other 32-bit drivers).
    In both cases, ColdFusion is trying to reference the registry
    location for 64-bit data sources instead of 32-bit:
    1. Creating a new data source within ColdFusion
    Administrator:
    Data Source Name: whatever
    Driver: Microsoft Access
    CF Data Source Name: whatever
    Database file: (physical path to whatever.mdb)
    (other settings are irrelvant for this example)
    Error generated when submitting:
    Unable to update the NT registry.
    Cannot open HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC
    Data Sources: Windows error number 5 occurred.Access is denied.
    ColdFusion stores the data source, however a "verify"
    generates the following error:
    Connection verification failed for data source: whatever
    java.sql.SQLException: [Macromedia][SequeLink JDBC
    Driver][ODBC Socket]internal error: Data source name not found and
    no default driver specified
    The root cause was that: java.sql.SQLException:
    [Macromedia][SequeLink JDBC Driver][ODBC Socket]internal error:
    Data source name not found and no default driver specified
    2. Creating the data source using the 32-bit version of "ODBC
    Data Source Manager" then trying to reference it with ColdFusion:
    ODBC Data Source Manager:
    System DSN or File DSN:
    Name: whatever
    Driver: Microsoft Access Driver (.mdb)
    Database: (physical path to whatever.mdb)
    (creation is successful within ODBC Data Source Manager)
    Reference the above DSN within ColdFusion Administrator:
    Data Source Name: whatever
    Driver: ODBC Socket
    Error generated when submitting:
    Error accessing available odbc datasources. - Cannot open
    HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources:
    Windows error 2 occurred.The system cannot find the file specified.
    ColdFusion MX 7 can't find the 32-bit data source on 64-bit
    Windows because it's looking for it in the wrong registry location.
    Can ColdFusion MX 7 be configured to look in
    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC
    instead of
    HKEY_LOCAL_MACHINE\SOFTWARE\ODBC
    on a 64-bit Windows machine?

    Paul,
    Thanks for the insight on this. Regarding the initial problem
    I ran into with creating Access based DSNs, very early-on, I
    noticed there were two different driver options for Access
    displayed within ColdFusion MX 7 Administrator:
    Microsoft Access
    Microsoft Access with Unicode
    For reasons I'm am still baffled over, I somehow completely
    forgot about and through the wonders of apparent tunnel vision,
    completely overlooked the "Microsoft Access with Unicode" driver
    option when I was running through my tests.
    At your seemingly-obvious suggestion, I created a data source
    using the Microsoft Access with Unicode driver and it worked
    perfectly fine with the one customer's web site I'm using for
    testing (of course, this is a copy--the production site is still
    housed on the old ColdFusion 5 server). This obviously doesn't
    actually fix the underlying issue with ColdFusion looking in the
    wrong part of the registry on 64-bit Windows, but at least when it
    comes to dealing with Access databases, your suggestion of using
    the Microsoft Access with Unicode driver appears to be a functional
    work-around. So long as there aren't any surprises waiting for me,
    hopefully this will also work for the remaining ColdFusion sites I
    have to migrate that are using Access databases.
    Since you mentioned JDBC drivers in comparison with ODBC, I'm
    pointing out a couple of references in case they're helpful to
    anyone following this thread:
    ColdFusion MX 7 - About JDBC
    http://livedocs.adobe.com/coldfusion/7/htmldocs/00001736.htm
    Types of JDBC technology drivers
    http://java.sun.com/products/jdbc/driverdesc.html
    http://java.sun.com/products/jdbc/
    I don't actually develop anything in ColdFusion, so I'm
    dealing with all of this from a server administration standpoint
    since we do have some domain hosting customers that do develop or
    at least have existing ColdFusion based sites. I am all
    too-familiar with the caveats of using Access in any kind of
    production or heavily used environment and have spent years keeping
    users away from ODBC. For ColdFusion users, that meant creating OLE
    DB DSNs and often having to fix poorly written SQL statements and
    fixing ColdFusion date-related values and boolean values (the
    common problems encountered when switching CF / MS Access users
    from ODBC to OLE DB). I can only recall running into problems with
    a single SQL Server based ColdFusion site when migrating from ODBC
    to OLE DB. That customer never did get their many coding problems
    fixed, so they're the only ones still using ODBC in CF. I have no
    idea what'll happen when that one site gets migrated over--if it'll
    even work. Obviously a lot of things have changed between
    ColdFusion 5 and the MX versions that have come along afterward.
    Thanks again for the Access with Unicode driver tip and JDBC
    info. It looks like I can finally start moving forward again with
    the site migration process.
    Josh

  • About database creation in Peoplesoft.

    Hello..
    I am trying to create database by using scripts provided by peoplesoft HRMS9.
    FYI, I have successfully install tuxedo 9.1, webserver 9.2, PeopleTools8.49 and HRMS 9. I use Oracle 11gR1 on Oracle Enterprise Linux 5.3
    Well, I read on Appendix B in the Enterprise PeopleTools 8.49 Installation for Oracle and some websites.
    I have modified createdb10.sql, utlspace.sql. I ran those scripts and database created.
    Well, when I ran dbowner.sql I got some error. I run as oracle owner and log as sysdba.
    SQL> CONNECT PS/PS;
    Error accessing PRODUCT_USER_PROFILE
    Warning: Product user profile information not loaded!
    You may need to run PUPBLD.SQL as SYSTEM
    Connected.
    so I ran PUPBLD.SQL first. And then I run dbowner.sql. But the error still occured. I read from this http://psst0101.wordpress.com/2009/01/21/step-by-step-virtual-ps-install-database-creation/
    Any suggestion please, because I read in http://gasparotto.blogspot.com/ he did not run pupbld.sql but succeeded.
    Any one have same experience..??

    Lastly, you could try to run this script (PUPBLD.SQL) as SYSTEM, not as SYS.thank you, It's work by connect system/manager and run pupbld.sql.
    well, I run select default_tablespace from dba_users where username='PS' I get SYSTEM.
    I think these column is important information.. :
    username PS
    temporary_tablespace TEMP
    default_tablespace SYSTEM
    status OPEN
    user_id 28
    password ( blank )
    profile DEFAULT
    so, how about that?
    regard.
    Nia...

  • Database Creation Error in 9.2.0.1.0

    Installed 9i on a Win2K Pro machine. Software installation was successful (as far as I can tell). Able to connect to external Oracle DB's without problem.
    However, when creating a local Oracle DB on my machine, I get TNS:packet writer failure errors during the initilization. This seems to happen during every install of a DB I try. The exception is if I log into the machine under the machine's administrator account, vice my domain account. Even though both accounts have the same access to the machine, the database creation will only complete under the machines' administrator account. Then if I do get the DB installed under the administrator. I can't connect to it when logged into the domain becuase I get end-of-file errors. Other user can successfully connect to the DB from separate boxes, but I can't connect locally. Nothing I have found so far can explain why this is happening. What else should I look at as possibly causing this problem. Or are their issues with installing the Oracle 9.2.0.1.0 DB on a domain.

    Installed 9i on a Win2K Pro machine. Software installation was successful (as far as I can tell). Able to connect to external Oracle DB's without problem.
    However, when creating a local Oracle DB on my machine, I get TNS:packet writer failure errors during the initilization. This seems to happen during every install of a DB I try. The exception is if I log into the machine under the machine's administrator account, vice my domain account. Even though both accounts have the same access to the machine, the database creation will only complete under the machines' administrator account. Then if I do get the DB installed under the administrator. I can't connect to it when logged into the domain becuase I get end-of-file errors. Other user can successfully connect to the DB from separate boxes, but I can't connect locally. Nothing I have found so far can explain why this is happening. What else should I look at as possibly causing this problem. Or are their issues with installing the Oracle 9.2.0.1.0 DB on a domain.

  • Migrating Access Database to Web WITH FORMS (not just backend)

    How difficult would this be, what steps would be involved and is Dreamweaver capable of helping?
    The server uses IIS and ASP so compatibility should be fine with access.
    I have enough of a programming history to replace vbasic code with ASP code if I read about the language, but would like to do the least amount of work required.

    Lets just say that Access and Oracle are completly different animals and leave it at that. What I believe you need to do is:
    1. Create an Oracle Database using the Database Creation Assistant. (Keep all the Defaults, and keep track of any passwords that are used.
    2. Using the System (DBA) account, crate a user to hold the Access Schema (Never create objects in the SYS account and you shouldn't do that with the SYSTEM account either.
    3. Run the Access Migration Workbench.

  • Database Creation - Need Help

    Hi All,
    I am new to database creation. We have a project starting early next month.
    The application acts like an interface to more than one user. One user will have access to his/her authorized set of data.
    So, he/she cannot/should not access other users data. Same is the scenario with all the other users.
    We are hoping that, we will have large amount of data specific to every user. We have identified some ways to do this:
    1. Create seperate schemas to each and every user.
    2. Create a single schema and have a master table which will have all the user details. Based on this, the data will be created in the tables.
    3. Have a single schema and create partitions/sub partitions in the tables for each and every user.
    We have identified the above with minimun exposure to database creation/maintenance. So, we are not sure which would be the perfect way
    Can you please suggest the best thing to follow here.
    Thanks in advance.

    If the data structure is exactly the same for all these users and the number of users is high, a better way is to implement Virtual Private Database. With VPD, you will have one transaction data but each user will have access to its own rows only.
    http://www.oracle.com/technetwork/database/security/index-088277.html
    It is more expandable than the solutions you provided and is very seamless after the initial setup.

  • Connect to a remote MS Access database using RmiJdbc

    Hello,
    I want to access a remote MS Access database from oracle stored procedures.
    Does anyone know how i can load the RmiJdbc driver using the loadjava command or with any other way.
    Because when i try to load RmiJdbc.zip using the loadjava command I am getting the error:
    ORA-29533:attempt to overwrite class or resource string while defining or compiling scott.TestClient
    this error is occured for multiple files...
    I don't know how to delete this classes.
    Because this error occured and the first time i tried to load Rmijdbc driver.
    and when i use the dropjava command to drop it,and then load it again the same error occures.
    Can anyone help me how to load this driver?
    Please answer because i need it as soon as possible.
    Thanks

    Hi,
    try this.
    String s = "UPDATE AGENT SET afname='test',alname='u',city='d',AGENT.[percent]=1 WHERE aid=23";
    -------->AGENT.[percent]

  • How to Protect your Custom Access Database Product - so that you can sell & distribute it?

    I'm looking for an update on this topic as I have been away from Access for a couple of years and have not kept up with the latest.
    Hopefully they have made it easier to design, develop, sell and distribute custom database solutions. So here goes...
    Question A:
    If one develops a custom database product with Access 2013 what is the current best way to...
    1 - Prevent it from being (too easily) copied
    2 - Prevent it from being (too easily) reverse engineered
    3 - Prividing a time limited free demo copy?
    4 - Providing a demo copy with limited functionality... like limiting the number of records in an important table, or whatever?
    5 - What have I left out of this list that should be considered for protecting ones investment in the development of the product? (other than copyright, of course.)
    Question B:
    What is the latest on being able to migrate an Access database to the cloud?
    1 - Entirely online
    2 - Part in the cloud and part on the users machine
    3 - And what about all that VBA code - is there no way to make that work in the cloud and/or on a web server... or does it all have to be tossed and all the coding redone?
    Question C:
    What are other alternatives solutions for selling your custom database application while protecting all your investment in developing it?
    1 - Write the front end in C++  (so that it is fully compiled) and the back end in ASP with MS SQL Server? (or alternative server side solutions)
    2 - Write the whole thing as a server side solution with browser interface?
    3 - Or what?
    Thanks for any help.

    Hi Fran_3,
    >>What is the latest on being able to migrate an Access database to the cloud?
    In my option, the Access Web app would be a better choise.
    Regards,
    Tony
    Help each other

  • "Connection is closed" closed error while using MS Access database

    We are using MS Access database in our project. Recently the database was upgraded to 2000.
    After upgrading the database, I get the folowing error when getAutoCommit() is called on a connection -
    java.sql.SQLException: Connection is closed
         at sun.jdbc.odbc.JdbcOdbcConnection.validateConnection(Unknown Source)
         at sun.jdbc.odbc.JdbcOdbcConnection.getAutoCommit(Unknown Source)
    The connection is not closed explicity before getAutoCommit() is called, only the statement is closed.
    This error is sporadic and occurs under load scenario only (when a lot of connections are open). Once the error occurs, all the database calls fail then onwards. The error was not occuring before the database was upgraded.
    I suspect the jbdc-odbc driver. The driver might not be compatible with Access2000 database. Under load scenario, it might be closing connections automatically.
    Has anybody faced similar problem before? Where can I find the compatible jdbc-odbc driver? And how to ensure that it is jdbc-odbc driver problem only?
    The database verison - MS Access 2000
    Java version - 1.3.1_01

    can i just point out that there is no support for transactions in Access so I wonder why you are calling autoCommit methods at all...

  • Access of ms access database and displaying it on applets

    I had made the connection thru JDBC and was able to access data from MS Access database when i had written java application program. But when i created one applet and created instance of that class which was making connection to the database thru JDBC and called one method which was returning one value from the database , i was not able to get on the applet(in the text field) . It gave me some security exception saying acces is not allowed.
    Please give me the reason for this and send me reply back on this email id
    [email protected]

    Welcome to the club. There is an on-going discussion from which I too would like to learn this. Try http://forum.java.sun.com/thread.jsp?forum=31&thread=174953.
    Best Wishes.

  • Database creation problem on Windows XP

    Hello Readers
    I have installed ORACLE Database Engine on windows XP.
    I am facing problem in database creation.
    I have tryed wizard as well as mannual method.
    in wizard at 90% it gives an error "END-OF-FILE ON COMMUNICATION CHANNEL"
    although CD drive is in CR Rom drive.
    Please help me ....
    Rashid Masood Ashraf
    email: [email protected]

    After going to the properties as you suggested:
    Right now the Obtain an IP address automatically is checked
    I need to check the Use the following IP address:
    What should I enter for
    IP address:
    Subnet mask:
    Default gateway:
    Please help.
    Edited by: Nel Marcus on Dec 2, 2008 3:49 PM

  • Not getting the records from Access database

    Hi All,
    Iam creating a universe based on Access database. I am able to view the data from all the tables except one table. When i try to view the data there is one error message "Syntax error in from clause, State: 37000". Everything is ok at database side. What does this error means?
    Please help me on this.
    Thanks.

    Hi BOCP,
           Thanks for your reply. I have resolved my issue. Actually my issue was, I have a table "Date" in universe which was created in Access database, when i tried to view the Date Table values in Universe i was getting that Syntax error in From clause message. I came to know that Date is a keyword or predefined table in WebI & it wont accept that word as a user defined Table. So i renamed that table in Access and Universe. Now my issue was solved.
    Thanks,
    Swati.

Maybe you are looking for

  • New Line character in BO DS

    Hi Experts, Can you please help me in telling the new line character in Data Services, so that I can use that in script. I tried using \n for new line, but of no use. Regards, vivek

  • Problem in serialization of an element

    Hi, I'm facing a problem in sending out message for document style webservice. I have tried to explain the sceanario below as much as possible. I'm writing Bpel process to invoke a wsdl . The input variable to the operation has 2 parts - header and b

  • Its important that all characters display correctly in my pdf.

    When I convert a file to pdf, I always get this error: Cannot extract the embedded font'HWNDJR 83mkhgdligynvro' some characters may not display correctly. What is wrong? Its important that all characters display correctly in my pdf ebook. Please advi

  • N96 TV-out

    The TV-out option of my N96 produces a black and white feature on the TV.  It shows beautifully on my mobile handset but on the TV screen, its in black and white. Thanks! Solved! Go to Solution.

  • Ip address generation

    Hi, I have problem regarding how to create a list of IP addresses given starting and ending IP address. E.g. IF I have starting IP address as 172.20.59.58 and ending IP address as 172.22.56.44, I want to find all the possible IP addresses within this