Access database as source system

Hi, Anyone has an idea about connecting MS access as source system. I did search on help.sap.com. I found UD connect / BI java connectors
http://help.sap.com/saphelp_nw70/helpdata/en/78/ef1441a509064abee6ffd6f38278fd/frameset.htm
any other supported methods?
Thanks in advance.

Hi Keven,
Get your data in the format you need - fast. No steep learning curve - no complicated software to drive. When over 95% of data applications support the import of CSV and delimited text files why complicate things. With this easy-to-use tool anyone can, install and start exporting Lotus Notes information in minutes. Export to CSV and text delimited format. Then simply import into any other format required
And use the flat file source system to extract this data.
Edited by: sasidhar vangara on Jun 4, 2009 11:40 AM

Similar Messages

  • Connecting sql server database as source system into BW in unix/oracle

    Hi
    We have a requirement to extract the data from MS SQL server database as a source system into the BW3.0B instance, which is running under HP-UX/oracle.
    We have been told that Microsoft does not supply a SQL Server driver for UNIX.
    So in this case, we need to have a option to complete it.
    Please let me know if some one has any similar type configuration existing.
    VJ

    In general, BI application servers can only be supported for DB Connect on operating system versions where a SAP Database Shared Library (DBSL) has been released for the BI database and the source database.
    refer: http://help.sap.com/saphelp_nw70/helpdata/EN/58/54f9c1562d104c9465dabd816f3f24/frameset.htm for DB Connect supported DB's.

  • How to connect external database into BI source system?

    <Moderator Message: Please search before posting. This issue has already been discussed a lot of times. Additionally you might have a look at the online help>
    Dear SDN,
    I am working on BI 7.0 system.
    Client request is to connect the external database into source system.
    External database (different server) has installed the Sybase database.
    1.Is it possible ?
    2.What is the procedure for connectivity from BI end .
    3. which server port of external database(sybase databse) need tobe open for firewall policy.
    Thanks in advance
    Ravi
    Edited by: Siegfried Szameitat on Mar 9, 2009 1:23 PM

    Hi Ravindra,
                    Check here........
    <link farm removed by moderator>
    Thanks,
    Vijay.
    Edited by: vijay m on Mar 9, 2009 5:43 PM
    Edited by: Siegfried Szameitat on Mar 9, 2009 1:23 PM

  • Restoring an ms access database backup file in sql server 2005

    Hello everyone.
    I have an ms access database backup file.
    Presently i dont have ms access database in  my system.
    It is high priority to access that ms access database backup file. 
    So, is there anyway to access that in sql server?
    -- Thanks and Regards Srikar Reddy Gondesi, Trainee SQL Server Database Administrator Miracle Software systems, Inc.

    Hello sir,
    i tried to use import/export wizard to import data from an ms access backup file.
    I completed it with some warning's.
    Wizard has shown that 2 out of three objects(tables and views) are copied to destination database(empty database which i have created for storing this imported data).
    And in that process, wizard made me to create a package.
    Now how to access that package?
    And my newly created database has no data.(i mean it is supposed to have 2 objects which are copied from source right?)
    Sorry if my doubt looks silly i have never used ssis or import/export ever before.
    -- Thanks and Regards Srikar Reddy Gondesi, Trainee SQL Server Database Administrator Miracle Software systems, Inc.
    -- Thanks and Regards Srikar Reddy Gondesi, Trainee SQL Server Database Administrator Miracle Software systems, Inc.

  • Source System - RFC Connection

    From RSA1 if I go to a source system in B/W, right click and choose the  check option, I get an error message which says BW Unknown in source system.  I think this is indicating that the RFC is not set correctly.  I have gone to another B/W which also accesses the same Source System and have done a check and the connection is fine. 
    If I right click the Source System and select Change in both B/W systems everything is identical except the name entered for the Target Host.  If I ping both names the IP address is identical though.  Would the Target Host name cause an issue?  If not can someone advise on the steps to fix the RFC?  Thanks

    Niten,
    Most likely, IDOC settings on the source system side are not correct. Ensure that the source system is open and you have authorizations to maintain ALE settings. After that right click on the source system and select activate. If that does nto work, try restore.
    Aneesh

  • About creating a new source system on BW pointing to an Oracle database

    hi friends
      i m facing problems when i 
    creating a new source system on BW in AIX pointing to an Oracle database, our bw oracle use 10idatabase ,and we want to connet to 9idatabase(Windows) to get data for BW
    (1.)     in /oracle/P01/102_64/network/admin  tnsnames.ora I hava  add
    SJPT =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 68.16.211.177)(PORT = 1521))
        (CONNECT_DATA =
          (SERVICE_NAME = SJPT)
    (2) and in etc/hosts I hava  add
    68.16.211.177 SJPT
    (3) in p01adm> tnsping SJPT it is OK
    (4)but when i
    in  BW RSA1 DATA SOURCE 
    create db connect:
    DBMS: ORA
    USER NAME: SAP
    DB PASSWORD: SAP
    [email protected]
    i t give me the error message :
    ORA-12154: TNS:could not resolve  the connect identifier
    please help me

    HI,my trans.log file is
    4 ETW000 R3trans version 6.13 (release 700 - 20.02.06 - 16:15:00).
    4 ETW000 unicode enabled version
    4 ETW000 ===============================================
    4 ETW000
    4 ETW000 date&time   : 13.11.2007 - 10:16:48
    4 ETW000 control file: <no ctrlfile>
    4 ETW000 R3trans was called as follows: R3trans -d
    4 ETW000  trace at level 2 opened for a given file pointer
    4 ETW000  [dev trc     ,00000]  Tue Nov 13 10:16:48 2007                              81  0.000081
    4 ETW000  [dev trc     ,00000]  db_con_init called                                    29  0.000110
    4 ETW000  [dev trc     ,00000]  create_con (con_name=R/3)                             50  0.000160
    4 ETW000  [dev trc     ,00000]  Loading DB library '/usr/sap/P01/SYS/exe/run/dboraslib.o' ...
    4 ETW000                                                                              43  0.000203
    4 ETW000  [dev trc     ,00000]  load shared library (/usr/sap/P01/SYS/exe/run/dboraslib.o), hdl 0
    4 ETW000                                                                           13346  0.013549
    4 ETW000  [dev trc     ,00000]  Library '/usr/sap/P01/SYS/exe/run/dboraslib.o' loaded
    4 ETW000                                                                              32  0.013581
    4 ETW000  [dev trc     ,00000]  function DbSlExpFuns loaded from library /usr/sap/P01/SYS/exe/run/dboraslib.o
    4 ETW000                                                                              35  0.013616
    4 ETW000  [dev trc     ,00000]  Version of '/usr/sap/P01/SYS/exe/run/dboraslib.o' is "700.08", patchlevel (0.46)
    4 ETW000                                                                              53  0.013669
    4 ETW000  [dev trc     ,00000]  function dsql_db_init loaded from library /usr/sap/P01/SYS/exe/run/dboraslib.o
    4 ETW000                                                                              34  0.013703
    4 ETW000  [dev trc     ,00000]  function dbdd_exp_funs loaded from library /usr/sap/P01/SYS/exe/run/dboraslib.o
    4 ETW000                                                                              53  0.013756
    4 ETW000  [dev trc     ,00000]  New connection 0 created                              23  0.013779
    4 ETW000  [dev trc     ,00000]  0: name = R/3, con_id = -000000001 state = DISCONNECTED, perm = YES, reco = NO , timeout = 000, con_max = 255, con_opt = 255, occ = NO
    4 ETW000                                                                              39  0.013818
    4 ETW000  [dev trc     ,00000]  db_con_connect (con_name=R/3)                         45  0.013863
    4 ETW000  [dev trc     ,00000]  find_con_by_name found the following connection for reuse:
    4 ETW000                                                                              32  0.013895
    4 ETW000  [dev trc     ,00000]  0: name = R/3, con_id = 000000000 state = DISCONNECTED, perm = YES, reco = NO , timeout = 000, con_max = 255, con_opt = 255, occ = NO
    4 ETW000                                                                              37  0.013932
    4 ETW000  [dev trc     ,00000]  Got LIBPATH=/usr/lib:/lib:/usr/sap/P01/SYS/exe/run:/oracle/P01/102_64/lib from environment
    4 ETW000                                                                             325  0.014257
    4 ETW000  [dev trc     ,00000]  -->oci_initialize (con_hdl=0)                         47  0.014304
    4 ETW000  [dev trc     ,00000]  Client NLS settings: AMERICAN_AMERICA.UTF8          3234  0.017538
    4 ETW000  [dev trc     ,00000]  Logon as OPS$-user to get SAPSR3's password           28  0.017566
    4 ETW000  [dev trc     ,00000]  Connecting as /@P01 on connection 0 (nls_hdl 0) ... (dbsl 700 240106)
    4 ETW000                                                                              34  0.017600
    4 ETW000  [dev trc     ,00000]  Nls CharacterSet                 NationalCharSet              C      EnvHp      ErrHp ErrHpBatch
    4 ETW000                                                                              35  0.017635
    4 ETW000  [dev trc     ,00000]    0 UTF8                                                      1 0x110f8b9c0 0x110fa3e38 0x110fa36e8
    4 ETW000                                                                              36  0.017671
    4 ETW000  [dev trc     ,00000]  Allocating service context handle for con_hdl=0       37  0.017708
    4 ETW000  [dev trc     ,00000]  Allocating server context handle                      24  0.017732
    4 ETW000  [dev trc     ,00000]  Attaching to DB Server P01 (con_hdl=0,svchp=0x110f94398,svrhp=0x110fa6158)
    4 ETW000                                                                              72  0.017804
    4 ETW000  [dev trc     ,00000]  Assigning server context 0x110fa6158 to service context 0x110f94398
    4 ETW000                                                                           36191  0.053995
    4 ETW000  [dev trc     ,00000]  Allocating user session handle                        73  0.054068
    4 ETW000  [dev trc     ,00000]  Starting user session (con_hdl=0,svchp=0x110f94398,srvhp=0x110fa6158,usrhp=0x110f937a0)
    4 ETW000                                                                              43  0.054111
    4 ETW000  [dev trc     ,00000]  Assigning user session 0x110f937a0 to service context 0x110f94398
    4 ETW000                                                                           10613  0.064724
    4 ETW000  [dev trc     ,00000]  Now '/@P01' is connected (con_hdl 0, nls_hdl 0).
    4 ETW000                                                                             964  0.065688
    4 ETW000  [dbsloci.    ,00000]  *** ERROR => ORA-942 when accessing table SAPUSER
    4 ETW000                                                                            1183  0.066871
    4 ETW000  [dev trc     ,00000]  Disconnecting from connection 0 ...                   73  0.066944
    4 ETW000  [dev trc     ,00000]  Rolling back transaction ...                          28  0.066972
    4 ETW000  [dev trc     ,00000]  Closing user session (con_hdl=0,svchp=0x110f94398,usrhp=0x110f937a0)
    4 ETW000                                                                             146  0.067118
    4 ETW000  [dev trc     ,00000]  Now I'm disconnected from ORACLE                     409  0.067527
    4 ETW000  [dev trc     ,00000]  Try to connect with default password                  23  0.067550
    4 ETW000  [dev trc     ,00000]  Connecting as SAPSR3/<pwd>@P01 on connection 0 (nls_hdl 0) ... (dbsl 700 240106)
    4 ETW000                                                                              34  0.067584
    4 ETW000  [dev trc     ,00000]  Nls CharacterSet                 NationalCharSet              C      EnvHp      ErrHp ErrHpBatch
    4 ETW000                                                                              36  0.067620
    4 ETW000  [dev trc     ,00000]    0 UTF8                                                      1 0x110f8b9c0 0x110fa3e38 0x110fa36e8
    4 ETW000                                                                              36  0.067656
    4 ETW000  [dev trc     ,00000]  Assigning username to user session 0x110f937a0        22  0.067678
    4 ETW000  [dev trc     ,00000]  Assigning password to user session 0x110f937a0        41  0.067719
    4 ETW000  [dev trc     ,00000]  Starting user session (con_hdl=0,svchp=0x110f94398,srvhp=0x110fa6158,usrhp=0x110f937a0)
    4 ETW000                                                                              37  0.067756
    4 ETW000  [dboci.c     ,00000]  *** ERROR => OCI-call 'OCISessionBegin' failed: rc = 1017
    4 ETW000                                                                           33690  0.101446
    4 ETW000  [dbsloci.    ,00000]  *** ERROR => CONNECT failed with sql error '1017'
    4 ETW000                                                                              36  0.101482
    4 ETW000  [dblink      ,00431]  ***LOG BY2=>sql error 1017   performing CON [dblink#3 @ 431]
    4 ETW000                                                                             122  0.101604
    4 ETW000  [dblink      ,00431]  ***LOG BY0=>ORA-01017: invalid username/password; logon denied [dblink#3 @ 431]
    4 ETW000                                                                              34  0.101638
    2EETW169 no connect possible: "DBMS = ORACLE                           --- dbs_ora_tnsname = 'P01'"

  • Why is the Microsoft Office Access Database Engine data source looking for a workgroup information file?

    While trying to import to MSSQL2012 from SSDT using the wizard from an Access 2013 DB (.accdb) which is password protected, I get the following error with the username blank and the password field correctly populated: 
    Cannot start your application. The workgroup information file is missing or opened exclusively by another user. (MicrosoftOffice Access Database Engine)
    But according to this link:
    http://office.microsoft.com/en-us/access-help/what-happened-to-user-level-security-HA010342116.aspx
    MSA10 and beyond shouldn't need workgroup information files, although it's not clear to me if they are
    created/used or not.
    I can point the wizard to some local version of system.mdw at Advanced -> All -> Jet OLEDB:System Database, and then the error becomes:
    Not a valid account name or password. (Microsoft Office Access Database Engine)
    for any username I can think of.
    Questions:
    1.  Why does this data source insist on looking for a workgroup information file even though user-level security should be disabled?
    2.  Why does the Open dialog box for the Microsoft Access Database Engine have *.mdb as the only selectable filetype?
    3.  How can I get around these errors for an .accdb that is password protected?
    Thanks!

    Hi JordanPG,
    To connect to Access 2007 or later database, we need the Microsoft ACE 12.0 OLE DB driver. SQL Server only installs the Microsoft Jet 4.0 OLE DB driver which can be used to connect to Access 2003 or earlier database. Besides, the Microsoft Jet 4.0 OLE DB
    driver only has 32-bit version, but the Microsoft ACE 12.0 OLE DB driver has both 32-bit and 64-bit version. However, the 32-bit and 64-bit Microsoft ACE 12.0 OLE DB drivers cannot be installed on a single server.
    According to your description, you can use the 64-bit SQL Server Import and Export Wizard to load data from the Access database, so the 64-bit Microsoft ACE 12.0 OLE DB driver is installed on your computer. Since the BIDS/SSDT is a 32-bit application, the
    64-bit Microsoft ACE 12.0 OLE DB Provider is not visible in BIDS/SSDT. So, when you said that you select “Microsoft Access (Microsoft Access Database Engine)" in the SQL Server Import and Export Wizard (it is actually the 32-bit version) started by the SSDT,
    I think it should be “Microsoft Access (Microsoft Jet Database Engine)”. Because the Microsoft Jet 4.0 OLE DB driver only supports Access 2003 or earlier format, it threw the error “Test connection failed because of an error in initializing provider. Unrecognized
    database format 'C:\myDB.accdb'”.
    In this situation, you have two approaches to avoid this issue:
    Launch the SQL Server Import and Export Wizard (64-bit), and select “Save SSIS Package” to “File System” on the “Save and Run Package” page. Then, the package will be saved to a specified directory. After that, you can add this existing package to a SSIS
    project. The status of the corresponding OLE DB Connection Manager should be Work Offline, or the OLE DB Source will throw an error about 32-bit driver if the Connection Manager is not in Work Offline status, you can ignore that and the package can run successfully
    in SSDT as long as the project is set to run in 64-bit runtime mode.
    However, for the SSDT 2012 integrated with Visual Studio 2012, the 64-bit runtime mode is disabled. In this situation, to run the package in SSDT, you have to uninstall the 64-bit Microsoft ACE 12.0 OLE DB drivers and install the 32-bit one. Here is the
    download link:
    http://www.microsoft.com/en-in/download/details.aspx?id=13255 
    Regards,
    Mike Yin
    TechNet Community Support

  • Access As Database data source + licensing

    Hello,
    If I was to develop an application with Microsoft Access as the data source, I can connect to the Access database like so
         update the database
       private boolean updateDatabase(String value)
                 try
                       Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                 catch (Exception e)
                       System.out.println("Failed to load JDBC/ODBC driver.");
                       return false;
                 try
                 {  createDatabaseConnection();
                     query="UPDATE Sonething SET value='"+value+"' WHERE Name='Chris'";
                        stmt = con.createStatement();
                        stmt.executeUpdate(query);
                        con.close();
              catch (Exception e)
                  e.printStackTrace(System.err);
                  return false;
           return true;
         Create a connection to the access database
         using a dsn-less connection
       private void createDatabaseConnection()
            try
                 url ="jdbc:odbc:DRIVER={Microsoft Access Driver(*.mdb)};DBQ=.//dbase//testdb.mdb";     
                con=DriverManager.getConnection(url,"test","password");     
          catch(Exception e)
               e.printStackTrace(System.err);     
    However the questions are as follows, If I use Access as the database source does the client computer need a copy of access and are there any licensing restrictions in distributing the .mdb ?
    THanks
    Chris

    No licence required for this type of access. You can distrubute and use programmaticaly MS Access database.

  • Source system set up for internal / external access

    Hi all.
    We have an EP 6.0 (NW04 SP16) system delivering BW data from a back-end BW 3.1/3.2 system.  We are using BW Report iViews to deliver all reports to external and internal users.  I am having a very specific problem when setting up the source system for the BW system.
    The BW Report iView object uses the WAS hostname parameter(found under: System Administration -> System Configuration -> Systems -> BWSourceSystem -> Open ->Object -> "Web Application Server (WAS)") when retrieving the back-end BW report. 
    When this parameter is set using an internal host id (internal_host.company.com) internal users can access the report in question, but external users can't.  Alternatively, when this parameter is set using an external host id (ie. the host of our DMZ proxy server) external users can access the report, but internal users can't.
    I need to find a way to use one hostname for this parameter that will work for both internal and external users.  I have worked with the HTTPURLLOC table and this solution works great for URL iViews, but not for BW Report iViews.  Does anyone have any suggestions?  Thanks!

    Hi Shashi.
    We did find a solution using web dispatcher.  We actually installed two instances of web dispatcher... one in our DMZ for external access and another one our corporate LAN.  The web dispatchers are configured identically and the EP instance knows only one hostname:
    name.company.com
    The port passed to the URL https://name.company.com:port is what tells web dispatcher what to do with the request (ie. pass the request to EP, BW, ECC, R/3, etc.).
    Be aware that EP allows for only one hostname for Source System Setup - my name.company.com in my example above -(this is the EP Web Application Server hostname (WAS) parameter found under System Admin - System Config - Systems) - so you may need to do something like we did:
    register name.company.com on the internet as a public address and use that DNS mapping for external users (using your DMZ version of webdispatcher).  Subsequently, use internal DNS or host name mapping to register an internal private addresss for name.company.com (using your LAN version of web dispatcher).  this will allow both internal / external users access to the portal and other SAP back-end systems.
    It may sound a bit kludgy, but believe me - we tried everything to make this work.  I took this all of the way to SAP and this was the recommendation SAP made for allowing both internal and external users access to portal and BW data.
    Hope this helps!

  • Connecting MSSQL Database source system from BW 3.5/Oracle 9.2.0.6/AIX 5.3

    Hi,
    We want to extract data from MSSQL database source system into BW 3.5/Oracle 9.2.0.6 system in AIX environment. Apart from intsalling NT app server,UDC, XI,flat file options, can you please suggest any other methods to extract data from SQL database into  BW/AIX system?. Thanks in advance.
    Thanks.
    Raj.

    Raj,
    Did you find any solution for this problem. We are having exactly the same issue and are trying to do it with SAP DBConnect.
    We are able to create a Source System for MSSQL server but it does not connect since the "Database Shared Library" is not installed on our BW 3.5 AIX box.
    From what we gather there is NO DSL for MSSQL for AIX. I cannot believe we cannot connect to MSSQL directly since we have too many MSSQL databases all around the company.
    regards,
    Atul

  • Setting System DSN for MS Access Database using Java Code

    How to set the system DSN for Access database using Java Code at runtime....???
    Replies are deeply appreciated...

    I found a 3rd Party MS Access JDBC Driver from a Google search. I downloaded and tried the free trial version. It worked fine but we opted not to purchase the full version and went a different route. If you don't find it, let me know and I'll see if I can track down the name of the product we tested.

  • DW Procedures to connect to MS ACCESS database located on remote server

    I am confused about the procedures within Dreamweaver CS3 to connect to a MS ACCESS database on a remoter server.
    I am working through a tutorial book, "Dreamweaver 8 with ASP, Cold Fusion and PHP Training from the Source", but the instructions are unclear concerning the procedures to connect to a MS ACCESS database located on a remote server. 
    The book indicates that the server administration has to create the DSN for you and screen shots indicate that you will result in a list of DSNs to choose from when creating the connections .asp file.
    I went through the procedures to create a connections .asp and resulting in a connection without and tables (of course) because I do not initially have any connection information from my remote site.
    I have generated the required two lines of code as follows for my MS ACCESS database connection on my remote server:
    'Database connection info and provider
    strCon="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&_
    Server.MapPath("database\trans.mdb") & ";" &_
    "User ID=xxx;Password=xxxxx"
    The question that I have is:
    How does this connection coding relate to the "connections/conn_newland.asp" file that was create within the Dreamweaver screens?  How do I merge the ASP coding?  The file (/connections/conn_newland.asp) generated within Dreamweaver is as follows:
    <%
    'FileName="Connection_odbc_conn_dsn.htm"
    'Type="ADO"
    'DesignationType="ADO"
    'HTTP="true"
    'Catelog=" "
    'Schema
    Dim MM_conn_newland_STRING
    MM_conn_newland_STRINT = "dsn=newland;"
    %>
    Any advice would be appreciated.  I know that this is simple but debugging an error from an  ASP coding merge would be a "bear" to debug!

    I have not used MS Access myself (fortunately) but I believe it works much like the old, old way of achieving a multi-user database in FileMaker.
    That is, it is not a true client-server database but more a peer-to-peer database and that each peer opens the same database file which is available to multiple user via file sharing. Therefore as elikness said it should just be a matter of putting the files on your Lion Server and then sharing that folder/volume using SMB sharing.
    However one thing to be aware of, since MS Access is not a true client-server database I would imagine it uses record locking to manage simultaneous direct access to records in the same files. File or Record locking is something that has historically been a bit flakey when using Windows clients with a Mac file server (and probably vice versa).
    While I am not proposing it as a solution to consider seriously, it is worth you knowing that FileMaker Pro is a database system that is available for both Mac and Windows and depending on how you configure things can be considered to stretch from a configuration very similar to MS Access at the low end all the way to a high-end MS SQL Server style setup at the top end. See http://www.filemaker.com for details.
    There is also a a third-party tool available for migrating databases to or from FileMaker Pro and it can convert MS Access databases to FileMaker Pro see http://www.fmpromigrator.com/
    You could use FileMaker Pro just on Windows machines if you wish.

  • 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

  • Error while adding oracle as a source system to BW

    Hi Experts,
    I am trying to connect BW to the oracle database. While connecting I am getting the error "Source System XXXXX Cannot Be Accessed".
    I checked for the TNS name and Connection Info in TNSNAMES.ORA  and everty thing seems to be good.
    Please Advice.
    Regards,
    K.Manikandan.

    Hi Manikandan,
    Is the DBSL installed on the Oracle database. Check this link:
    http://help.sap.com/saphelp_nw04/helpdata/en/a1/89786c3df35c4ea930a994e884bb4c/frameset.htm
    Also check OSS Note:323151
    Bye
    Dinesh

  • 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

  • Does the cord used for syncing an ipod have to be the one supplied with it?

    I've just installed a new hard drive and am trying to reload everything. My iPod is no longer recognised as a device on my macbook. Could that be because I am using a cable from a different product?

  • N95 - Caller Can't Hear Me!

    I picked up an N95 last week and love the phone and its features but I wonder if anyone else has had a problem where a person at the other end of a call cannot hear you? On several occasions I've called someone and they can't hear me - it's like I ha

  • XML encoding

    Hi all, I'm using JAXB marshaller to get some XML strings.... All works great, however, the marshaller adds in front of the XML string I'm interested in an XML encoding string. It looks like that "<?xml version="1.0" encoding="UTF-8" standalone="yes"

  • Help with photoshop actions

    hi everyone, i am trying to get an image then put it through photoshop and use an action to make the image look like it is on a 3d canvas, i have in work got he action for it, but i am off work at the moment and cant get hold of it, i am sure it was

  • Problem with audio - PCM

    Hello all I have some movie clips from my camera: Format profile               : QuickTime Codec ID                     : qt  File size                    : 302 MiB Duration                     : 5mn 55s Overall bit rate             : 7 129 Kbps Enco