gpt4 book ai didi

objective-c - ios sqlite3_open 第 50 次调用失败

转载 作者:行者123 更新时间:2023-12-03 18:31:17 24 4
gpt4 key购买 nike

我有一个奇怪的问题,我希望解决:

这是我的代码:

-(Shot*) getShot:(int)shot {
NSString *sqlStr = [NSString stringWithFormat:@"SELECT * FROM tbShots where nShot = %d ", shot];
NSArray *searchPaths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *documentFolderPath = [searchPaths objectAtIndex:0];
NSString *dbFilePath = [documentFolderPath stringByAppendingPathComponent:DATABASE_NAME_EXT];

if (dbFilePath == NULL) {
NSLog(@"dbFilePath is NULL");
}

sqlite3 *dbHandle;
if (sqlite3_open([dbFilePath UTF8String], &dbHandle)) {
NSLog(@"sqlite3_open: failed");
}

sqlite3_stmt *preparedStatement;
const char* queryStatement = [sqlStr UTF8String];
sqlite3_prepare_v2(dbHandle, queryStatement, -1, &preparedStatement, NULL);

Shot *s = nil;
NSString * note = @"";
while( sqlite3_step(preparedStatement) == SQLITE_ROW)
{
s = [[[Shot alloc] initWithShot:shot] autorelease];
}

sqlite3_finalize(preparedStatement);
sqlite3_close(dbHandle);
return s;
}

现在似乎工作正常:但我有一个问题:

我多次调用这个函数,当我第 50 次调用它时,sqlite3_open 函数失败(我看到日志错误'sqlite3_open: failed'...

我犯了一些错误?
提前致谢

最佳答案

我遇到了同样的问题 - 要解决它,您必须在应用程序启动时打开数据库,并在用户离开应用程序时关闭数据库。您不应该为每个查询打开和关闭数据库!!!!

关于objective-c - ios sqlite3_open 第 50 次调用失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7408828/

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