複数の値が必要な配列である-(void)insertDataIntoAssemblyAssessment
メソッドを呼び出すと、「データベースはロックされています」というエラーが発生します。ただし、値が 1 つしかない場合、値はデータベースに正常に格納されます。finalAssembIdArr
finalAssembIdArr
どうすればこれを解決できますか?? 私を助けてください。
-(void)insertDataIntoAssemblyAssessment
{
sqlite3_stmt *fstatement;
const char *dbpath = [databasePath UTF8String];
for(int cnt=0; cnt < [finalAssembIdArr count]; cnt++)
{
finalAsmbId2=[finalAssembIdArr objectAtIndex:cnt];
NSLog(@"finalAsmbId2...%@",finalAsmbId2);
NSLog(@"finalAssessmentIdSt2...%@",finalAssessmentIdSt2);
NSLog(@"finalFacIdSt2...%@",finalFacIdSt2);
NSLog(@"finalSpaceIdSt2...%@",finalSpaceIdSt2);
if (sqlite3_open(dbpath, &ipadSites) == SQLITE_OK)
{
NSLog(@"db opened for AssemblyAssessment..");
NSString *insertfSQL = [NSString stringWithFormat:@"INSERT INTO AssemblyAssessment (assessmentid,spaceid,assemblyid,FacilityID) VALUES (\"%@\",\"%@\",\"%@\",\"%@\")",self.finalAssessmentIdSt2,self.finalSpaceIdSt2,self.finalAsmbId2,self.finalFacIdSt2];
NSLog(@"insertfSQL...%@",insertfSQL);
const char *insert_fstmt = [insertfSQL UTF8String];
sqlite3_prepare_v2(ipadSites,insert_fstmt,-1,&fstatement,NULL);
NSLog(@"inserting AssemblyAssessment..");
if (sqlite3_step(fstatement) == SQLITE_DONE)
{
NSLog(@"Add value in AssemblyAssessment...");
}
else
{
NSLog(@"Insert failed: %s", sqlite3_errmsg(ipadSites));
NSLog(@"Failed to add value in AssemblyAssessment...");
}
}
sqlite3_finalize(fstatement);
sqlite3_close(ipadSites);
}
}