2012-01-02 97 views
0

我正在使用tiny_tds和activerecord-sqlserver-adapter gems連接到遠程sqlserver數據庫。我在本地工作,但是當我部署到heroku時,出現以下錯誤。heroku連接到SqlServer的tiny_tds錯誤db

ActiveRecord :: StatementInvalid:TinyTds ::錯誤:Unicode編碼或ntext數據中的Unicode數據無法發送到使用DB-Library(如ISQL)或ODBC版本3.7或更低版​​本的客戶端。

是否需要安裝heroku才能使其工作?

+0

您是否試圖將Unicode字符發送到您的SQL Server?你有沒有試過強制執行一個友好的編碼,如ASCII,看看是否有效? – 2012-01-02 23:24:31

+0

我只是在做TableName.first,並且我得到了那個錯誤。當我在本地運行它並更改我的database.yml文件以指向相同的數據庫時,它工作正常。 – Scott 2012-01-03 13:15:55

+0

@Scott:你是如何設法使用Heroku的tiny_tds?你在使用Cedar Stack嗎?非常感謝... – 2012-04-10 09:14:32

回答

0

經過數小時的挖掘和反覆試驗,根本原因來自ntext(max)和nvarchar(max)列。一旦列更改爲varchar它的工作。

如果您需要知道區別,那就是nvarchar佔用了varchar空間的兩倍,因爲它允許使用非英文Unicode字符。如果您將以其他語言存儲數據,您基本上只需要這個。