#iphone #sqlite
#iPhone #sqlite
Вопрос:
Я хочу удалить все данные в существующей базе данных sqlite, это код, который я использую:
sqlite3* database;
databaseName = @"AppDB";
NSString *pathToDatabase;
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [documentPaths objectAtIndex:0];
pathToDatabase = [documentsDir stringByAppendingPathComponent:databaseName];
int databaseReturnCode = sqlite3_open([pathToDatabase UTF8String], amp;database);
NSLog(@"databaseReturnCode %d",databaseReturnCode);
if(databaseReturnCode == SQLITE_OK) {
const char *sql = "delete from AppDB";
sqlite3_stmt *delete_statement;
sqlite3_prepare_v2(database, sql, -1, amp;delete_statement, NULL);
sqlite3_bind_int(delete_statement, 1, 1);
printf( "error or not an error? : %sn", sqlite3_errmsg(database) );
sqlite3_reset(delete_statement);
sqlite3_finalize(delete_statement);
}
sqlite3_close(database);
в этой базе данных более одного поля и более одной таблицы. Пожалуйста, дайте мне знать, в чем ошибка. Заранее спасибо.
Ответ №1:
Пожалуйста, прокомментируйте эту sqlite3_bind_int(delete_statement, 1, 1);
строку и запустите код, потому что в запросе у вас нет ни одного параметра, который нуждался бы в привязке. Также я задаюсь вопросом, существует ли этот запрос? можете ли вы сделать подобное удаление из какой-либо базы данных напрямую? Я не думаю, что есть какой-либо запрос, который принимает имя базы данных! (Я надеюсь, AppDB
это имя таблицы).
[Мы должны следовать стандартным соглашениям об именовании для упрощения понимания.]
Спасибо
Комментарии:
1. Спасибо! это работает!! Имя базы данных и первая таблица совпадают, поэтому все записи первой таблицы удаляются . Выполняется этот прямой запрос