문제

이 매우 간단한 루비 앱에서 SQL Server 2005 설치에 연결하는 데 어려움이 있습니다.

#!/usr/bin/env ruby
require 'rubygems'
require 'sequel'

Sequel.odbc('dev04')['select top 1 * from users'].all

그만큼 dev04 DSN은 내 것을 가리킨다 odbc.ini 파일 항목 :

[dev04]
Driver      = FreeTDS
Description = ODBC connection via FreeTDS
Trace       = 1
Servername  = dev04
Database    = Dev04
UID         = uDev04
PWD         = pwdDev04

FreeTDS odbcinst.ini에 설치 되며이 구성을 가리 킵니다. freetds.conf:

[dev04]
host = hm602.mycompany.com
port = 1433
tds version = 7.0

이것은 작동합니다 :

carlos$ tsql -S dev04 -U uDev04 -P pwdDev04
locale is "en_GB.UTF-8"
locale charset is "UTF-8"
1> exit
carlos$

그리고 이것도 다음과 같습니다.

carlos$ iodbctest "DSN=dev04;UID=uDev04;PWD=pwdDev04"
iODBC Demonstration program
This program shows an interactive SQL processor
Driver Manager: 03.52.0406.1211
Driver: 0.82 (libtdsodbc.so)

SQL>exit 

Have a nice day.
carlos$

루비 스크립트를 실행하면이 오류가 발생합니다.

carlos$ ruby mssql.rb 
/Library/Ruby/Gems/1.8/gems/sequel-3.4.0/lib/sequel/adapters/odbc.rb:37:in `initialize': ODBC::Error 01000 (20002) [FreeTDS][SQL Server]Adaptive Server connection failed (Sequel::DatabaseConnectionError)
    from /Library/Ruby/Gems/1.8/gems/sequel-3.4.0/lib/sequel/adapters/odbc.rb:37:in `connect'
    from /Library/Ruby/Gems/1.8/gems/sequel-3.4.0/lib/sequel/adapters/odbc.rb:37:in `connect'
    from /Library/Ruby/Gems/1.8/gems/sequel-3.4.0/lib/sequel/database.rb:92:in `initialize'
...

TDS 프로토콜 버전 불일치로 인해 '적응 서버 연결 실패'오류가 발생할 수 있음을 이해합니다. 나는 로그를 확인했고 모두 올바른 버전 (7.0)을 사용하는 것 같으므로 왜 이것이 일어날 수 있는지에 대해 완전히 손실됩니다.

어떤 포인터?

도움이 되었습니까?

해결책

나는 속편 관리자입니다. 불행히도, 나는 속편을 사용하여 freetds를 사용하여 MSSQL에 연결하는 개인적인 경험이 없습니다. 나는 다른 사람들이 그것을 성공적으로 사용했다는 것을 알고 있습니다.

오류 메시지는 속편 자체가 아닌 기본 루비/ODBC 라이브러리의 문제를 나타냅니다. Ruby/ODBC를 직접 사용하여 작동 할 수 있다면 속편으로 작업하기가 어렵지 않아야합니다.

더 이상 도와 줄 수 없어서 죄송합니다.

또한 현재 문제와 관련이 없지만 DB_TYPE => 'MSSQL'옵션을 속편에 사용해야합니다.

다른 팁

때로는 무료 비용이 들지 않습니다.

TDS 버전 7.0은 SQL Server 7.x에 적합했으며 많은 경우에 나중에 SQL Server 버전에 연결하지만 이후 버전의 모든 기능이나 기능을 지원하지는 않습니다.

TDS 버전 7.1은 SQL Server 2000 (v8.x)에 맞습니다. 7.2는 SQL Server 2005 (v9.x)에 맞습니다. 7.3은 SQL Server 2008 (v10.x)에 맞습니다. Microsoft의 문서의 혼란으로 인해 일반적으로 TDS 버전이 아닌 SQL Server 버전을 사용하여 Freetds.conf에 지정됩니다. SQL Server 2008은 아직 완전히 지원되지 않았습니다. 그래서 나는 시험 할 것이다

tds version = 7.1
tds version = 7.2
tds version = 8.0
tds version = 9.0

또는 ... 당신은 a를 사용해 볼 수 있습니다 내 고용주에서 이와 같은 상업용 운전자 그것은 이미 헤드 스크래치의 많은 부분을 처리했습니다. 당신이 그 길을 가면, 나는 또한 당신도 Rails ODBC 어댑터에 대한 전체 문서

Obdisclaimer : 나는 OpenLink 소프트웨어에서 일하지만 제품을 사용하기로 선택한 사람의 혜택을 직접 혜택을받지는 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top