我想連接一個sqlite3數據庫文件,我叫Login.sql到我寫的iPhone應用程序。儘管我嘗試在包括Documents文件夾,包含xcode項目的文件夾以及該項目的Dervived Data在內的多個位置放入文件,但Xcode似乎並未識別該文件。下面的代碼是在didFinishLaunchingWithOptions中的AppDelegate文件(它使用的是在視圖控制器,但我把它想它會工作Xcode不識別本地數據庫。似乎無法連接到sqlite3數據庫文件
這裏是代碼: 的NSString * DOCSDIR;
NSArray *dirPaths;
// databaseName = [[NSBundle mainBundle] pathForResource:@"DBLogin.sql" ofType:@"db"];
databaseName= @"Login.sql";
// Get the documents directory
dirPaths = NSSearchPathForDirectoriesInDomains(
NSDocumentDirectory, NSUserDomainMask, YES);
docsDir = [dirPaths objectAtIndex:0];
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [documentPaths objectAtIndex:0];
databasePath = [documentsDir stringByAppendingPathComponent:databaseName];
// Build the path to the database file
//databasePath = [[NSString alloc] initWithString: [docsDir stringByAppendingPathComponent: @"DBLogin.sql"]];
NSFileManager *filemgr = [NSFileManager defaultManager];
if ([filemgr fileExistsAtPath: databasePath ] == NO)
{
const char *dbpath = [databasePath UTF8String];
if (sqlite3_open(dbpath, &database) == SQLITE_OK)
{
NSLog(@"DATABASE LOADED");
char *errMsg;
const char *sql_stmt = "CREATE TABLE IF NOT EXISTS User (id varchar(20) PRIMARY KEY , password varchar(20))";
if (sqlite3_exec(database, sql_stmt, NULL, NULL, &errMsg) != SQLITE_OK)
{
status.text = @"Failed to create table";
}
status.text = @"Database Connected";
sqlite3_close(database);
} else {
status.text = @"Failed to open/create database";
}
}
else{
NSLog(@"Connect!");
}
return YES;
的加密數據庫文件的代碼在這裏:Xcode login screen sqlite3 database authentication issue我只是包含它以防這種代碼可能導致問題
基本上每次我在這段代碼中放置一個新的數據庫來查看是否是這個問題我認爲代碼用table創建一個新的臨時sql數據庫文件在表中不存在函數。我不知道該怎麼做,這讓我瘋狂。如果任何人有任何想法如何讓這個代碼來識別我的數據庫,這是值得讚賞的。我已經將數據庫鏈接到了複製束資源構建頁面,但它仍然不'訪問它。
讓我知道你是否需要任何其他信息。
在此先感謝!
在您的代碼上運行縮進。 – 2012-07-03 03:47:53
什麼是縮進? – user1431272
http://www.gnu.org/software/indent/ – 2012-07-03 13:09:10