Forte & ODBC Access Database

We are looking to deploy Forte to Win 3.11 and Win95 users. We are
using Access database tables to hold data cache locally, rather than
pull it across the wire.
We have ODBC drivers for Win95 but are going to get 16bit 3.11 drivers
from VB v4.
Has anyone else tried this and if so, are there any pitfalls or helpfull
hints.
Thanks in advance.
Michae Strauss
Mazda Australia Pty Limited

Duncan,
Just put the column in double quotes.
Example:
sql SELECT
,ipool.id
,asgn."Assignment Date"
,asgn.router
,asgn."Order Number"
FROM assigned_ips addr
,assignments asgn
WHERE
addr.id = asgn.Assigned_IP
AND asgn.master_ip = mpool.id
AND mpool.ip_pool = ipool.id
AND ipool.ncc = ncc.id
ORDER BY addr.id
on session accessDbSession
At 09:31 AM 6/17/99 +1200, you wrote:
Hi folks!
Does anyone know if there is some way to reference Micosoft Access
database columns that contain spaces using Forte and ODBC?
I know it's like trying to use a jet plane to go down to the high street,but
we want to extend a (large) in-house system with a good Forte front-end.
I am aware that there are utilities available to rename entities within
Access databases, but if there is an easy way to do this in Forte we'd
prefer to go that way.
Cheers,
Duncan Kinnear,
McCarthy and Associates, Email: [email protected]
PO Box 764, McLean Towers, Phone: +64 6 834 3360
Shakespeare Road, Napier, New Zealand. Fax: +64 6 834 3369
Providing Integrated Software to the Meat Processing Industry for over 10years
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

Similar Messages

  • Connection to ODBC access database failure

    I have made several sites using ACCESS databases via ODBC DSN
    name. But suddenly it does not work any more. I can not use the
    Database wizards in DM 8.02. When I have made a connection, tested
    it OK and I try to se the tables/views. I only got the word "none".
    If I in the advanced recordset wizard write the SQL command, the
    data is showen correctly!!???
    There is something wrong with DM's abillitry to connect to
    the ODBC DNS name...Everything is updateted to the latest version.
    Is there anybody who have any clue to what could be wrong. It
    is the same story on an old 2000 Server, a new 2003 small busines
    server and from DM installed on two different clientmaschines and
    on the two servers.

    Hi!
    You could try this It worked for me on all my connections.
    I found a extension called SP2DBFix1.0.2.mxp
    Down load here,
    http://download.macromedia.com/pub/dreamweaver/extensions/SP2DBFix1.0.2.mxp
    to fix a XP pro service pack2 connections.
    To fix: I went to Sites/Advanced/Remove connection Scripts,
    ran that removed
    my
    connection scripts. I then shut down Dreamweaver 8 installed
    the extension
    then opened dreamweaver 8 made a new connection and it works
    now Great! Im
    happy.
    You have to run this same routine on every site you have
    setup with
    connection scripts
    Good Luck.
    Dave
    "JOhnny Odgaard" <[email protected]> wrote
    in message
    news:ersvva$2hd$[email protected]..
    > I have made several sites using ACCESS databases via
    ODBC DSN name. But
    > suddenly it does not work any more. I can not use the
    Database wizards in
    DM
    > 8.02. When I have made a connection, tested it OK and I
    try to se the
    > tables/views. I only got the word "none". If I in the
    advanced recordset
    wizard
    > write the SQL command, the data is showen correctly!!???
    >
    > There is something wrong with DM's abillitry to connect
    to the ODBC DNS
    > name...Everything is updateted to the latest version.
    >
    > Is there anybody who have any clue to what could be
    wrong. It is the same
    > story on an old 2000 Server, a new 2003 small busines
    server and from DM
    > installed on two different clientmaschines and on the
    two servers.
    >

  • JDeveloper 10g - ODBC (MS-Access) database connection

    Hi!
    I'm a new JDeveloper user.
    I can connect to an ODBC (Access) database and I can see tables in Oracle JDeveloper 9i. It's work fine.
    I can connect to an ODBC (Access) database but I CAN'T see tables in Oracle JDeveloper 10g(Connections Navigator-tables). It's NOT expanding table items. But when I enter an select sql command in SQL worksheet, it shows me datas in my tables. it's work. How can I resolve this problem?
    I've downloaded only JDeveloper 10g Preview zip file at www.oracle.com. Do I need download any program or application/driver ?
    Thanks...

    Note that JDeveloper 10g is only a preview release-- i.e. a beta. I'm sure that there are bugs in it at the moment which will be addressed in the final release.
    Justin
    Distributed Database Consulting, Inc.
    www.ddbcinc.com

  • Access database/ java application/ jdbc odbc

    i am building an access database with a java application and get the following error message when i try to run the application. the log in window that i have does not have a password text field, only a field for the odbc name.
    java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Not a valid password.
    at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6106)
    at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:6263)
    at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:2488)
    at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:317)
    at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:160)

    User/password are usually necessary to set up the ODBC source. So you may need find out who set up your ODBC source. Or you need find the correct user/password and reset the ODBC source.
    PC

  • Java ODBC image database with MS Access

    hi ,
    Can any one please tell me if it is possible to put and get image from MS Access database with java JDBC ODBC driver? If it is possible then what will be the data type in Access and java. Thanks in advance ��

    I've not seen a data type in Access that would be
    appropriate for iimages--and I believe Access may
    still have an overall size limitation (this may have
    been taken off in Access 2003). If this were Oracle, you'd be using a BLOB. But the reasoning that follows would be the same, regardless of database.
    What I'e had best
    luck doing is leaving the files in their native
    format and storing them in directory structures to
    keep them segregated if need be, and storing their
    names and locations in the DB.This is what I've seen done. It makes little sense to stick the JPEG bytes in the database. You can't use them in a WHERE clause. They just kill database performance. morgalr's solution is a good one.
    %

  • ODBC Cartridge works with MicroSoft Access database?

    I need to work with data saved in the Access Database, I wonder
    if the ODBC Cartridge will work with Access? From the
    documentation, it only mentions Informix, System.... it didn't
    mention Access or Excel ...
    Any suggestion or prior experience to share will be appreciated.
    Your asap response is much appreciated...thanks.
    Frankie
    null

    Hi,
    I'm using OAS407 with ODBC cartridge and connecting to
    Access. Also, Oracle support put an enhancement request
    in for us to modify the ODBC cartridge to return BODY
    tags thru ICX, so ODBC cartridge can be used with
    LiveHTML. Is that what you want to know?
    Regards,
    Mike Thomas
    Frankie (guest) wrote:
    : I need to work with data saved in the Access Database, I
    wonder
    : if the ODBC Cartridge will work with Access? From the
    : documentation, it only mentions Informix, System.... it didn't
    : mention Access or Excel ...
    : Any suggestion or prior experience to share will be
    appreciated.
    : Your asap response is much appreciated...thanks.
    : Frankie
    null

  • [JDBC][ODBC] How to compact access database from Java ?

    Hello,
    I'm developping a java applcation wich is connected to an MS Access file database.
    For now, I don'y compact it but it would be better.
    So How can I compact an access database from Java ?
    thanks :)

    Hi ypiel,
    Try this:
    1) Download JETCOMP.exe (freeware from Microsoft);
    2) Put the following code in your app (assuming your database file name is: "DB.mdb"):
    try {
    File current = new File("DB.mdb");
    File backup = new File("BACKUP.mdb");
    if (current.renameTo(backup)) {
    Runtime.getRuntime().exec("jetcomp -src:BACKUP.mdb -dest:DB.mdb");
    } catch (Exception e) {
    System.out.println(e.getMessage());
    Best regards,
    YT.

  • Forte with Access/Pointbase

    Hi, I am new with Forte and I was wondering if anyone knows how to connect to a database using Forte. There are some connectionSource properties that I saw available but I have no idea how to connect them to either a Access database file or a pointbase database file. There are some URL's and driver's that I should know but I have no idea on how to start. Any tips?
    How do I initialise a pointbase database too?? I am trying to learn to create a database on my own computer without any network connection, hence could I run forte with a database available on my own computer thru pointbase or access?
    cheers.

    first you should check the tutorial on jdbc, which is very good.
    in your class, you'll need to load a driver, for example, jdbc.odbc.JdbcOdbcSunDriver (if memory serves me correctly, you'll then also need to set up a connection ... all explained in the jdbc tutorial. to use access, you'll also need to point to the database through control panel. in control panel choose odbc drivers (using winme), choose admin. tools in xp, the click on odbc, and then i forget the rest since i don'y use access anymore. you'll find how to do this somewhere on the net.

  • "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...

  • The Microsoft Access database engine cannot open or write to the file in Report Builder 3.0

    I am trying to build a report in Report Builder 3.0.  I created the Data Source to point to my Excel file and the Data Set.  I drag a couple of fields on to the canvas and then choose Run.  I get the error:  "The Microsoft Access
    database engine cannot open or write to the file.  It is already opened exclusively by another user".  I am using the Excel driver.  Why am I getting this message?  How can I fix this?

    No, now I am getting the error message again.  It is quite long:
    ERROR [HY000] [Microsoft][ODBC Excel Driver] The Microsoft Access database engine cannot open or write to the file '(unknown)'. It is already opened exclusively by another user, or you need permission to view and write its data.
    ERROR [01S00] [Microsoft][ODBC Excel Driver]Invalid connection string attribute Trusted_Connection
    Please help

  • Open an Access database from ASP on the Windows 2008 32-bit server

    We are upgrading to a Windows 2008 server.  The ASP application opens an Access database with this code:
      Set oConn=Server.CreateObject("ADODB.connection")
      oConn.Open  "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=E:\webdata\applications\po\sfisnet\sfisnet.mdb;"
    The open statement causes this error:
           Number: -2147217887
           Description: Multiple-step OLE DB operation generated errors. Check each OLE DB
           status value, if available. No work was done.
           Source: Microsoft JET Database Engine
           SQL State:
           Native Error: 0
    Research includes: 
     - ODBC drivers  
     - verified that the ms jet dll is present: msjet40.dll, msjet35.dll
     - IIS settings reviewed
     - permission and sharing on the directory and "sfisnet.mdb" database
     - verifies thet OLEDB_SERVICES is in the registry

    They'll help you over here.
    Microsoft ASP.Net forums
    Regards, Dave Patrick ....
    Microsoft Certified Professional
    Microsoft MVP [Windows]
    Disclaimer: This posting is provided "AS IS" with no warranties or guarantees , and confers no rights.

  • Error while connecting to Access Database from Oracle

    Dear All,
    I'm trying to connect Oracle 9i to Access Database.
    but im getting the below error while executing query.
    ERROR at line 1:
    ORA-28545: error diagnosed by Net8 when connecting to an agent
    NCRO: Failed to make RSLV connection
    ORA-02063: preceding 2 lines from MYSQLi did the following thing through to connect the database.
    1) First i made odbc driver called ODBC1
    2) I create the following file on oracle server C:\oracle\ora9I\hs\admin\initodbc1.ora
    i edit the below thing in initodbc1.ora
    HS_FDS_CONNECT_INFO =ODBC1
    HS_FDS_TRACE_LEVEL = ON3) I made some changes in sqlnet.ora
    SQLNET.AUTHENTICATION_SERVICES= NONE
    before it was *NTS*4) Below are the entries in tnsnames.ora i changed the port from 1521 to 1522 cos 1521 already exists.
    ODBC1.TADAWI.LOC =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = admin-amc)(PORT = 1522))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = ODBC1)
    ODBC1.WORLD =
      (DESCRIPTION =
         (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.251) (PORT = 1522)
      (CONNECT_DATA =
          (SID = ODBC1)
      (HS=OK)
    )5) Listener file code
    ODBC1 =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = admin-amc)(PORT = 1522))
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = admin-amc)(PORT = 1521))
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC2))
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = PLSExtProc)
          (ORACLE_HOME = C:\oracle\ora9I)
          (PROGRAM = extproc)
        (SID_DESC =
          (GLOBAL_DBNAME = orcl)
          (ORACLE_HOME = C:\oracle\ora9I)
          (SID_NAME = orcl)
         (SID_DESC =
          (PROGRAM = hsodbc)
          (ORACLE_HOME = C:\oracle\ora9I)
          (SID_NAME = ODBC1)
      )6) after that i created
    SQL> CREATE DATABASE LINK MYSQL CONNECT TO XTRACK IDENTIFIED BY XTRACK USING 'ODBC1.WORLD'
    Database link created.7) Listener Status
    LSNRCTL for 32-bit Windows: Version 9.2.0.1.0 - Production on 04-MAR-2012 21:26:16
    Copyright (c) 1991, 2002, Oracle Corporation.  All rights reserved.
    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=admin-amc)(PORT=1521)))
    STATUS of the LISTENER
    Alias                     LISTENER
    Version                   TNSLSNR for 32-bit Windows: Version 9.2.0.1.0 - Production
    Start Date                04-MAR-2012 20:52:33
    Uptime                    0 days 0 hr. 33 min. 44 sec
    Trace Level               off
    Security                  OFF
    SNMP                      OFF
    Listener Parameter File   C:\oracle\ora9I\network\admin\listener.ora
    Listener Log File         C:\oracle\ora9I\network\log\listener.log
    Listening Endpoints Summary...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=admin-amc.tadawi.loc)(PORT=1521)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC2ipc)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=admin-amc.tadawi.loc)(PORT=8080))(Presentation=HTTP)(Session=RAW))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=admin-amc.tadawi.loc)(PORT=2100))(Presentation=FTP)(Session=RAW))
    Services Summary...
    Service "ODBC1" has 1 instance(s).
      Instance "ODBC1", status UNKNOWN, has 1 handler(s) for this service...
    Service "PLSExtProc" has 1 instance(s).
      Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
    Service "orcl" has 2 instance(s).
      Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...
      Instance "orcl", status READY, has 1 handler(s) for this service...
    Service "orclXDB" has 1 instance(s).
      Instance "orcl", status READY, has 1 handler(s) for this service...
    The command completed successfullyi did exactly what documentation says and it will not through any error but atlast when i try to access the access database tables it give me the below error
    SELECT * FROM DBO_COMPANY@MYSQL
    ERROR at line 1:
    ORA-28545: error diagnosed by Net8 when connecting to an agent
    NCRO: Failed to make RSLV connection
    ORA-02063: preceding 2 lines from MYSQLi'm using Oracle9i Enterprise Edition Release 9.2.0.1.0 any help will appreciate.
    Regards
    Moazam
    Edited by: Moazam Shareef on Mar 4, 2012 10:25 AM

    first of all thanks for your support Mr. Kgronau
    I did what u said but still its giving me below error.
    SQL> SELECT * FROM DBO_PATINS@MYSQL
      2  ;
    SELECT * FROM DBO_PATINS@MYSQL
    ERROR at line 1:
    ORA-12154: TNS:could not resolve service namei re-check the service, and restart the listener as you said below are the logs could you help me to solve this issue plz.
    TNSNAMES.ORA
    # TNSNAMES.ORA Network Configuration File: C:\oracle\ora9I\network\admin\tnsnames.ora
    # Generated by Oracle configuration tools.
    ORCL.TADAWI.LOC =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = admin-amc)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = orcl)
    ODBC1 =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = admin-amc)(PORT = 1522))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = ODBC1)
    INST1_HTTP.TADAWI.LOC =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = admin-amc)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = SHARED)
          (SERVICE_NAME = MODOSE)
          (PRESENTATION = http://HRService)
    EXTPROC_CONNECTION_DATA.TADAWI.LOC =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC2))
        (CONNECT_DATA =
          (SID = PLSExtProc)
          (PRESENTATION = RO)
      )LISTENER.ORA
    # LISTENER.ORA Network Configuration File: C:\oracle\ora9I\NETWORK\ADMIN\listener.ora
    # Generated by Oracle configuration tools.
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = TCP)(HOST = admin-amc)(PORT = 1521))
          (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC2))
    ODBC1 =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = TCP)(HOST = admin-amc)(PORT = 1522))
    SID_LIST_ODBC1 =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = ODBC1)
          (ORACLE_HOME = C:\oracle\ora9I)
          (PROGRAM = hsodbc)
        (SID_DESC =
          (GLOBAL_DBNAME = ODBC1)
          (ORACLE_HOME = C:\oracle\ora9I)
          (SID_NAME = ODBC1)
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = PLSExtProc)
          (ORACLE_HOME = C:\oracle\ora9I)
          (PROGRAM = extproc)
        (SID_DESC =
          (GLOBAL_DBNAME = orcl)
          (ORACLE_HOME = C:\oracle\ora9I)
          (SID_NAME = orcl)
      )then i restart both listener entries (ie lsnrctl start ODBC1 and lsnrctl start ) and both are running fine without any error below are the status.
    LSNRCTL for 32-bit Windows: Version 9.2.0.1.0 - Production on 05-MAR-2012 18:42:09
    Copyright (c) 1991, 2002, Oracle Corporation.  All rights reserved.
    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=admin-amc)(PORT=1521)))
    STATUS of the LISTENER
    Alias                     LISTENER
    Version                   TNSLSNR for 32-bit Windows: Version 9.2.0.1.0 - Production
    Start Date                05-MAR-2012 18:32:15
    Uptime                    0 days 0 hr. 9 min. 56 sec
    Trace Level               off
    Security                  OFF
    SNMP                      OFF
    Listener Parameter File   C:\oracle\ora9I\network\admin\listener.ora
    Listener Log File         C:\oracle\ora9I\network\log\listener.log
    Listening Endpoints Summary...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=admin-amc.tadawi.loc)(PORT=1521)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC2ipc)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=admin-amc.tadawi.loc)(PORT=8080))(Presentation=HTTP)(Session=RAW))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=admin-amc.tadawi.loc)(PORT=2100))(Presentation=FTP)(Session=RAW))
    Services Summary...
    Service "PLSExtProc" has 1 instance(s).
      Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
    Service "orcl" has 2 instance(s).
      Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...
      Instance "orcl", status READY, has 1 handler(s) for this service...
    Service "orclXDB" has 1 instance(s).
      Instance "orcl", status READY, has 1 handler(s) for this service...
    The command completed successfullyLISTENER.ORA ODBC1 status
    LSNRCTL for 32-bit Windows: Version 9.2.0.1.0 - Production on 05-MAR-2012 18:41:52
    Copyright (c) 1991, 2002, Oracle Corporation.  All rights reserved.
    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=admin-amc)(PORT=1522)))
    STATUS of the LISTENER
    Alias                     ODBC1
    Version                   TNSLSNR for 32-bit Windows: Version 9.2.0.1.0 - Production
    Start Date                05-MAR-2012 18:32:08
    Uptime                    0 days 0 hr. 9 min. 46 sec
    Trace Level               off
    Security                  OFF
    SNMP                      OFF
    Listener Parameter File   C:\oracle\ora9I\network\admin\listener.ora
    Listener Log File         C:\oracle\ora9I\network\log\odbc1.log
    Listening Endpoints Summary...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=admin-amc.tadawi.loc)(PORT=1522)))
    Services Summary...
    Service "ODBC1" has 1 instance(s).
      Instance "ODBC1", status UNKNOWN, has 2 handler(s) for this service...
    The command completed successfullyWhere hope i'm near to retrive the access data.
    Regards
    Moazam

  • ODBC access to an Oracle DB running on Windows Server 64 bit?

    I'm being told by a company that there is no way to connect via ODBC from my Mac to an Oracle database hosted on a Windows 64 bit server. Does anyone know whether that is true, and if not, what tool or driver one could use to make the connection?
    Thanks,
    ~Andrew

    Fabio D'Alfonso wrote:
    Hi,
    I was setting up VMware vCenter 4.1 (probably the only well known and largely used product with this lethal mix) and needed to setup an ODBC access to Oracle on the 32 bit side of Windows to setup the Update Manager server component, which is still a 32 bit application)
    The problem with Oracle configuration is that in no way I found a 32 bit ODBC registered driver after the setup (of the 32 bit client and the 64 database server). I tried some third party driver for oracle (e.g. easysoft).They registered in the 32 bit ODBC manager but they never got a successful connection.
    Also if this vCenter requirement is questionable (more questionable considering that the setup of this 32 component is not allowed on a 32 separate OS, not because it is separate but because is a 32 bit OS) I would get it working.
    Could suggest a way to get this working?
    Thanks
    Fabio D'AlfonsoWhen you install the Oracle client software on Windows (which is necessary to support ODBC, as the Oracle ODBC driver sits on top of the native client software) the ODBC driver is NOT installed by default. You have to go back and do a "custom" install and select the "Windows components".

  • Access MS Access database on remote computer (shared folder)

    Hello,
    I need some help.
    I've made a program and it works fine on my computer, but multiple users will be using program simultaneously, each one on his own computer conected over local network to mine computer (database is on my computer in shared folder). 
    When I try to access data on database (path is path of shared folder) i'm getting error 5013 (no database). The problem occurs only when I'm trying to read something from MS access database but not if I try to read data from .txt file, then it works fine...
    I'm using ADO Tools
    Can someone help me, I would be very greatful?
    Solved!
    Go to Solution.

    Thanks to you Dennis I've managed to figure it out.
    I'll explain this for future generations
    1) I've created DSN. To do that open ODBC Data Source Administrator:
    - for 64 bit app C:\Windows\System32\odbcad32.exe
    - for 32 bit app C:\Windows\SysWOW64\odbcad32.exe
     In System DSN tab click Add.. then choose Microsoft Access Driver (*.mdb) (If you do not have this on list download that drivers from web) --> FINISH.
    Enter Data Source Name (mine is Test2) --> Select... --> now because the MS Access database is on shared folder on remote PC go to Network... --> Browse... and select that shared folder --> Finish. Now you'll see all .mdb files on that folder and you choose your database --> OK --> OK --> OK
    2) Now in block diagram you connect string "DSN=your_dsn_name;" (mine was Test2) to ConnectionString connector of ADO Connection Open.vi
    It worked for me.
    Pis
    Attachments:
    MS Access database on remote computer (local network).jpg ‏114 KB

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

Maybe you are looking for