sqlite3_bind_int(statement, 1, nil);
如何在我的上述语句中添加null
,因为我正在使此字段自动增量。SQLITE3插入空值
这里是我的代码:
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);
}
选择:
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);
我在的NSString越来越SIGABRT * F1作为*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSPlaceholderString initWithUTF8String:]: NULL cString'
请告诉我,我做错了。