I am trying to query a Progress OpenEdge Database from a ruby application.
I am unable to get ruby-odbc to compile against the Progress ODBC driver include files.
Perls DBD::ODBC compiled just fine and I can query from perl.
Any suggestions?
I've tried both DataDirect Connect64 drivers and the Progress OpenEdge SQL Client Access drivers.
I get the same error with both libraries.
47501odbc:~ # gem install ruby-odbc -- --with-odbc-dir=/usr/dlc/odbc
Building native extensions with: '--with-odbc-dir=/usr/dlc/odbc'
This could take a while...
/usr/local/rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/rubygems/ext/builder.rb:73: warning: Insecure world writable dir /usr/dlc in PATH, mode 040777
ERROR: Error installing ruby-odbc:
ERROR: Failed to build gem native extension.
/usr/local/rvm/rubies/ruby-2.1.1/bin/ruby extconf.rb --with-odbc-dir=/usr/dlc/odbc
checking for version.h... no
checking for sql.h... yes
checking for sqlext.h... yes
checking for SQLTCHAR in sqltypes.h... no
checking for SQLLEN in sqltypes.h... no
checking for SQLULEN in sqltypes.h... no
checking for odbcinst.h... yes
checking for SQLAllocConnect() in -lodbc... yes
checking for SQLConfigDataSource() in -lodbcinst... no
checking for SQLConfigDataSource() in -liodbcinst... no
checking for SQLInstallerError() in odbcinst.h... yes
checking for SQLBIGINT in sqltypes.h with -DHAVE_LONG_LONG... no
creating Makefile
make "DESTDIR=" clean
make "DESTDIR="
compiling init.c
compiling odbc.c
odbc.c:47: error: redefinition of typedef ‘SQLTCHAR’
/usr/dlc/odbc/include/sqltypes.h:329: error: previous declaration of ‘SQLTCHAR’ was here
odbc.c:2404: error: ‘SQL_DTC_TRANSITION_COST’ undeclared here (not in a function)
odbc.c:2709: error: ‘SQL_DTC_ENLIST_EXPENSIVE’ undeclared here (not in a function)
odbc.c:2709: error: initializer element is not constant
odbc.c:2709: error: (near initialization for ‘get_info_bitmap[201].bits’)
odbc.c:2710: error: ‘SQL_DTC_UNENLIST_EXPENSIVE’ undeclared here (not in a function)
odbc.c:2710: error: initializer element is not constant
odbc.c:2710: error: (near initialization for ‘get_info_bitmap[202].bits’)
odbc.c:7993: error: ‘SQL_CP_OFF’ undeclared here (not in a function)
odbc.c:7993: error: initializer element is not constant
odbc.c:7993: error: (near initialization for ‘o_const[44].value’)
odbc.c:7994: error: ‘SQL_CP_ONE_PER_DRIVER’ undeclared here (not in a function)
odbc.c:7994: error: initializer element is not constant
odbc.c:7994: error: (near initialization for ‘o_const[45].value’)
odbc.c:7995: error: ‘SQL_CP_ONE_PER_HENV’ undeclared here (not in a function)
odbc.c:7995: error: initializer element is not constant
odbc.c:7995: error: (near initialization for ‘o_const[46].value’)
odbc.c:7996: error: ‘SQL_CP_DEFAULT’ undeclared here (not in a function)
odbc.c:7996: error: initializer element is not constant
odbc.c:7996: error: (near initialization for ‘o_const[47].value’)
make: *** [odbc.o] Error 1
make failed, exit code 2
Gem files will remain installed in /usr/local/rvm/gems/ruby-2.1.1/gems/ruby-odbc-0.99995 for inspection.
Results logged to /usr/local/rvm/gems/ruby-2.1.1/extensions/x86_64-linux/2.1.0/ruby-odbc-0.99995/gem_make.out
you might want to check out Abe's taken on this one... guess he was
using the JDBC approach instead, and yes please skip the dinosaurs intro
to avoid starting a fire again :)
https://blog.abevoelker.com/final-ode-to-openedge-abl-part-1-a-ruby-adapter-is-born/
[collapse]On 04/08/2014 03:05 AM, etjgalvez wrote:
>[collapse] From: etjgalvez
> Post: Queries from Ruby via ODBC
> Posted in: OpenEdge Development
> Link: http://community.progress.com/technicalusers/f/19/t/9394.aspx
>
> I am trying to query a Progress OpenEdge Database from a ruby application.
> I am unable to get ruby-odbc to compile against the Progress ODBC driver include files.
> PerlsDBD::ODBC compiled just fine and I can query from perl.
> Any suggestions?
> I've tried both DataDirect Connect64 drivers and the Progress OpenEdge SQL Client Access drivers.
> I get the same error with both libraries.
> 47501odbc:~ # gem install ruby-odbc -- --with-odbc-dir=/usr/dlc/odbc
> Building native extensions with: '--with-odbc-dir=/usr/dlc/odbc'
> This could take a while...
> /usr/local/rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/rubygems/ext/builder.rb:73: warning: Insecure world writable dir /usr/dlc in PATH, mode 040777
> ERROR:Error installing ruby-odbc:
> ERROR: Failed to build gem native extension.
>
> /usr/local/rvm/rubies/ruby-2.1.1/bin/ruby extconf.rb --with-odbc-dir=/usr/dlc/odbc
> checking for version.h... no
> checking for sql.h... yes
> checking for sqlext.h... yes
> checking for SQLTCHAR in sqltypes.h... no
> checking for SQLLEN in sqltypes.h... no
> checking for SQLULEN in sqltypes.h... no
> checking for odbcinst.h... yes
> checking for SQLAllocConnect() in -lodbc... yes
> checking for SQLConfigDataSource() in -lodbcinst... no
> checking for SQLConfigDataSource() in -liodbcinst... no
> checking for SQLInstallerError() in odbcinst.h... yes
> checking for SQLBIGINT in sqltypes.h with -DHAVE_LONG_LONG... no
> creating Makefile
>
> make "DESTDIR=" clean
>
> make "DESTDIR="
> compiling init.c
> compiling odbc.c
> odbc.c:47: error: redefinition of typedef ‘SQLTCHAR’
> /usr/dlc/odbc/include/sqltypes.h:329: error: previous declaration of ‘SQLTCHAR’ was here
> odbc.c:2404: error: ‘SQL_DTC_TRANSITION_COST’ undeclared here (not in a function)
> odbc.c:2709: error: ‘SQL_DTC_ENLIST_EXPENSIVE’ undeclared here (not in a function)
> odbc.c:2709: error: initializer element is not constant
> odbc.c:2709: error: (near initialization for ‘get_info_bitmap[201].bits’)
> odbc.c:2710: error: ‘SQL_DTC_UNENLIST_EXPENSIVE’ undeclared here (not in a function)
> odbc.c:2710: error: initializer element is not constant
> odbc.c:2710: error: (near initialization for ‘get_info_bitmap[202].bits’)
> odbc.c:7993: error: ‘SQL_CP_OFF’ undeclared here (not in a function)
> odbc.c:7993: error: initializer element is not constant
> odbc.c:7993: error: (near initialization for ‘o_const[44].value’)
> odbc.c:7994: error: ‘SQL_CP_ONE_PER_DRIVER’ undeclared here (not in a function)
> odbc.c:7994: error: initializer element is not constant
> odbc.c:7994: error: (near initialization for ‘o_const[45].value’)
> odbc.c:7995: error: ‘SQL_CP_ONE_PER_HENV’ undeclared here (not in a function)
> odbc.c:7995: error: initializer element is not constant
> odbc.c:7995: error: (near initialization for ‘o_const[46].value’)
> odbc.c:7996: error: ‘SQL_CP_DEFAULT’ undeclared here (not in a function)
> odbc.c:7996: error: initializer element is not constant
> odbc.c:7996: error: (near initialization for ‘o_const[47].value’)
> make: *** [odbc.o] Error 1
>
> make failed, exit code 2
>
> Gem files will remain installed in /usr/local/rvm/gems/ruby-2.1.1/gems/ruby-odbc-0.99995 for inspection.
> Results logged to /usr/local/rvm/gems/ruby-2.1.1/extensions/x86_64-linux/2.1.0/ruby-odbc-0.99995/gem_make.out
>
>
> --
> You were sent this email because you opted to receive email notifications when someone created a new thread.
>
> To unsubscribe[collapse] from:
> - ...only this thread, disable notifications at http://community.progress.com/technicalusers/f/19/t/9394.aspx.
> - ...all email notifications from Progress Community, navigate to "Settings", click on the "Email" tab, then under the "Email Configuration" section, set Send Notifications to "No".
>
>
--
m.edu
keep it simple
http://www.ganimede.ro
http://ro.linkedin.com/in/marianedu
medu@ganimede.ro
mobile: +40 740 036 212
skype: marian.edu[/collapse][/collapse][/collapse]
A suggestion... Given that the OpenEdge and DataDirect Drivers are really the same underneath, and that all DataDirect Connect drivers share common components, it might be useful to cross-post this question I the DataDirect Connect forum.
They may have general comments on Ruby/DataDirect Connectivity. =
Thanks. I had seen that. I'd really prefer to use the compiled ODBC driver instead of having to load the JDBC driver into jruby.
I'll cross post over thare. Thanks!