带有 ActiveRecord 和 JDBC 的 SQLServer 二进制数据

Posted

技术标签:

【中文标题】带有 ActiveRecord 和 JDBC 的 SQLServer 二进制数据【英文标题】:SQLServer Binary Data with ActiveRecord and JDBC 【发布时间】:2010-03-30 18:45:21 【问题描述】:

我将activerecord-jdbc-adapter 与ActiveRecord 一起使用,以便能够访问在jRuby 下运行的Rails 应用程序的SQLServer 数据库,但在插入二进制数据时遇到了问题。我得到的异常如下。请注意,我只是对适用于 mysql 的设备中的二进制数据进行了介绍。

ActiveRecord::StatementInvalid: ActiveRecord::ActiveRecordError: Operand type ***: nvarchar is incompatible with image: 
INSERT INTO blobstorage_datachunks ([id], [datafile_id], [chunk_number], [data]) VALUES (369397133, 663419003, 0, N'GIF89a@')

当我创建表时,迁移具有二进制文件,而 SQLServer 使用 Image 代替。我们使用的是 Rails 2.3.5,SQLServer Express 2008。我正在寻找一种使用 ActiveRecord 将二进制数据导入 SQLServer 的方法。

提前感谢您的帮助。

【问题讨论】:

【参考方案1】:

您是否使用 rails-sqlserver-adapter (Github),有一些关于 Native Text/String/Binary Data Type Accessors 的文档。

【讨论】:

谢谢帕特里克,我会试一试。知道它是否可以在 JRuby 下工作?

以上是关于带有 ActiveRecord 和 JDBC 的 SQLServer 二进制数据的主要内容,如果未能解决你的问题,请参考以下文章

可编辑表单 ActiveRecord::RecordNotFound(找不到带有 'id'=undefined 的视频)

带有 UUID 主键的 ActiveRecord 迁移

带有 ActiveRecord 的 rails 3 中的 inverse_of 有啥限制

为啥带有 Mysql2 Gem ActiveRecord::Base.connection.execute(sql) 的 Rails 3 返回 Array 而不是 Hash?

使用 Rails 6 ActiveRecord 进行完全外连接

为啥activerecord乐观锁定每行只工作一次?