Skip to content

BrandonHicks-msr/ruby-odbc

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is an ODBC binding for Ruby. So far it has been tested with

- Ruby 1.[6-9], MySQL 3.22/MyODBC (local), unixODBC 2.1.0
  on Linux 2.2-x86 and 2.6-x86_64

- Ruby 1.6.4, MySQL 3.22/MyODBC (local), libiodbc 2.50
  on Linux 2.2-x86

- Ruby 1.[6-8], MySQL 3.22/MyODBC (remote), MS Jet Engine, MSVC++ 6.0
  on Windows NT4SP6

- Ruby 1.6.[3-5], MySQL 3.22/MyODBC (remote), MS Jet Engine, cygwin,
  on Windows NT4SP6 and 2000

- Ruby 1.8.*, SQLite/ODBC >= 0.67, libiodbc 3.52.4 on Fedora Core 3 x86

Michael Neumann <[email protected]> and
Will Merrell <[email protected]> reported successful compilation
with Cygwin on Win32.
- Ruby 1.6.[3-8] or Ruby >= 1.7
- unixODBC 2.x or libiodbc 3.52 on UN*X
$ ruby -Cext extconf.rb [--enable-dlopen|--disable-dlopen]
$ make -C ext
# make -C ext install

--enable/disble-dlopen turns on/off special initialization
code to make ruby-odbc agnostic to unixODBC/iODBC driver
manager shared library names when GCC is used for compile.
In cases where unixODBC or iODBC is installed in non-standard
locations, use the option --with-odbc-dir=<non-standard-location>
when running extconf.rb
$ ruby -Cext/utf8 extconf.rb [--enable-dlopen|--disable-dlopen]
$ make -C ext/utf8
# make -C ext/utf8 install
C:..>ruby -Cext extconf.rb
C:..>cd ext
C:..>nmake
C:..>nmake install
C:..>ruby -Cutf8 extconf.rb
C:..>cd utf8
C:..>nmake
C:..>nmake install
   $ ruby -Ctest test.rb DSN [uid] [pwd]
or
   $ ruby -KU -Ctest/utf8 test.rb DSN [uid] [pwd]
Refer to doc/odbc.html

The difference between utf8 and non-utf8 versions are:

  - non-utf8 version uses normal SQL.* ANSI functions
  - utf8 version uses SQL.*W UNICODE functions and
    requires/returns all strings in UTF8 format

Thus, depending on the -K option of ruby one could use
that code snippet:

  ...
  if $KCODE == "UTF8" then
    require 'odbc_utf8'
  else
    require 'odbc'
  fi

It is also possible to load both non-utf8 and utf8 version
into ruby:

  ...
  # non-utf8 version
  require 'odbc'
  # utf8 version
  require 'odbc_utf8'

Whichever is loaded first, gets the module name 'ODBC'.
The second loaded module will be named 'ODBC_UTF8' (for
'odbc_utf8') or 'ODBC_NONE' (for 'odbc'). That should
allow to use both versions simultaneously in special
situations.
- heavier testing
- improve documentation
Christian Werner
mailto:[email protected]
http://www.ch-werner.de/rubyodbc

About

ODBC binding for Ruby

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 83.6%
  • Ruby 10.5%
  • Makefile 5.9%