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

Posted by TomRossi7 (Guest)
on 23.09.2009 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 24.09.2009 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 24.09.2009 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 24.09.2009 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 24.09.2009 16:08
tomrossi7 wrote:
> Have you gotten unixODBC to work on Snow Leopard?
> 

Yes, it worked for me.

--IJ
Posted by tomrossi7 (Guest)
on 24.09.2009 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 24.09.2009 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 04.10.2009 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 06.10.2009 18:53
(Received via mailing list)
Can you post how you set up unixodbc to resolve the issue?
Posted by Ken Collins (metaskills)
on 27.10.2009 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