Подключите приложение rails к SQL Server 2005 из Windows - PullRequest
7 голосов
/ 16 апреля 2010

I (к сожалению) необходимо развернуть приложение rails в Windows XP, которое должно подключиться к Microsoft SQL Server 2005 .

В Интернете много хитов для подключения из Linux к SQL Server, но не могу понять, как это сделать из Windows.

В основном я следовал этим шагам:

  • Установка dbi gem
  • Установка activerecord-sql-server-adapter gem

My database.yml теперь выглядит так:

development:
  adapter: sqlserver
  mode: odbc
  dsn: test_dj
  host: HOSTNAME\SQLEXPRESS
  database: test_dj
  username: guest
  password: guest

Но я не могу подключиться. Когда я запускаю rake db: migrate , я получаю

IM002 (0) [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

Я не пользователь Windows, поэтому не очень хорошо понимаю значение элемента dsn или около того. У кого-нибудь есть идеи, как это решить?

Заранее спасибо


Теперь с советами Александра я изменил свой database.yml:

development:
  adapter: sqlserver
  mode: odbc
  dsn: Provider=SQLOLEDB;Data Source=SCADA\SQLEXPRESS;UID=guest;PWD=guest;Initial Catalog=test_dj;Application Name=test

Но теперь rake db: migrate возвращает меня:

S1090 (0) [Microsoft][ODBC Driver Manager] Invalid string or buffer length

Я что-то упустил?

1 Ответ

1 голос
/ 16 апреля 2010

это пример DSN, который подключается к базе данных с использованием учетной записи пользователя Windows (лучше всего, когда корпоративная сеть с регистрацией в домене)

Provider=SQLOLEDB;Data Source=MyServer\MyInstance;Integrated Security=SSPI;Initial Catalog=MyDatabase;Application Name=My Application Name that will show up in the trace

Так что здесь используется поставщик OLEDB для SQL Server. SQLNCLI также может быть использован, еще не пробовал с ODBC. На самом деле этот DSN не совсем протестирован (нужно подождать, пока мой администратор предоставит мне необходимые права), но он был скопирован из рабочего сценария, который использовал SQLNCLI в качестве поставщика. Источником данных является сервер, и если у него есть именованный экземпляр, его необходимо указать, поэтому он может быть либо просто Server, либо Server\Instance. Integrated Security=SSPI говорит, что вы хотите использовать аутентификацию Windows. В противном случае вы указываете имя пользователя и пароль для использования, используя UID=MyUser;PWD=MyPassword. UID, пользователь, имя пользователя, пароль - я думаю, что все эти параметры работают.

В Интернете есть отличный сайт, который предоставляет все виды образцов DSN, просто нигде его не найти. Если я найду его, я дам вам знать.

Если у вас нет какого-либо провайдера в Rails, проверьте, поддерживает ли Rails объектную модель компонентов Windows (COM). И если это произойдет, вы даже можете инициализировать COM-класс ADODB.Connection и работать с ним над ADO.

Ах, вот тот сайт, о котором я говорил: http://www.connectionstrings.com/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...