【问题标题】:Equivalent of SqLite Blob type in Subsonic?相当于 Subsonic 中的 SqLite Blob 类型?
【发布时间】:2010-12-18 09:34:27
【问题描述】:

在一个 SqLite 表中,我有一个 BLOB 列用于保存图像(实际上是二进制数据)。该表是文档。

奇怪的是,在 Subsonic 的 ActiveRecord 的 Documents 类中,该列的类型显示为没有意义的 STRING。它应该是字节数组。对吧?

我在这里缺少什么?如何在 Subsonic 中映射 SqLite BLOB 列?

【问题讨论】:

    标签: sqlite activerecord subsonic blob


    【解决方案1】:

    不管你信不信,SQLite 没有类型化的列。任何数据都可以存储在任何列中(INTEGER PK 除外),无论该列是如何声明的。每列都有一个“亲和力”,这就是向查询列数据类型的前端报告的内容。在 SQLite 中,BLOB 列的亲和性以 TEXT 形式返回。

    您可以阅读更多关于它的信息here

    【讨论】:

    • 既然 Subsonic 将 BLOB 显示为 STRING 类型,这是否意味着我必须将图像保存为文本数据。在出路时,获取该文本数据并将其转换为字节数组吗?此外,这意味着在 SqLite 中使用 BLOB 类型毫无意义。请改用 STRING 类型。对吗?
    • 不,您应该可以将 BLOB 保存到该列。事实上,如果需要,您可以将 BLOB 保存到“定义”为浮点数的列中。 SQLite 不在乎。这是我所知道的唯一一个这样的数据库(从我发布的链接上的文章来看,他们也只有一个 他们 知道)。我对亚音速一无所知——也许它会感到困惑。但是你绝对可以将你的 BLOB 数据存储在那个明显的 TEXT 列中。
    • 本来可以,但我修改了 SQLite.ttinclude GetSysType 方法以包含 blob 类型。现在 blob 将被 subsonic 视为 byte[]。摘录如下: case "image": case "blob": case "binary": case "tinyint": case "varbinary": sysType="byte[]"; HTH,潘卡伊
    • AJ,您的评论最好的一点是它也与 MySQL 相关。干杯。
    猜你喜欢
    • 2011-07-27
    • 2013-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-25
    • 2023-04-11
    • 2011-01-11
    • 1970-01-01
    相关资源
    最近更新 更多