Forum: Ruby on Rails Connecting to MS SQL from Snow Leopard

Posted by TomRossi7 (Guest)
on 2009-09-23 20:01
(Received via mailing list)
Has anyone been able to get Rails talking to Microsoft SQL Server from
OSX Snow Leopard?  In the past with Leopard, I used the instructions
found here: http://wiki.rubyonrails.org/database-support/ms-sql.  But
with Snow Leopard I get the following error when I try to access an
ActiveRecord object:

/usr/local/lib/ruby/gems/1.8/gems/dbd-odbc-0.2.4/lib/dbd/odbc/
statement.rb:41: [BUG] Segmentation fault
ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin10.0.0]

Any help is appreciated!

Thanks,
Tom
Posted by Iljun Kim (iljun)
on 2009-09-24 12:09
If switching to the unixODBC is an option for you, you may try the 
following.

- Install unixODBC.
  Download it from "http://www.unixodbc.org/" and configure it something 
like,
  "./configure --prefix=/usr/local/unixODBC-2.2.14 --enable-gui=no".

- Install freeTDS with
  "./configure --prefix=/usr/local/freetds-0.82 
--with-unixodbc=/usr/local/unixODBC-2.2.14".

- Configure /usr/local/unixOBCD-2.2.14/etc/odbc.init and odbcinst.ini

- Download ruby-odbc-0.9997 from "http://www.ch-werner.de/rubyodbc/",
  create the Makefile with
  "ruby extconf.rb --with-odbc-lib=/usr/local/unixODBC-2.2.14/lib", and 
install

Hope it helps.
--IJ

TomRossi7 wrote:
> Has anyone been able to get Rails talking to Microsoft SQL Server from
> OSX Snow Leopard?  In the past with Leopard, I used the instructions
> found here: http://wiki.rubyonrails.org/database-support/ms-sql.  But
> with Snow Leopard I get the following error when I try to access an
> ActiveRecord object:
> 
> /usr/local/lib/ruby/gems/1.8/gems/dbd-odbc-0.2.4/lib/dbd/odbc/
> statement.rb:41: [BUG] Segmentation fault
> ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin10.0.0]
> 
> Any help is appreciated!
> 
> Thanks,
> Tom
Posted by tomrossi7 (Guest)
on 2009-09-24 15:25
(Received via mailing list)
Have you gotten unixODBC to work on Snow Leopard?

On Sep 24, 6:09 am, Iljun Kim <rails-mailing-l...@andreas-s.net>
Posted by Robert Walker (robert4723)
on 2009-09-24 15:40
TomRossi7 wrote:
> Has anyone been able to get Rails talking to Microsoft SQL Server from
> OSX Snow Leopard?  In the past with Leopard, I used the instructions
> found here: http://wiki.rubyonrails.org/database-support/ms-sql.  But
> with Snow Leopard I get the following error when I try to access an
> ActiveRecord object:
> 
> /usr/local/lib/ruby/gems/1.8/gems/dbd-odbc-0.2.4/lib/dbd/odbc/
> statement.rb:41: [BUG] Segmentation fault
> ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin10.0.0]

I wonder if you seeing a similar issue as with MySQL. Maybe you need to 
force the C extensions for your gems to compile for your specific 
platform using ARCHFLAGS:

Example:
sudo env ARCHFLAGS="-arch x86_64" gem install <gem_name> <options>

Make sure the -arch setting is correct for your platform.
One of [ i386 (32-bit), x86_64(64-bit), ppc, ppc64 ].

This is only a guess as to the cause of your problem, but maybe 
something you might want to look into.
Posted by Iljun Kim (iljun)
on 2009-09-24 16:08
tomrossi7 wrote:
> Have you gotten unixODBC to work on Snow Leopard?
> 

Yes, it worked for me.

--IJ
Posted by tomrossi7 (Guest)
on 2009-09-24 23:02
(Received via mailing list)
Is there a way to use unixODBC without a DSN?

On Sep 24, 10:08 am, Iljun Kim <rails-mailing-l...@andreas-s.net>
Posted by pat.mcnally@brightonusa.com (Guest)
on 2009-09-24 23:24
(Received via mailing list)
I'm having the same problem as Tom. I can connect to the SQL Server
and run a "select *" from iSQL, so I believe that ruby-odbc bindings
are using iODBC instead of unixODBC

% tsql -C
Compile-time settings (established with the "configure" script)
                            Version: freetds v0.82
             freetds.conf directory: /usr/local/Cellar/freetds/0.82/
etc
     MS db-lib source compatibility: yes
        Sybase binary compatibility: no
                      Thread safety: yes
                      iconv library: yes
                        TDS version: 8.0
                              iODBC: no
                           unixodbc: yes

% ruby extconf.rb --with-odbc-dir=/usr/local/lib

   checking for version.h... yes
   checking for sql.h... yes
   checking for sqlext.h... yes
   checking for SQLTCHAR in sqltypes.h... yes
   checking for SQLLEN in sqltypes.h... yes
   checking for SQLULEN in sqltypes.h... yes
   checking for odbcinst.h... yes
   checking for SQLAllocConnect() in -lodbc... no
   checking for SQLAllocConnect() in -liodbc... yes
   checking for SQLConfigDataSource() in -lodbcinst... no
   checking for SQLConfigDataSource() in -liodbcinst... yes
   checking for SQLInstallerError() in odbcinst.h... yes
   creating Makefile


On Sep 24, 5:09 am, Iljun Kim <rails-mailing-l...@andreas-s.net>
Posted by Fuse (Guest)
on 2009-10-04 22:30
(Received via mailing list)
I was having this same problem.

I switched from iODBC to UNIXODBC and this problem went away for me!

Thanks for your help!
Posted by Tom Rossi (Guest)
on 2009-10-06 18:53
(Received via mailing list)
Can you post how you set up unixodbc to resolve the issue?
Posted by Ken Collins (metaskills)
on 2009-10-27 16:32
I would defer to the SQL Server adapter wiki for latest information.
http://wiki.github.com/rails-sqlserver/2000-2005-adapter/platform-installation
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.