Forum: Ruby ODBC Database Connectivity

A5735ac216e523d16f3a238fb547ae7e?d=identicon&s=25 Alan (Guest)
on 2006-05-01 22:25
Hi,

I am having such hard time to connect to a ODBC data source. (Windows
XP)

I have C# and ADO.NET background and I am shocked when I see there is so
little database connectivity support for Ruby!

Am I missing something or Ruby is not good for connecting to databases?

Thanks,
Alan
67af909955c40446b8fe238705e6fdf0?d=identicon&s=25 Fernando allen Marques de oliveira (allen74br)
on 2006-05-02 14:23
Alan wrote:
> Hi,
>
> I am having such hard time to connect to a ODBC data source. (Windows
> XP)
>
> I have C# and ADO.NET background and I am shocked when I see there is so
> little database connectivity support for Ruby!
>
> Am I missing something or Ruby is not good for connecting to databases?
>
> Thanks,
> Alan

Hello Alan,

I'm using Ruby DBI module with the ODBC package in windows. The best way
to have it all is to get the ruby one-click installer
(http://rubyforge.org/projects/rubyinstaller/)

Then, all you have to do is (for example):

  require 'DBI'

  # make an ODBC connection
  conn =
DBI.connect('DBI:ODBC:datasource','your_username','your_password')

  # returns a list of the table names from your database
  conn.tables

  # returns an array with the resultset from your query
  rs = conn.select_all('SELECT * FROM TABLE')

You can google around to find more information about ruby's DBI module,
but here goes some links that can help you:

http://www.kitebird.com/articles/ruby-dbi.html
http://ruby-dbi.rubyforge.org/

http://www.connectionstrings.com/
Aedc41af45a2450550d481a7a3109980?d=identicon&s=25 Michael Libby (Guest)
on 2006-05-03 18:58
(Received via mailing list)
On 5/1/06, Alan <nospam@hotmail.com> wrote:
> Hi,
>
> I am having such hard time to connect to a ODBC data source. (Windows
> XP)
>
> I have C# and ADO.NET background and I am shocked when I see there is so
> little database connectivity support for Ruby!

Really? I've never had a problem, using MySQL, MS Access, MS SQL
Server, Oracle, and others...


> Am I missing something or Ruby is not good for connecting to databases?

http://ruby-dbi.rubyforge.org/ is the home page for Ruby DBI, which
provides DB connectivity, ODBC should work for most DBs at the least I
would think (If you are on Windows and can create a DSN for the data
source, that is).

 -Michael
4b174722d1b1a4bbd9672e1ab50c30a9?d=identicon&s=25 Ryan Leavengood (Guest)
on 2006-05-03 18:58
(Received via mailing list)
On 5/1/06, Alan <nospam@hotmail.com> wrote:
> Hi,
>
> I am having such hard time to connect to a ODBC data source. (Windows
> XP)
>
> I have C# and ADO.NET background and I am shocked when I see there is so
> little database connectivity support for Ruby!
>
> Am I missing something or Ruby is not good for connecting to databases?

That is quite laughable actually. I suppose you have not heard of Ruby
on Rails and it's ActiveRecord database framework?

In regards to your question, here is an example (a constructor for a
database dumper) using the Ruby ODBC library
(http://www.ch-werner.de/rubyodbc/), which I believe is installed by
default in the Windows One-Click installer:

	def initialize(sql, datasource = DEFAULT_DS, pw = DEFAULT_PW)
		@sql, @datasource, @pw = sql, datasource, pw
		@output = ''
		ODBC::connect(datasource, 'sa', pw) do |dbc|
			stmt = dbc.run(sql)
			table = /from *(.*) */.match(sql)[1]
			prefix = "INSERT INTO #{table} ("
			cols = []
			stmt.columns do |col|
				prefix << col.name << ', '
				cols << col
			end
			prefix[-2..-1] = ") VALUES "
			stmt.each do |row|
				@output << prefix << '('
				row.each_with_index do |field, i|
					@output << process_field(field, cols[i]) << ', '
				end
				@output[-2..-1] = ")\n"
			end
		end
	end

Ryan
08e4fd192c00c7136ca2ee38105213f7?d=identicon&s=25 Stuart Stegall (Guest)
on 2006-05-03 18:59
(Received via mailing list)
Alan wrote:
> Thanks,
> Alan
>
>
What Database is giving you trouble?  (Currently I have a Ruby (non
Rails) web app that speaks to MSSQL2k5 with out any problems)

The client is currently interested in moving the web app to IIS and if
an when this occurs, I will probably not use ODBC, but instead use ADO.
Fd6bf5e61856ba7f312f74609bfc28e0?d=identicon&s=25 Walter Kruse (ouryperd)
on 2006-07-14 15:09
Hi

I'm having trouble with ruby + db's. I am running mysql for Mantis on
localhost (Windows XP using XAMPP).

I installed mysql-2.7.1-mswin32.gem and cannot connect with
`_get_full_driver' error.

I then created mantis as an ODBC DSN and I get:

C:/ruby/lib/ruby/site_ruby/1.8/DBD/ODBC/ODBC.rb:95:in `connect': S1T00
(1049) [MySQL][ODBC 3.51 Driver]Unknown database ' mantis'
(DBI::DatabaseError)

I tested the connection, so I know it's set up correctly and works.

If you look closely at the last bit of the error, ' mantis', it looks
like there is a space between the first quote and the DSN name. Don't
know if that's significant ?
97d8f20bfa61bbbfc29ffdeb578a2a30?d=identicon&s=25 Tim Haynes (spodzone)
on 2007-01-09 12:34
Walter Kruse wrote:
>
> I'm having trouble with ruby + db's. I am running mysql for Mantis on
> localhost (Windows XP using XAMPP).
>
> I installed mysql-2.7.1-mswin32.gem and cannot connect with
> `_get_full_driver' error.
>
> I then created mantis as an ODBC DSN and I get:
>
> C:/ruby/lib/ruby/site_ruby/1.8/DBD/ODBC/ODBC.rb:95:in `connect': S1T00
> (1049) [MySQL][ODBC 3.51 Driver]Unknown database ' mantis'
> (DBI::DatabaseError)
>
> I tested the connection, so I know it's set up correctly and works.
>
> If you look closely at the last bit of the error, ' mantis', it looks
> like there is a space between the first quote and the DSN name. Don't
> know if that's significant ?

Two things:
First, mysql-2.7.1-mswin32.gem has nothing to do with ODBC. It will
allow you to start from the default config/database.yml which references
mysql directly; by changing the login details and database in this file
you'll get straight through. Configuring ODBC DSNs is orthogonal to
using this gem.

Alternatively, if you want to go via ODBC, there is the ODBC Adapter for
ActiveRecord/Rails, at http://odbc-rails.rubyforge.org/ .
Please log in before posting. Registration is free and takes only a minute.
Existing account

NEW: Do you have a Google/GoogleMail, Yahoo or Facebook account? No registration required!
Log in with Google account | Log in with Yahoo account | Log in with Facebook account
No account? Register here.