Fetching contributors…
Cannot retrieve contributors at this time
110 lines (72 sloc) 3.23 KB



An OpenEdge driver for DataObjects.


This driver implements the DataObjects API for the Progress OpenEdge relational database. This driver is currently provided only for JRuby.

Known Issues

  • BLOB/CLOB fields cannot be used as predicates or arithmetic/comparison operators. In other words, you cannot query rows based on their value. You will have to query the rows using a different column value (there is no issue doing reads or writes with BLOB/CLOB fields). See ProKB P91964 for more info.
  • The 10.2B JDBC driver causes DECIMAL/NUMERIC SQL types to round up to the nearest integer and then truncate all digits after the decimal point. According to ProKB P187898, it appears to be a regression bug in the JDBC driver.


An example of usage:

@connection ="openedge://localhost:4000/sports2000")
@reader = @connection.create_command('SELECT * FROM State').execute_reader!

The Connection constructor should be passed either a DataObjects-style URI or JDBC-style URI:


Note that the DataDirect proprietary-style JDBC URI tokenized with ;s:


is not supported.


  • JRuby 1.3.1 + (1.4+ recommended)
  • data_objects gem
  • do_jdbc gem (shared library)


To install the gem:

jruby -S gem install do_openedge

To compile and install from source:

  • Install the Java Development Kit (provided if you are on a recent version of Mac OS X) from
  • Install a recent version of JRuby. Ensure jruby is in your PATH and/or you have configured the JRUBY_HOME environment variable to point to your JRuby installation.
  • Install data_objects and do_jdbc with jruby -S rake install.
  • Install this driver with jruby -S rake install.


Follow the above installation instructions. Additionally, you'll need:

  • rspec gem for running specs.
  • YARD gem for generating documentation.

See the DataObjects wiki for more comprehensive information:

To run specs:

jruby -S rake spec

To run specs without compiling extensions first:

jruby -S rake spec_no_compile

To run individual specs:

jruby -S rake spec SPEC=spec/connection_spec.rb

Spec data setup

The specs require an empty database to use for running tests against (the database will be written/read from by the tests). Here are some commands to be ran from proenv to create an empty database that can be used for testing (note the use of UTF-8, which is required for proper multibyte string support):

prodb test empty
proutil test -C convchar convert utf-8
proserve test -S 4000


This code is licensed under an MIT License. Please see the accompanying LICENSE file.