SqliteBrowser如何判断单元格中的数据是blob?

How does SqliteBrowser determine that the data in a cell is a blob?

sqlitebrowser如何判断单元格内的数据是blob?对于某些数据,它将确定它是一个 blob,但对于其他数据,它会说它不是一个 blob。我的示例是一组数据,其中有 10 个双打作为 blob 写出,但它不称其为 blob。所以我真的很想知道它是如何确定一个细胞是一个斑点还是不是一个斑点?

SQLite C API has two different functions 用于将文本值或 blob 值绑定到 INSERT 语句,因此 写入应用程序确定值的类型。

函数sqlite3_column_type() returns当前行中列值的类型;这是浏览器使用的。

同样的机制也可以直接在 SQL 中使用:

> SELECT typeof('hello'), typeof(x'1256AB');
text|blob

https://github.com/sqlitebrowser/sqlitebrowser/issues/16 可能是更好的答案。看起来,有或曾经有代码来确定要显示的内容:对于示例中所示的短 blob(少于 1024 字节),第二个条件成立:如果有 \0 字符,则数据只是显示为 "BLOB".