MS SQL 2005 Express and MySQL on Windows

The short question: Has anybody successfully connected to both MS SQL
2005 Express and MySQL databases using Ruby on Windows XP? How?

The long description: My company’s point-of-sale system uses MS SQL.
A recent upgrade to the software required an upgrade of the database.
I was using ruby on ubuntu with DBI to synchronize the POS (MSSQL
2000) and site (MySQL) databases. When I upgraded the POS database to
2005 Express, using ODBC didn’t work anymore - that is, until I got a
driver from EasySoft that will cost 499 pounds if I want to use it for
more than 14 days.

My next thought was, “Oh, I’ll put ruby on Windows and use MS’s ODBC
driver to connect.” That worked fine, but now I’m having troubles
getting to a MySQL database using DBI. I can’t seem to load the
module. I get errors about LIBMYSQL.DLL not existing, and if I
install the mysql gem, I get other errors (sorry - I’m not by that
machine now).

I’m using the Windows 1-click installer (186-26). When I try to build
DBI, I get compile errors. I’m also unable to build the mysql-ruby (or
ruby-mysql) package that the DBI resources seem to point to.
Essentially, it looks like I’m having driver errors…or something
like that. I’ll try to give more info tomorrow.

Does anybody have suggestions? I’d really appreciate any help, and
I’ll be happy to respond with more info.

Thanks!

-Kyle

Kyle,
Â
SQL Server 2005 Express may be connected with Ruby on Rails.
Â
thanks,
Deepak

— On Thu, 7/10/08, Kyle [email protected] wrote:

From: Kyle [email protected]
Subject: MS SQL 2005 Express and MySQL on Windows
To: “ruby-talk ML” [email protected]
Date: Thursday, July 10, 2008, 7:50 PM

The short question: Has anybody successfully connected to both MS SQL
2005 Express and MySQL databases using Ruby on Windows XP? How?

The long description: My company’s point-of-sale system uses MS SQL.
A recent upgrade to the software required an upgrade of the database.
I was using ruby on ubuntu with DBI to synchronize the POS (MSSQL
2000) and site (MySQL) databases. When I upgraded the POS database to
2005 Express, using ODBC didn’t work anymore - that is, until I got a
driver from EasySoft that will cost 499 pounds if I want to use it for
more than 14 days.

My next thought was, “Oh, I’ll put ruby on Windows and use MS’s
ODBC
driver to connect.” That worked fine, but now I’m having troubles
getting to a MySQL database using DBI. I can’t seem to load the
module. I get errors about LIBMYSQL.DLL not existing, and if I
install the mysql gem, I get other errors (sorry - I’m not by that
machine now).

I’m using the Windows 1-click installer (186-26). When I try to build
DBI, I get compile errors. I’m also unable to build the mysql-ruby (or
ruby-mysql) package that the DBI resources seem to point to.
Essentially, it looks like I’m having driver errors…or something
like that. I’ll try to give more info tomorrow.

Does anybody have suggestions? I’d really appreciate any help, and
I’ll be happy to respond with more info.

Thanks!

-Kyle

On Fri, Jul 11, 2008 at 8:20 AM, Kyle [email protected] wrote:

Essentially, it looks like I’m having driver errors…or something
like that. I’ll try to give more info tomorrow.

Does anybody have suggestions? I’d really appreciate any help, and
I’ll be happy to respond with more info.

Your mysql problems has nothing to do with your sql server. You don’t
have client libraries for mysql i believe.

Download “mysql essentials” from following page your mysql driver
issues should be gone:

http://dev.mysql.com/downloads/mysql/5.0.html#win32

Update: the 64/32 threw me a bit. I installed the 32-bit MySQL, and
at least now, I’m getting “require ‘mysql’” to return “true”.

Sorry about that. I’ll see how it goes from here and let you know.

-Kyle

False hope. If I fire up irb, require ‘dbi’, and then try to load a
mysql connection, I get the same error:

mysql = DBI.connect(‘dbi:Mysql:…’)
DBI::InterfaceError: Unable to load driver ‘Mysql’

If I “require ‘mysql’”, I get “true”. If I then try to load a mysql
connection, I get this interesting error:

require ‘mysql’
true

mysql = DBI.connect(‘dbi:Mysql:…’)
DBI::InterfaceError: Could not load driver (uninitialized constant
Mysql:Driver)
from C:/Program Files/Ruby/lib/ruby/site_ruby/1.8/dbi.rb:344:in
‘load_driver’
from C:/Program Files/Ruby/lib/ruby/site_ruby/1.8/dbi.rb:227:in
‘_get_full_driver’
from C:/Program Files/Ruby/lib/ruby/site_ruby/1.8/dbi.rb:213:in
‘connect’

Any other thoughts? I’m sorry to bombard the list like this…

-Kyle

Thank you for your tips. I’d rather not install Rails if possible -
I’d have to re-write my scripts to use ActiveRecord, and from what I
hear, it’s not necessarily easy to get Rails to talk to
MSSQL2005Express anyway…but I’ll certainly give it a shot if nothing
else works!

I installed the MySQL Essentials and am getting the following errors:

require ‘mysql’
LoadError: 193: %1 is not a valid Win32 application. = C:/Program
Files/Ruby/lib/ruby/gems/1.8/gems/mysql-2.7.3-mswin32/ext/mysql.so
from C:/Program Files/Ruby/lib/ruby/gems/1.8/gems/mysql-2.7.3-mswin32/
ext/mysql.so
from C:/Program Files/Ruby/lib/ruby/site_ruby/1.8/rubygems/
custom_requirement.rb:32:in ‘require’

mysql = DBI.connect(‘dbi:Mysql:…’)
DBI::InterfaceError: Unable to load driver ‘Mysql’
from C:/Program Files/Ruby/lib/ruby/site_ruby/1.8/dbi.rb:329:in
‘load_driver’
from C:/Program Files/Ruby/lib/ruby/site_ruby/1.8/dbi.rb:227:in
‘_get_full_driver’
from C:/Program Files/Ruby/lib/ruby/site_ruby/1.8/dbi.rb:213:in
‘connect’

I hate to even think about this, but could this be an issue with Win
XP x64? That’s what this machine is running… I also had problems
on a Win32 machine, though, with MySQL already installed. I double-
checked that the MySQL directory was in my PATH, too.

Any other ideas? I hadn’t anticipated it being so difficult to get
Ruby to talk to a MySQL database on Windows.

-Kyle

OK, I missed something very basic and essential. It’s now working. I
needed to copy Mysql.rb from the DBI package to a new C:\Program Files
\Ruby\lib\ruby\site_ruby\1.8\DBD\Mysql folder. I incorrectly assumed
that the DBI package that came with the 1-click installer would
include this DBD. Since I wasn’t able to build DBI per the given
instructions, I didn’t look into it further. My mistake!

-Kyle