#1242 MS Access Sample Program Failure

v4.2.0
closed
none
1
2014-12-15
2014-01-31
No

ooRexx 4.2.0 RC2 - 64-bit; Windows; MS Access Sample Program Failure

The MSAccessDemo.rex sample program with Access 2010 (32-bit) fails with a misleading denial message. If this does work with the 32-bit version of ooRexx, an incompatibility message should be generated.

Console log:

    Access is denied.
           *-* Compiled method UNKNOWN with scope "OLEObject"
        94 *-*             appAccess~NewCurrentDatabase(dbFileName, formatConstant)
        62 *-* call createDataBaseFile dbFileName, accessApplication  -- create database file, if necessary
    Error 92 running C:\Program Files\ooRexx\samples\ole\apps\MSAccessDemo.rex line 94:  OLE error
    Error 92.906:  OLE exception: Code: 800a7f47 Source: unavailable Description: An error occurred while trying to create the database.

Discussion

  • Mark Miesfeld

    Mark Miesfeld - 2014-02-01

    Works for me:

    C:\work.ooRexx\wc\main.4.2.0\samples\windows\ole\apps>MSAccessDemo.rex

    You are running a 64-bit compiled ooRexx

    This sample relies on the Microsoft Jet Database Engine.
    There is no 64-bit version of Jet, therefore a 64-bit
    compiled ooRexx can not run this sample. This sample
    may be upgraded in the future to work with Access 2007
    and its Microsoft Access Engine (ACE). ACE is also
    32-bit. It is not clear at the current time whether ACE
    will be ported to 64-bit.

    Sorry, this sample is 32-bit only.

    C:\work.ooRexx\wc\main.4.2.0\samples\windows\ole\apps>

    C:\work.ooRexx\wc\main.4.2.0\samples\windows\ole\apps>rexx -v
    Open Object Rexx Version 4.2.0
    Build date: Jan 30 2014
    Addressing Mode: 64

    Copyright (c) IBM Corporation 1995, 2004.
    Copyright (c) RexxLA 2005-2013.
    All Rights Reserved.
    This program and the accompanying materials are made available under
    the terms of the Common Public License v1.0 which accompanies this
    distribution or at
    http://www.oorexx.org/license.html

    C:\work.ooRexx\wc\main.4.2.0\samples\windows\ole\apps>

    On the face of it, it doesn't look like you are executing the example that ships with ooRexx 4.2.0.

     
  • Mark Miesfeld

    Mark Miesfeld - 2014-02-01
    • labels: --> Windows examples
    • assigned_to: Mark Miesfeld
    • Group: Next_Release --> None
    • Priority: 3 --> 1
     
  • Mark Gaubatz

    Mark Gaubatz - 2014-02-01

    The problem is that the call to getAddressingMode (oleUtils) is failing...

    Trace:

        58 *-* accessApplication = checkSystem()
       278 *-* mode = getAddressingMode()
    Access is denied.
           >F>   GETADDRESSINGMODE => "object"
           >>>   "object"
          >=>   MODE <= "object"
       279 *-* if mode == 64
           >V>   MODE => "object"
          >L>   "64"
           >O>   "==" => "0"
           >>>   "0"
    

    Also, the checking code in the samples should be checking for mode != 32, rather than mode == 64, to enter failure routine.

     
  • Mark Miesfeld

    Mark Miesfeld - 2014-02-01
    • status: open --> pending
    • Group: None --> v4.2.0
     
  • Mark Miesfeld

    Mark Miesfeld - 2014-02-01

    Committed revision 9895. [r9895] 4.2.0
    Committed revision 9896. [r9896] trunk

    Okay. I never install in Program Files, so the writing to a temp file worked fine for me.

     

    Related

    Commit: [r9895]
    Commit: [r9896]

  • Rick McGuire

    Rick McGuire - 2014-04-15
    • status: pending --> closed
     

Anonymous
Anonymous

Cancel  Add attachments