Как подключиться к MS SQLServer с помощью Vim dbext на Mac OSX? - PullRequest
2 голосов
/ 14 апреля 2011

Я использую MacVim и плагин dbext для подключения к Oracle, и он работает хорошо.Теперь мне нужно подключиться к MS SQLServer, но он показал ошибку:

Connection: T(SQLSRV) H(localhost) U(user) at 14:38 /bin/bash: osql: command not found

Кто-нибудь знает, как это сделать?

Ответы [ 3 ]

3 голосов
/ 09 мая 2013

Убедитесь, что у вас есть одна из программ CLI FreeTDS.Я думаю, что tsql более полнофункциональный, чем osql, но тот же подход должен работать с любым из них.

Создайте сценарий оболочки для переноса tsql.Поместите его где-нибудь на своем пути.

Затем добавьте значения конфигурации dbext в ваш .vimrc

" I'm using mssql.sh as the wrapper program. 
" Re-title to whatever you name yours

let g:dbext_default_SQLSRV_bin = "mssql.sh"

" FreeTDS options for osql/tsql are not as feature rich as dbext expects

let g:dbext_default_SQLSRV_cmd_options = ' '

" set 'host' in you profile to the FreeTDS server config, which will be altered in the script

Обёрнутая оболочка, которую я вытащил, ничего особенного, но она протестирована и работает.

#!/bin/bash

# -S is better for FreeTDS then -H
options=$( echo $@ | sed -e 's/-H /-S /' -e 's/ -i.*//' )
# osql/tsql in freetds don't seem to accept a file flag
sql_scratch=$( echo $@ | sed 's|^.* -i||' )
# and execute...
cat $sql_scratch | tsql $options
0 голосов
/ 20 сентября 2017

Вы также можете настроить DBExt для использования более богатого sqsh вместо программы osql в freetds.Пример профиля подключения, который делает это, можно найти в :h dbext с помощью поиска «sqsh».Конечно, у вас уже должен быть sqsh в рабочем состоянии.

0 голосов
/ 02 мая 2011

Osql поставляется с библиотекой FreeTDS, но, вероятно, будет выдана другая ошибка: «Недопустимая опция -w».

Вы можете использовать ODBC вместо SQLSRV в параметре типа в соединении DBEXT.(Другой вариант - использование интерфейса Perl DBI)

Установите iodbc и создайте freetds с опцией --with-iodbc.

Отредактируйте файл odbc.ini, вы можете найти его с помощью iodbc-config --iodbcini или найти имя odbc.ini / |grep odbc.ini.

Мой рабочий odbc.ini (пожалуйста, позаботьтесь об именах файлов, находящихся на коробке freebsd):

[MYDNSNAME]
Driver          = /usr/local/lib/libtdsodbc.so
Description     = Sample OpenLink MT DSN
Server          = 192.168.100.4
Port            = 50436
TDS_Version     = 8.0
Database        = initial_db
ServerOptions   = 
ConnectOptions  = 
Options         = 
ReadOnly        = no

И мое соединение dbext на .vimrc:

let g:dbext_default_profile_CONN = 'type=ODBC:dsnname=MYDSNNAME:user=domain\user:passwd=pass:dbname=initial_db'
...