gpt4 book ai didi

iphone - SQLite数据库-无法看到更新

转载 作者:行者123 更新时间:2023-12-03 19:09:51 27 4
gpt4 key购买 nike

我有一个sqlite数据库,正在为其添加新单词。问题是,仅在重新启动应用程序后,我才能看到它们已添加到表中。在重新启动应用程序之前,“ SELECT”语句不会“看到”新添加的元素。

为什么会发生这种情况?

我正在创建某种字典。这是我添加新项目的方法:

const char *sql_query = "INSERT INTO words(word) VALUES(?)";
if(sqlite3_prepare_v2(database, sql_query, -1, &addWordsStmt, NULL) != SQLITE_OK)
{
return FALSE;
}

sqlite3_bind_text(addWordsStmt, 1, [ word UTF8String], -1, SQLITE_TRANSIENT);

if( sqlite3_step(addWordsStmt) != SQLITE_DONE)
NSAssert1(0, @"Error while inserting data. '%s'", sqlite3_errmsg(database));

sqlite3_reset(addWordsStmt);


sqlite3_finalize(addWordsStmt);


这是我的检索代码:

const char *sql_query = "SELECT word FROM words WHERE id=?";

if(sqlite3_prepare_v2(database, sql_query, -1, &getWordsStmt, NULL) != SQLITE_OK)
{
return;
}

sqlite3_bind_int(getWordsStmt, 1, wordid);

if( sqlite3_step(getWordsStmt) != SQLITE_ROW)
{
NSLog(@"Error while getting data. '%s'", sqlite3_errmsg(database));
sqlite3_reset(getWordsStmt);
return;
}

NSString *word = [NSString stringWithUTF8String:(char *)sqlite3_column_text(getWordsStmt, 0)];

sqlite3_reset(getWordsStmt);

sqlite3_finalize(getWordsStmt);

最佳答案

我的猜测是您正在进行交易。打开和关闭例程期间必须有一些其他调用,这些调用将您的调用包装在事务中,并且未显示在代码片段中。

这就是为什么在应用程序退出之前看不到新单词的原因

关于iphone - SQLite数据库-无法看到更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/667290/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com