我已经使用 Sqlite Manager 创建了一个数据库,并将我的数据库导出到我的资源中。我试图直接在我的项目文件夹中重新创建数据库,我有同样的错误。我不明白为什么......我试图在我的终端中打开我的数据库并且无法打开我的数据库,我有:
sqlite> .tables
Error: file is encrypted or is not a database
我对这个链接做了所有的事情,但对我没有 用 如何在 ios 7 中使用 sqlite?
int returnValue = (sqlite3_prepare_v2(databaseOK, [selectSql UTF8String], -1, &statement, NULL));
这条线在我的 returnValue 中给了我 26
-(id) initDatabase{
if (self = [super init]) {
//Nom de la base de données
self.databaseName = @"externalDB.sqlite";
// Obtenir le chemins complet de la base de donées
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [documentPaths objectAtIndex:0];
self.databasePath = [documentsDir stringByAppendingPathComponent:self.databaseName];
NSLog(@"%@",self.databasePath);
}
return self;
}
-(NSArray*) selectALLArticle{
sqlite3 *databaseOK=self.database;
NSMutableArray* articles = [NSMutableArray new];
if(sqlite3_open([self.databasePath UTF8String], &databaseOK) == SQLITE_OK) {
NSString* selectSql =[NSString stringWithFormat:@"SELECT * FROM ART_TABLE"];
sqlite3_stmt* statement = NULL;
int returnValue = (sqlite3_prepare_v2(databaseOK, [selectSql UTF8String], -1, &statement, NULL));
NSLog(@"Database returned error %d: %s", sqlite3_errcode(databaseOK), sqlite3_errmsg(databaseOK));
if(returnValue == SQLITE_OK){
while (sqlite3_step(statement) == SQLITE_ROW) {
Data* article = [Data new];
article.ide = (NSMutableString*)[NSString stringWithUTF8String:(const char*) sqlite3_column_text(statement,0)];
article.title = (NSMutableString*)[NSString stringWithUTF8String:(const char*) sqlite3_column_text(statement, 1)];
article.chapo = (NSMutableString*)[NSString stringWithUTF8String:(const char*) sqlite3_column_text(statement, 2)];
article.link = (NSMutableString*)[NSString stringWithUTF8String:(const char*) sqlite3_column_text(statement, 3)];
article.linkImg = (NSMutableString*)[NSString stringWithUTF8String:(const char*) sqlite3_column_text(statement, 4)];
article.pubDate = (NSMutableString*)[NSString stringWithUTF8String:(const char*) sqlite3_column_text(statement, 5)];
article.creator = (NSMutableString*)[NSString stringWithUTF8String:(const char*) sqlite3_column_text(statement, 6)];
article.description = (NSMutableString*)[NSString stringWithUTF8String:(const char*) sqlite3_column_text(statement, 7)];
[articles addObject:article];
}
sqlite3_finalize(statement);
}
}
sqlite3_close(databaseOK);
return articles;
}
在我的 logcat 中,我有: 数据库返回错误 26:文件已加密或不是数据库
有了这条线:NSLog(@"Database returned error %d: %s", sqlite3_errcode(databaseOK), sqlite3_errmsg(databaseOK));
当我使用 SQLite Manager 创建数据库时,创建了另一个表,他的名字是:sqlite_sequence,那是什么?
感谢提前