"博士。 sqlite3_bind_text"和"先生。 sqlite3_column_text"神秘

时间:2014-11-24 10:26:11

标签: c++ sqlite

为什么sqlite3_column_text会返回unsigned char *
但是sqlite3_bind_text需要const char *

当你要在数据库中存储一个字节数组时,这可能会很感兴趣。

1 个答案:

答案 0 :(得分:2)

如果你想存储一些字节数组(不是空终止字符串),你应该使用sqlite3_bind_blob而不是sqlite3_bind_text(它想要一个文本,即一个空的 - 终止字符串)。

如果您知道要处理以null结尾的字符串,请使用sqlite3_bind_text,也许使用强制转换为(const char*);在C版本中,不要在运行时更改任何数据(除了浮点或更大或更小的整数类型的数值转换),它们只是改变编译时类型(至少对于常见系统上的指针类型) 。

(在上个世纪,一些奇怪的机器 - 例如Cray1-具有不同的指针类型大小,例如char*指针没有与int*指针相同的位数。 / SUP>