2010-04-16 85 views
7

Rails應用程序到SQL Server 2005我(黯然)必須部署在Windows XP上應用程序,它具有連接到的Microsoft SQL Server 2005連接從Windows

在網上衝浪有很多從Linux到SQL Server的連接命中,但無法找到如何從Windows進行連接。

基本上我按照這些步驟:

  • 安裝DBI寶石
  • 安裝的ActiveRecord-SQL服務器適配器寶石

的database.yml現在看起來像這個:

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

但我無法連接它。當我運行耙分貝:遷移我得到

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 

但現在耙分貝:遷移返回我:

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

我是米發佈什麼?

回答

1

這是一個樣本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

所以這個使用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。

啊,這裏是該網站我說的是:http://www.connectionstrings.com/

+0

亞歷山大感謝您的回答。根據你的提示,我修改了我的database.yml,就像在編輯過的文章中一樣,但是現在有「無效的字符串或緩衝區長度」 – 2010-04-16 08:08:33

+0

這看起來像是SQL查詢中的錯誤,而不是連接錯誤。提供錯誤代碼也很有幫助,可能會說很多。 無論如何,我發現這篇文章可能會幫助你: http://tutorials.aspfaq.com/8000xxxxx-errors/why-do-i-get-80040e57/80040e07-errors.html 當然,它取決於什麼規模的SQL查詢自動化以及如何修改它們。另外請記住,MSSQL中的CHAR和VARCHAR的最大長度爲8000. – AlexanderMP 2010-04-16 08:30:34

+0

我遇到與Enrico相同的問題。這是錯誤: ODBC :: Error:S1090(0)[Microsoft] [ODBC驅動程序管理器]無效的字符串或緩衝區長度 這是從我的(非常簡單)模型上執行所有查詢。 – 2010-04-16 08:55:30