2013-08-26 6 views
4

cygwin에서 RODBC를 사용하여 R에서 SQL Server 데이터베이스에 연결하려고합니다.cygwin에서 MS SQL Server 용 FreeTDS를 사용하도록 iodbc를 설정하십시오.

RODBC 패키지에 필요한 드라이버 관리자에게 제공하는 것으로 알고있는 및 libiodbc-devel을 설치했습니다.

freetds이 설치되어 있으며 MS SQL 서버 데이터베이스에 연결할 수있는 ODBC 드라이버를 제공합니다. tsql 명령 줄 도구를 사용하여 SQL Server에 연결할 수 있는지 확인했습니다.

나는 지금은 R의 RODBC 라이브러리에서 SQL Server 데이터베이스에 연결을 할 수 있도록, (FreeTDS를) 드라이버로 드라이버 관리자 (이 iODBC)을 가리키는 것으로 작업을 이해

User Guide to freeTDS 힌트 그 FreeTDS를가 /usr/local/freetds/lib/libtdsodbc.so에 있어야 제공하는 드라이버와 같은 그 뭔가 idobc이 드라이버를 정의해야 다음

; 
; odbcinst.ini 
; 
[FreeTDS] 
Driver = /usr/local/freetds/lib/libtdsodbc.so 

을하지만 내 시스템에 libtdsodbc.so이없는, Cygwin에서 패키지하지 않는 freetds 나타납니다 ~을 제공하다 t (listing of installed binaries and support files)

freeTDS 드라이버를 사용하여 MS SQL에 연결하려면 어떻게 idobc를 구성 할 수 있습니까?

편집은 동료가 내 시스템에 /lib/cygtdsodbc.dll/usr/lib/cygtdsodbc.dll에 위치해 있습니다. 이것이 cygwin에 해당하는 libtdsodbc.so일까요?

[ODBC Data Sources] 
my_db = FreeTDS 

[my_db] 
Driver = /usr/lib/cygtdsodbc.dll 
Database = db_name 
Host = server_dns_name 
Port = 1433 

iodbctest 러닝 상기 정의 된 드라이버를 사용

[ODBC Drivers] 
FreeTDS = Installed 

[FreeTDS] 
Driver = /usr/lib/cygtdsodbc.dll 

및 데이터 소스 my_db을 형성하는 odbc.ini 파일 :

는 I 드라이버를 정의하기 위해 다음과 같은 내용을 가진 odbcinst.ini 파일을 만들었 확인하려면

$ iodbctest 
iODBC Demonstration program 
This program shows an interactive SQL processor 
Driver Manager: 03.52.0812.0326 

Enter ODBC connect string (? shows list): ? 

DSN        | Driver 
------------------------------------------------------------------------------ 
my_db       | FreeTDS 

Enter ODBC connect string (? shows list): my_db 
1: SQLDriverConnect = [iODBC][Driver Manager]Driver's SQLAllocEnv() failed (0) SQLSTATE=IM004 
1: ODBC_Connect = [iODBC][Driver Manager]Driver's SQLAllocEnv() failed (0) SQLSTATE=IM004 
+0

'/ usr/lib/cygtdsodbc.dll'은'libtdsodbc.so' (Cygwin의 경우'/ usr/lib' =='/ lib')와 동일합니다. 이것은 구성 문제와 같습니다. 팁은 [FreeTDS 사용자 가이드의 제 4 장] (http://www.freetds.org/userguide/prepodbc.htm)을 참조하십시오. – Yaakov

답변

0

iodbctest 프로그램에서 찾을 수 없음을 나타냅니다. my_db; 그건 제대로 구성되지 않았다는 당신의 단서입니다.

특히 FreeTDS 사용자 안내서를 다시 보거나 odbc.ini에서 어떤 속성을 사용할 수 있고 할 수 없는지 살펴보십시오. freetds.conf 파일을 사용하여 서버를 식별 할 것인지 여부에 따라 에 서버 또는 servername 속성이 있어야합니다.