индекс привязки или столбца вне диапазона - PullRequest
0 голосов
/ 15 апреля 2011

Я хочу удалить все данные в существующей базе данных 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], &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, &delete_statement, NULL);

    sqlite3_bind_int(delete_statement, 1, 1);

    printf( "error or not an error? :  %s\n", sqlite3_errmsg(database) ); 

    sqlite3_reset(delete_statement);

    sqlite3_finalize(delete_statement);

}
sqlite3_close(database);    

В этой БД более одного поля и более одной таблицы. Пожалуйста, дайте мне знать, в чем ошибка. Заранее спасибо.

1 Ответ

2 голосов
/ 15 апреля 2011

Прокомментируйте эту строку sqlite3_bind_int(delete_statement, 1, 1); и запустите код, потому что в запросе у вас нет параметра, который будет нуждаться в привязке. Кроме того, я бродить, существует ли этот запрос? Вы можете сделать это удалить из базы данных напрямую? Я не думаю, что есть какой-либо запрос, который принимает имя базы данных! (Надеюсь, AppDB - это имя таблицы).

[Для простоты понимания мы должны следовать стандартным соглашениям об именах.]

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...