Using isql from rails app

Hi,

Im new to rails and was wondering if someone can help me.
I have a sybase database on a remote machine.

I want to get information from that db into my rails app using isql.

I can do it from the shell, but how do i do it from a rails app?

thanks in advance

Hmmm, I don’t know anything about isql, but two possibilities stand
out.

If this is a once-in-a-while administrative task, you could create a
rake task (I really like this tutorial for that:
Using the Rake Build Language)

On the other hand, you could create a script in lib and bootstrap
rails to it. The template code I’ve been using to get the rails
environment ready is:

#!/usr/bin/env ruby

Ensure the environment was specified

if ARGV.length != 1
puts “usage: ruby file_name.rb <rails_env>”
exit 1
end

$LOAD_PATH << File.expand_path(File.dirname(FILE))

ENV[‘RAILS_ENV’] = ARGV.first || ENV[‘RAILS_ENV’]

require File.dirname(FILE) + ‘/…/config/boot’
require “#{RAILS_ROOT}/config/environment”

def connect(environment)
conf = YAML::load(File.open(File.dirname(FILE) + ‘/…/config/
database.yml’))
ActiveRecord::Base.establish_connection(conf[environment])
end

Open ActiveRecord connection

connect(ARGV.first)

At this point, you’ve got Rails running. You’ll want to have included
any libraries necessary to use isql. Then, you’re just writing ruby
code between isql and rails.

Good luck.

David R.

Oh, btw, I forgot to mention. If you take the second approach–a lib/
file_name.rb approach to this, you’d just dump that in your crontab
and call it regularly.

If you needed to just access your information at runtime through
rails, you’d put something in environment.rb to tell rails how to
access isql, but then you’d be on your own for actually doing
something with that connection.

Hope this helps,

David R.