一千萬個為什麽

搜索

從Windows將rails應用程序連接到SQL Server 2005

(遺憾地)必須在Windows XP上部署 rails 應用程序,該應用程序必須連接到 Microsoft SQL Server 2005

在網上沖浪有很多從Linux到SQL Server連接的點擊,但無法從Windows中找到如何做到這一點。

基本上我遵循以下步驟:

  • 安裝 dbi gem
  • 安裝 activerecord-sql-server-adapter gem

我的 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 元素的含義。 有人知道如何解決這個問題嗎?

提前致謝


現在我已經將Alexander.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

我錯過了什麽嗎?

最佳答案

這是一個示例DSN,它使用Windows用戶帳戶連接到數據庫(最適合使用域登錄的公司網絡時)

Provider = SQLOLEDB; Data Source = MyServer \ MyInstance; Integrated Security = SSPI; Initial Catalog = MyDatabase; Application Name =將在跟蹤中顯示的我的應用程序名稱

所以這使用了用於SQL Server的OLEDB提供程序。也可以使用SQLNCLI,沒有嘗試過使用ODBC。實際上這個DSN還沒有經過測試(必須等待我的管理員給我必要的權限),但是它是從一個使用SQLNCLI作為提供者的工作腳本復制的。數據源是服務器,如果它有一個命名實例,則必須指定它,因此它只是 ServerServer \ InstanceIntegrated Security = SSPI 告訴您要使用Windows身份驗證。否則,使用 UID = MyUser; PWD = MyPassword 指定要使用的用戶和密碼。 UID,用戶,用戶名,密碼 - 我認為所有這些參數都有效。

互聯網上有一個很棒的網站提供各種DSN樣本,但在任何地方都找不到。如果我找到了,我會告訴你的。

如果您沒有Rails中的任何提供程序,請檢查Rails是否支持Windows組件對象模型(COM)。如果是這樣,您甚至可以初始化ADODB.Connection COM類,在其上使用ADO。

Ah, here is that site I was talking about: http://www.connectionstrings.com/

轉載註明原文: 從Windows將rails應用程序連接到SQL Server 2005