gpt4 book ai didi

ios - 插入 SQLite 数据库

转载 作者:行者123 更新时间:2023-11-29 02:24:27 24 4
gpt4 key购买 nike

我对 Sqlite 操作非常陌生,到现在为止我只操作 UI + 一些 Web 服务

我面临的问题是,

我正在从终端创建一个表,并通过匹配表名从 Xcode 中插入值。该表由4个字段组成,其中2个属于表,2个是外键。

即使我插入查询,我的应用程序也会在那时卡住。

它不再移动,不允许任何操作。

这是我的问题

-(bool)insertMatchSampleQuest:(QuestionDTO*)questionDTO
{
NSMutableArray* matchQesA=[questionDTO matchQuesA];

NSLog(@"MTQ QuestionsArray :- %@",[matchQesA description]);
NSLog(@"MTQ QuestionsArray count :- %d",[matchQesA count]);

FMDatabase* db=[SqlLiteDAOFactory createConnection];

for(int i=0;i<[matchQesA count];i++)
{
MTQuestionDTO *mTQuestionDTO =[matchQesA objectAtIndex:i];

NSLog(@"value of testsample id is :- %@",questionDTO.testsampledid);
NSLog(@"value of sampletest id is :- %@",questionDTO.sampletestid);
NSLog(@"value of MTQ Question id :- %@",mTQuestionDTO.mtq_question_id);
NSLog(@"value of MTQ Question Text :- %@",mTQuestionDTO.mtq_question_text);

[db executeUpdate:@"insert into matchquestion (testsampledID,sampletestid,mtq_question_id,mtq_question_text) values(?,?,?,?)",questionDTO.testsampledid,questionDTO.sampletestid,mTQuestionDTO.mtq_question_id,mTQuestionDTO.mtq_question_text];

if ([db hadError])
{
NSLog(@"database error");
NSLog(@"Err in inserting %d: %@", [db lastErrorCode], [db lastErrorMessage]);
[db close];

}

}
[db close];
return TRUE;
}

当我 NSlog 值时,它会给我正确的值。此外,当我从终端值触发相同的查询时,值被插入到数据库中。

我将此查询发送到我的数组计数。我有总数组,并想将元素插入表中直到数组计数。

为什么我的应用程序正在卡住,如果它出错,那么它必须进入错误 block ,它不会去那里,所以我很难追踪它。

我犯了什么错误。

提前致谢。

最佳答案

从下面的代码中删除 [db close]; :或中断循环。

   if ([db hadError])
{
NSLog(@"database error");
NSLog(@"Err in inserting %d: %@", [db lastErrorCode], [db lastErrorMessage]);
[db close]; // Remove this line, or break the loop.
break;

}

它的卡住是因为当错误执行时,它会关闭数据库但不会退出循环,这就是为什么在下一次迭代中它尝试执行数据库操作但您已经在上一次迭代中关闭了数据库。

关于ios - 插入 SQLite 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27721254/

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