2017-02-26 7 views
0

MacXim을 사용하여 OSX에서 dbql을 외부 SQL 서버 인스턴스에 연결하려고했습니다. 지금까지/usr/local/bin/osql을 반환하는 여러 연결 문자열을 반복 해 보았습니다. 잘못된 옵션 - w.dbext OSX에서 SQL Server에 연결 (/ usr/local/bin/osql : 잘못된 옵션 - w)

이것은 내가 이것이 연결 문자열 문제는 아니지만 연결 스택에 osql 또는 다른 것을 포함하는 것으로 생각됩니다. 그러나, 나는 tsql & 터미널에있는 isql (osql 사용)과 DBI를 사용하여 PERL 스크립트에서 결과를 얻을 수있는 서버에 모두 연결할 수 있습니다./usr/local/bin/osql은 내 컴퓨터의 osql에 대한 올바른 경로입니다. 전체 오류의

예 : 나는 시도했다

Connection: T(SQLSRV) H(<hostname>) D(<db name>) U(<user name>) at 13:18 
/usr/local/bin/osql: illegal option -- w 
Syntax: osql -S server -U user -P password 
To change connection parameters: 
:DBPromptForBufferParameters 
Or 
:DBSetOption user|passwd|dsnname|srvname|dbname|host|port|...=<value> 
:DBSetOption user=tiger:passwd=scott 
Last command(rc=1): 
osql -w 10000 -r -b -n -U <username> -P<password> -H <hostname> -d <dbname> -i <temp file path>/dbext.sql 
Last SQL: 
SELECT TOP 5 * FROM <table_name> 
go 

연결 문자열 형식 (의 .vimrc) :

let g:dbext_default_profile_Test0=DBI:user=<username>:passwd=<password>:dsnname=<TDS named DSN>' 

let g:dbext_default_profile_Test1='type=SQLSRV:user=<username>:passwd=<password>:host=<host address>' 

let g:dbext_default_profile_Test2='type=SQLSRV:user=<username>:passwd=<password>:dsnname=<TDS named DSN>:srvname=<boxname>' 

내가 다시 설치 FreeTDS를 해봤 인 unixODBC & DBI. 이것들은 dbext와는 별개로 사용할 때 잘 동작하는 것 같습니다.

무엇이 누락 되었습니까? 정답은 연결의 결과입니다. aux 중 하나의 변경. 제품 (FreeTDS, UnixODBC 등) 또는 dbext (내 현재 설치에 좋은 연결 문자열)를 통해 dbext에서 잘못된 옵션 오류를 해결할 수있는 방법.

저는 몇 시간 동안 벽에 머리를 세게 때려 봤습니다. 미리 감사드립니다.

답변

0

DBI ODBC 기능을 사용하여 문제를 해결할 수있었습니다. 설명서는 성능상의 이유로이 방법을 선호하는 것으로 보입니다.

동일한 문제가있는 다른 사용자는 반환되는 오류 문자열이 컴퓨터의 TDS & Perl의 최신 버전인지 확인하십시오. 필자의 경우, 필요한 Perl 디렉토리에서 필요한 DBI/DBD/ODBC 드라이버를 찾지 못했습니다.

이전 디렉토리를 삭제하여 DBI 측에서 작업 한 후 아래 연결 문자열로 연결할 수있었습니다.

let g:dbext_default_profile_<Profile_Name> = 'type=ODBC:user=<username>:passwd=<passwrd>:dsnname=<freeTDS DSN name>:driver=FreeTDS' 

희망이 있으면 구성을 알아 내는데 지출 한 시간을 절약 할 수 있습니다.