sqlite3_bind_int(statement, 1, nil);
How can I add null to my statement above as I make this field automatically incremented.
Here is my code:
if (sqlite3_open([[self dataFilePath] UTF8String], &database)!= SQLITE_OK) { sqlite3_close(database); NSAssert(0, @"Failed to open database"); } NSLog(@"json count ========== %i",[jsonArray count]); for (int i =0 ; i < [jsonArray count]; i++) // while (i < [jsonArray count]) { dictionary = [jsonArray objectAtIndex:i]; char *errorMsg; sqlite3_stmt *statement; if(sqlite3_prepare_v2(database, [insertQuery UTF8String], -1, &statement, nil) == SQLITE_OK) { // NSLog(@"%@",[dictionary valueForKey:@"text"]); sqlite3_bind_null(statement, 1); sqlite3_bind_text(statement, 2, [[dictionary valueForKey:@"date"] UTF8String], -1, NULL); // NSLog(@"date %@",[dictionary valueForKey:@"date"]); sqlite3_bind_text(statement, 3, [[dictionary valueForKey:@"text"] UTF8String], -1, NULL); // NSLog(@"text %@",[dictionary valueForKey:@"text"]); } if (sqlite3_step(statement) != SQLITE_DONE) { NSAssert1(0, @"Error updating table: %s", errorMsg); sqlite3_finalize(statement); } sqlite3_close(database); }
To choose:
sqlite3 *database; if (sqlite3_open([[self dataFilePath] UTF8String], &database) != SQLITE_OK) { sqlite3_close(database); NSAssert(0, @"Failed to open database"); } NSString *query = [self selectQueryInDB]; sqlite3_stmt *statement; if (sqlite3_prepare_v2(database, [query UTF8String], -1, &statement, nil) == SQLITE_OK) { while (sqlite3_step(statement) == SQLITE_ROW) { int row = sqlite3_column_int(statement, 0); if (row == indexPathRow+1) { char *field1 = (char *)sqlite3_column_text(statement, 1); char *field2 = (char *)sqlite3_column_text(statement, 2); NSString *f1 = [[NSString alloc] initWithUTF8String:field1]; NSString *f2 = [[NSString alloc] initWithUTF8String:field2]; NSString *fullData = [NSString stringWithFormat:@"%@ %@",f1,f2]; NSLog(@"%@",fullData); } } sqlite3_finalize(statement); } sqlite3_close(database);
I get SIGABRT in NSString * f1 as *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSPlaceholderString initWithUTF8String:]: NULL cString' Please tell me what I'm doing wrong.