Forum: Ruby on Rails using isql from rails app

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
anitawa (Guest)
on 2007-05-04 01:59
(Received via mailing list)
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
David R. (Guest)
on 2007-05-04 02:31
(Received via mailing list)
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:
http://www.martinfowler.com/articles/rake.html)

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.
David R. (Guest)
on 2007-05-04 02:41
(Received via mailing list)
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.
This topic is locked and can not be replied to.