【问题标题】:tiny_tds error on heroku connecting to SqlServer dbheroku 连接到 SqlServer db 时出现 tiny_tds 错误
【发布时间】:2012-01-02 20:26:08
【问题描述】:

我正在使用 tiny_tds 和 activerecord-sqlserver-adapter gem 连接到远程 sqlserver 数据库。我让它在本地工作,但是当我部署到 heroku 时,出现以下错误。

ActiveRecord::StatementInvalid: TinyTds::Error: Unicode-only collat​​ion 中的 Unicode 数据或 ntext 数据无法发送到使用 DB-Library(如 ISQL)或 ODBC 3.7 或更早版本的客户端。强>

是否需要在 heroku 上进行设置才能使其正常工作?

【问题讨论】:

  • 您是否尝试将 Unicode 字符发送到您的 SQL Server?您是否尝试过执行更友好的编码(例如 ASCII)以查看是否有效?
  • 我只是在做 TableName.first,我得到了那个错误。当我在本地运行它并将我的 database.yml 文件更改为指向同一个数据库时,它工作正常。
  • @Scott:你是如何设法让 tiny_tds 与 Heroku 一起工作的?您在使用 Cedar Stack 吗?非常感谢...
  • Heroku 在 Bamboo 上安装了 FreeTDS 0.82,所以你应该可以让它在那里工作。

标签: sql-server ruby-on-rails-3 heroku


【解决方案1】:

经过数小时的挖掘和反复试验,根本原因来自 ntext(max) 和 nvarchar(max) 列。将列更改为 varchar 后,它就可以工作了。

如果您需要知道区别,那就是 nvarchar 占用的空间是 varchar 的两倍,因为它允许使用非英语 Unicode 字符。如果您要用其他语言存储数据,基本上只需要这个。

【讨论】:

    猜你喜欢
    • 2013-08-31
    • 1970-01-01
    • 2013-11-16
    • 1970-01-01
    • 1970-01-01
    • 2019-03-08
    • 1970-01-01
    • 1970-01-01
    • 2018-10-16
    相关资源
    最近更新 更多