0
我試圖從數據庫中選擇數據,我有以下代碼取代: 代碼:SQLite的問題 - 數據庫路徑
// Setup the database object
sqlite3 *database;
// Init the animals Array
list = [[NSMutableArray alloc] init];
NSLog(@"documents path: ", documentsDir);
NSLog(@"database path: ", databasePath);
// Open the database from the users filessytem
if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK)
{
// Setup the SQL Statement and compile it for faster access
const char *sqlStatement = "select route_name from Route";
sqlite3_stmt *compiledStatement;
if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK)
{
// Loop through the results and add them to the feeds array
while(sqlite3_step(compiledStatement) == SQLITE_ROW)
{
// Read the data from the result row
NSString *aName = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 1)];
// Add the animal object to the animals Array
//[list addObject:animal];
[list addObject:aName];
//[animal release];
}
}
// Release the compiled statement from memory
sqlite3_finalize(compiledStatement);
}
sqlite3_close(database);
我得到EXC_BAD_ACCESS錯誤在第一個IF語句。任何任何想法。
另外在NSLOG文檔中,DIR和databasePath是空的。
我在viewDidLoad中下面的代碼:
-(void)viewDidLoad
{
// Setup some globals
databaseName = @"xxxxxxCoreData.sqlite";
// Get the path to the documents directory and append the databaseName
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
// NSString *documentsDir = [documentPaths objectAtIndex:0];
documentsDir = [documentPaths objectAtIndex:0];
databasePath = [documentsDir stringByAppendingPathComponent:databaseName];
發佈'NSLog(「%@」,databasePath)的輸出;' – 2010-07-19 14:20:16
看起來像documentsDir有問題,EXC_BAD_ACCESS錯誤在這裏發生,控制檯中沒有顯示任何內容。 – Stephen 2010-07-19 14:29:31
我稍微修改了代碼,現在我正在獲取數據庫路徑,但它不會通過以下IF語句: if(sqlite3_open([databasePath UTF8String],&database)== SQLITE_OK) – Stephen 2010-07-19 16:12:30