gpt4 book ai didi

iphone - sqlite:我可以在循环另一个选择语句时执行选择语句吗

转载 作者:行者123 更新时间:2023-12-03 21:24:16 25 4
gpt4 key购买 nike

在我的 iPhone 应用程序中,我使用 sqlite 表来保存数据。当我在其中一个表上循环执行 select 语句时,我想在某些情况下对同一个表执行另一个 select(和更新)语句。解释为什么我想这样做非常复杂,但我很确定我需要这样做。

问题是,当我循环外部 while 循环时,如果我调用内部 select 语句,它会在运行后终止外部循环,即使 sql 语句中有更多行。那么这是不可能的吗?当我循环遍历同一个表上的 sqlite3_step 结果时,我可以调用 select 语句吗?这是一些伪代码(在 Objective-C 中)来解释我在做什么:

sqlite3_exec(database, "BEGIN", 0, 0, 0); // Begin Transaction

if (init_all_statement == nil)
{
const char *sql = "SELECT id, fullname FROM contact";

if (sqlite3_prepare_v2(database, sql, -1, &init_all_statement, NULL) != SQLITE_OK) {
NSAssert1(0, @"Error Test.m: failed with message '%s'.", sqlite3_errmsg(database));
}
}

while (sqlite3_step(init_all_statement) == SQLITE_ROW)
{
...

if (blah)
{
if (get_duplicate_rows == nil)
{
const char *sql = "SELECT id, fullname FROM contact where fullname = ?";

if (sqlite3_prepare_v2(database, sql, -1, &get_duplicate_rows, NULL) != SQLITE_OK) {
NSAssert1(0, @"Error Test.m: failed with message '%s'.", sqlite3_errmsg(database));
}
}

sqlite3_bind_text(get_duplicate_rows, 1, [contact_fullname UTF8String], -1, SQLITE_TRANSIENT);

while (sqlite3_step(get_duplicate_rows) == SQLITE_ROW)
{
...
}
sqlite3_reset(get_one_row);
}

}

最佳答案

是的,可以,你只需要创建一个新的语句来接收新的结果

sqlite3_stmt *statement;

干杯,
VFN

关于iphone - sqlite:我可以在循环另一个选择语句时执行选择语句吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2055289/

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