何时使用SQLITE_TRANSIENT与SQLITE_STATIC?
发布时间:2020-12-12 19:11:22 所属栏目:百科 来源:网络整理
导读:我想在sqlite3中创建/更新文本列. 当我在创建/更新后检索行时,文本是’?’. 然而,整数值被适当地保持. 我的文本语句如下所示: const char *sql = "INSERT INTO todo(title,description,priority,status,created,expires,posx,posy,updated)" " VALUES('?',
我想在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或至少具有超过绑定的动态范围时,请使用此方法. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |