примечание: это репост.Этот вопрос был ранее удален по нераскрытым причинам
Хорошо, я пытался заставить это работать как весь день, и я едва отошел от того, когда я начал.
Я пытаюсь подключить Ruby On Rails к SQL Server.Я установил unixODBC, настроил его и FreeTDS и установил почти все гемы Ruby, относящиеся к ODBC, которые существуют.
( Это было обновлено , чтобы показать вывод isql с -v)
[earlz@earlzarch myproject]$ tsql -S AVP1 -U sa -P pass
locale is "en_US.UTF-8"
locale charset is "UTF-8"
1> quit
[earlz@earlzarch ~]$ isql -v AVP1 sa pass
[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified
[ISQL]ERROR: Could not SQLConnect
[earlz@earlzarch myproject]$ rake db:version
(in /home/earlz/myproject)
rake aborted!
IM002 (0) [unixODBC][Driver Manager]Data source name not found, and no default driver specified
(See full trace by running task with --trace)
, так что, как вы можете видеть, tsql работает, но не isql.Какая разница в двух, что ломает его?
/ etc / odbc.ini
[AVP1]
Description = ODBC connection via FreeTDS
Driver = TDS
Servername = my.server
UID = sa
PWD = pass
port = 1232
Database = mydatabase
/ etc / odbcinst.ini
[TDS]
Description = v0.6 with protocol v7.0
Driver = /usr/lib/libtdsodbc.so
Setup = /usr/lib/libtdsS.so
CPTimeout =
CPReuse =
FileUsage = 1
(и да, я убедился, что .so
файлы существуют)
соответствующая часть в freetds.conf
[AVP1]
host = my.server
port = 1232
tds version = 8.0
и, наконец, мой database.yml
development:
adapter: sqlserver
mode: odbc
dsn: AVP1
username: sa
password: pass
Может кто-нибудь, пожалуйста, помогите мне, прежде чем я потяну все мои волосы выпали?
Я использую 64-разрядную версию Arch Linux, которая полностью обновлена.
Что может вызывать сбой isql.Я пробовал каждое решение, которое я видел до сих пор для этой проблемы, но ни одно из них на самом деле не работает для меня.Должен ли я перекомпилировать FreeTDS или что-то?
Хорошо, я также проверил с помощью strace, что он находит файл конфигурации, как показано в этом отрывке:
open("/etc/odbc.ini", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=159, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc71fe09000
read(3, "[AVP1]\n Description = ODBC "..., 4096) = 159