2016-06-16 142 views
0

为了运行只读查询,我试图将MS SQL数据库连接到我的Ruby程序。我尝试使用Sequel,Ruby-DBI和TinyTDS无济于事。如何将MS SQL数据库连接到Ruby

这是我的代码与续集连接:

require 'rubygems' 
require 'sequel' 

hostname = 'DB name' 
username = 'username here' 
password = 'password here' 
port = 1433 

connection_instance = Sequel.connect(:host => hostname, :user => username, :password => password, :test => true) 

这是我收到的错误:

C:/Ruby22-x64/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require' 
: LoadError: cannot load such file -- sequel/adapters/ (Sequel::AdapterNotFound) 

     from C:/Ruby22-x64/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require' 
     from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sequel-4.35.0/lib/sequel/database/connecting.rb:98:in `load_adapter' 
     from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sequel-4.35.0/lib/sequel/database/connecting.rb:28:in `adapter_class' 
     from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sequel-4.35.0/lib/sequel/database/connecting.rb:56:in `connect' 
     from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sequel-4.35.0/lib/sequel/core.rb:108:in `connect' 
     from snippet.rb:11:in `<main>' 

回答

0

我用tinytds有:

 @db = Sequel.tinytds(
     :host  => options['dbserver'], 
     :database=> options['db'],  
     :user  => options['dbuser'], 
     :password=> options['dbpwd'], 
     #:timeout => options['timeout'], #for long lasting requests 
    )    

在过去我用过ado,但用ado我遇到了问题(编码错误,超时...)