2014-12-12 6 views
1

sequel gem을 사용하여 루비에서 Microsoft sql Server 2012 데이터베이스에 연결하려고합니다.ruby에서 sequel jdbc를 사용하여 Microsoft SQL Server 2012에 연결 - com.microsoft.sqlserver.jdbc.SQLServerDriver가로드되지 않음 오류로 실행

이 내가이 프로그램을 실행할 때 나는 오류 얻을

require "sequel: 
require "activerecord-jdbcmssql-adapter" 

@db = Sequel.connect("jdbc:sqlserver://<host>;database=<dbname>;user='<userid>';password='pwd'") 

이 무엇 :

com.microsoft.sqlserver.jdbc.SQLServerDriver not loaded. 

어떻게 드라이버를로드 할을?

감사합니다.

+0

sequel을 activerecord-adapter와 결합합니다. 왜 이것이 효과가있을 것으로 기대합니까? 왜 MSSQL에 연결하기 위해 jdbc가 필요합니까? – knut

+0

jdbc 일 필요는 없습니다.Ruby를 처음 사용하는 분은 친절합니다. Microsoft SQL Server에 연결하고 싶습니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까? – sweetchick

답변

2

는 수동 Sequel.connect를 호출하기 전에 드라이버 jar 파일이 필요합니다 : require 'path/to/sqljdbc4.jar'. 이것은 해당 jdbc-* gem이 jar를 랩핑하지 않는 모든 Sequel jdbc 서브 어댑터에 해당됩니다.

+0

감사합니다. -이 방법이 효과가 있습니다! – sweetchick

1

속편을 활성 녹음 어댑터와 결합합니다.

후계자는 JDBC-adapter입니다. documentation에 언급 된 내용 :

Houses Sequel's JDBC support when running on JRuby.

JRuby로 작업하고 계십니까?


MSSQL-DB를 속편과 연결할 수있는 가능성은 다양합니다. 귀하의 의견에 당신은 JDBC가 필요 없다고 대답했습니다.

내 선호하는 버전 (당신이 속편에 추가로 보석을 설치해야합니다.)

발췌을 내 코드에서 tinytds을 사용하고 있습니다 :

db = Sequel.tinytds(
     :host  => connectiondata[:server], 
     :database=> connectiondata[:database],  
     :user  => connectiondata[:username], #No SSO possible 
     :password=> connectiondata[:password], 
    )  
    db.test_connection #force exception if problem occured 

대안이 ADO,하지만 ADO와 나는 문제가 있었다 과거에.

db = Sequel.connect(
    :adapter=>'ado', 
    :host  =>connectiondata[:server], 
    :database=>connectiondata[:database], 
    #~ :user  => connectiondata[:username], #not needed via SSO 
    #~ :password=>connectiondata[:password], #not needed via SSO 
    #:encoding =>Encoding::UTF_8, #only MySQL 
) 
    db.test_connection #force exception if problem occured 
0

동일한 문제가있어서 jdbcsql 드라이버를 jruby/lib/디렉토리에 다운로드하여 복사하면 문제가 해결된다는 것을 알게되었습니다 (개발자 및 생산 시스템에서 jails와 함께 Rails 4.1을 사용하고 있습니다).

1) gemfile에서 적절한 어댑터를 사용하고 있는지 확인하십시오.

gem 'activerecord-jdbc-adapter' 

2) Microsoft에서 sqljdbc_4.x 드라이버를 다운로드하십시오. 압축을 풀고 dev/machine/production 서버의 ../jruby/lib/ 디렉토리에 복사하십시오.

production: 
    host:  <your.server.address> 
    adapter: jdbc 
    username: <your_username> 
    password: <your_password> 
    database: YourDatabaseName 
    driver: com.microsoft.sqlserver.jdbc.SQLServerDriver 
    url:  jdbc:sqlserver://<your.sever.address>;databaseName=<YourDatabaseName> 
    pool:  5 
    timeout: 5000 

나는 맥 OS X (10.10) dev에 기계와 윈도우 2012 서버 프로덕션 서버에이 설정을 사용

3) 당신의 database.yaml 파일에 다음을 사용합니다.

이렇게하면 jinyby에서 빌드하는 데 번거로울 수있는 tiny_tds를 설치하지 않아도됩니다.