これは、カテゴリのタイプを持つ 2 番目の tableView にデータを保存するために使用するすべてのコードです。データベースには何も保存されませんが、type_id=4 と判断すると、最初のカテゴリの 4 番目のタイプのみが取得されます:
- (IBAction )SaveData:(id)sender { @try { if (sqlite3_open([[AppDelegate getDBPath] UTF8String], &database)== SQLITE_OK) {
NSString *statement= [NSString stringWithFormat: @"INSERT INTO SavedD (type_meal,Quantity,NumCal) SELECT Type,Quantity,NumberCalories FROM FoodType Where type_id=?" ];
const char *sqlstatement = [statement UTF8String];
if (sqlite3_prepare_v2(database, sqlstatement, -1, &compiledStatement, NULL)== SQLITE_OK)
{
NSLog(@"Data inserted Successfully");
// UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"OK" message:@"Record added" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
// [alert show];
sqlite3_bind_text(compiledStatement, 1, [mealType UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(compiledStatement, 2, [Quantit UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(compiledStatement, 3, [NumofCal UTF8String], -1, SQLITE_TRANSIENT);
NSLog(@"%@",mealType);
// NSLog(@"%@",PersonId);
NSLog(@"%@",Quantit);
NSLog(@"%@",NumofCal);
int iResult = sqlite3_step(compiledStatement);
NSLog(@"%d",iResult);
if (SQLITE_DONE!=iResult )
NSAssert1(0,@"Error when inserting %s",sqlite3_errmsg(database));
}
else {
UIAlertView *AlertOK = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Data not inserted22" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[AlertOK show];
}
sqlite3_finalize(compiledStatement);
}
sqlite3_close(database);
}
@catch (NSException * e) {
NSLog(@"The Record already inserted");
}
}
データが正常に挿入されたことを確認した後..しかし、「mealType」、「Quantit」、および「NumofCal」の値は null です..