何时使用SQLITE_TRANSIENT与SQLITE_STATIC?

前端之家收集整理的这篇文章主要介绍了何时使用SQLITE_TRANSIENT与SQLITE_STATIC?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在sqlite3中创建/更新文本列.
当我在创建/更新后检索行时,文本是’?’.
然而,整数值被适当地保持.

我的文本语句如下所示:

const char *sql = "INSERT INTO todo(title,description,priority,status,created,expires,posx,posy,updated)"
                  " VALUES('?','?','?');";
if (sqlite3_prepare_v2(database,sql,-1,&insert_statment,NULL) != sqlITE_OK)
    ...
sqlite3_bind_text(update_statment,5,[[dt stringFromDate:self.updated] UTF8String],sqlITE_TRANSIENT);

我试过sqlITE_TRANSIENT以及sqlITE_STATIC.这两种情况似乎都产生了相同的结果(‘?’).当我们将这些文本值传递给相应的sql语句时,我也验证了这些文本值是有效的.

有任何想法吗?

删除“周围的人物?在你的sql字符串.

sqlite_TRANSIENT告诉sqlite复制你的字符串.当您的字符串(缓冲区)在执行查询之前将会消失时使用此选项.

sqlITE_STATIC告诉sqlite,您承诺,传递给该字符串的指针将有效,直到执行查询为止.当您的缓冲区为um,static或至少具有超过绑定的动态范围时,请使用此方法.

猜你在找的Sqlite相关文章