OREXX/SQL Object Framework

From EDM2
Jump to: navigation, search

A set of Object REXX classes that allows you to write scripts that talk to multiple variations of SQL databases without having to change your scripts, it achieves this by either wrapping around the REXX/SQL Classic REXX extension or it can also be used as a Streams based interface to a SQL database, either of these interfaces can be used to build more complex classes with. The OREXX/SQL Object Framework also manages the database connections and has some built in error handling facilities.


Note that while this version is old it appears to work on not just the old OS/2 version of Object REXX but also more modern Microsoft Windows, AIX and Linux releases of the package with a couple of caveats listed below.
Known issues

The OREXX/SQL package works just fine with old versions of REXX/SQL of a similar vintage to the OREXX/SQL package, it also works with newer versions of REXX/SQL up to and including v2.6 Beta 3 with two known issues.

Firstly some of the SQL commands and formats introduced with later REXX/SQL versions and/or later versions of databases, are not passed on correctly by OREXX/SQL either by the wrapper or the Streams interface, you may or may not need them but if you do it should be noted that unlike the REXX/SQL package that requires you to compile C code to change the behaviour, OREXX/SQL is simply a set of classes written in Object REXX so you can actually modify the SQLConnection.cls class to pass on the required commands correctly. There is a discussion on this on one of the REXX/SQL support forums on this subject linked to below.

Secondly the REXX/SQL package does not support multithreading, this means it expects all calls made to it to be made by the same thread that originally initiated the connection. Most Classic REXX interpreters only talk to extensions on a single thread but Object REXX can under certain circumstances use more than one thread. There are various ways around this depending on OS, but on OS/2 you should in most cases not see this bug unless you explicitly start a new thread.

Links & publications


  • Open source software released under the LGPL v2.1.


  • John Blumel