Я использую MSSQL 2005 с Rails уже довольно давно и решил поднять мои драгоценные камни на один из моих проектов и столкнулся с проблемой.Модернизированный activerecord-sqlserver-адаптер от 2.2.22 до 2.3.8 и теперь получает ошибку ODBC
я переехал из 2.2.22 до 2.3.8 (последний в письменной форме), и вдруг я получил это:
ODBC::Error: S1090 (0) [unixODBC][Driver Manager]Invalid string or buffer length
Я использую соединение DSN с FreeTDS мой database.yml
выглядит следующим образом :
adapter: sqlserver
mode: ODBC
dsn: 'DRIVER=FreeTDS;TDSVER=7.0;SERVER=10.0.0.5;DATABASE=db;Port=1433;UID=user;PWD=pwd;'
Теперь в то же время я вернулся в 2.2.22 и нет устаревания предупреждения и все, кажется, хорошо, но, очевидно, ради того, чтобы быть в курсе, какие-либо идеи, что могло бы изменить в адаптере что может вызвать это?
Мне нужно задаться вопросом, почему вы используете адаптер activerecord-sqlserver, когда вы на самом деле проходите через ODBC? Я бы порекомендовал проверить [эту страницу] (http://odbc-rails.rubyforge.org/), которая проведет вас через то, что происходит с правильной настройкой ODBC, что, в свою очередь, позволит вам сменить Rails приложения от SQL Server до любой другой ODBC-доступной цели, если это желательно. Правильно написанное клиентское приложение ODBC использует примитивы ODBC и escape-запросы в запросах - и * драйвер * адаптирует их к целевому API СУБД. Рельсы не должны заботиться о том, какие СУБД вы бьете. – TallTed