Я пытаюсь сделать простой запрос в базе данных, которую я построил, но не работает.
Путь к базе данных выглядит очень странно, я не знаю, правильно ли это. Я добавил базу данных в папку «Ресурс».
Код:
-(void)getInitialDataToDisplay:(NSString *)dbPath {
int result;
SQLiteTestAppDelegate *appDelegate = (SQLiteTestAppDelegate *)[[UIApplication sharedApplication] delegate];
result = sqlite3_open([dbPath UTF8String], &database) ;
if (result == SQLITE_OK) {
const char *query = "select first_name from tbl_student";
sqlite3_stmt *selectstmt;
result = sqlite3_prepare_v2(database, query, -1, &selectstmt, nil);
if(result == SQLITE_OK) {
NSLog(@"Query executed with success!!!!");
}
else {
NSLog(@"Error on execute query! Error = %i",result);
}
}
else {
sqlite3_close(database);
NSLog(@"Error on connect to database! Error = %i",result);
}
}
-(NSString *)getDBPath {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory , NSUserDomainMask, YES);
NSString *documentsDir = [paths objectAtIndex:0];
return [documentsDir stringByAppendingPathComponent:@"FirstDataBase.sqlite"];
}
Выход:
**2010-08-20 08:55:15.810 SQLiteTest[263:207] Begin: connect to database
2010-08-20 08:55:15.843 SQLiteTest[263:207] Database copied with success! Location: /Users/claudio/Library/Application Support/iPhone Simulator/4.0/Applications/358B8748-7A2A-4FD4-943E-31B801279CA1/Documents/FirstDataBase.sqlite
2010-08-20 08:55:15.844 SQLiteTest[263:207] Error on execute query! Error = 1**
Из "sqlite.h"
#define SQLITE_ERROR 1 /* SQL error or missing database */
Это означает, что моя база данных не копируется правильно? Что мне делать?
Другие примечания:
1- Я пытался использовать «запрос» как const char* too
;
2- Я прочитал в «sqlite3.h», что sqlite3_open(...)
никогда не вернет ошибку, если у iPhone не хватает памяти;
3- Я проверял имя моей базы данных много раз, это именно FirstDataBase.sqlite.
Заранее спасибо,
Claudio