2016-06-16 1 views
0

Je tente de connecter une base de données MS SQL à mon programme Ruby afin d'exécuter des requêtes en lecture seule. J'ai essayé d'utiliser Sequel, Ruby-DBI et TinyTDS en vain.Comment connecter la base de données MS SQL à Ruby

Ceci est mon code pour la connexion avec Sequel:

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) 

Voici l'erreur que je reçois:

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>' 

Répondre

0

J'utilise tinytds avec:

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

Dans le passé j'ai utilisé ado, mais avec ado j'ai eu des problèmes (erreurs d'encodage, timeouts ...)