Xcode 開発で、アプリ内で使用するsqlite3のDBがないとき(初回起動)、新規に作成する方法をまとめました。既にDBが存在していた場合、作成処理は迂回して処理は行いません。
個人的には、空のDBを用意して使用する方が開発・テストが楽です。
2 | NSArray *dirPaths = NSSearchPathForDirectoriesInDomains ( |
3 | NSDocumentDirectory , NSUserDomainMask , YES ); |
4 | NSString *docsDir = dirPaths[0]; |
6 | _databasePath = [[ NSString alloc] |
7 | initWithString: [docsDir stringByAppendingPathComponent: |
10 | NSFileManager *filemgr = [ NSFileManager defaultManager]; |
12 | if ([filemgr fileExistsAtPath: _databasePath ] == NO ) |
14 | const char *dbpath = [_databasePath UTF8String]; |
16 | if (sqlite3_open(dbpath, &_contactDB) == SQLITE_OK) |
19 | const char *sql_stmt = |
20 | "CREATE TABLE IF NOT EXISTS kanri |
21 | ( id INTEGER PRIMARY KEY AUTOINCREMENT,jan,sdate,come,gazou, |
22 | date,kahi,fil1,fil2,fil3,fil4,fil5) "; |
24 | if (sqlite3_exec(_contactDB, sql_stmt, NULL , NULL , |
25 | &errMsg) != SQLITE_OK) |
29 | sqlite3_close(_contactDB); |
起動後の確認
pathが深いので、探すのが困難でした。Macとネット接続したWindowsマシーンより「came.DB(今回作成DB)」をExplorerで検索しています。
データをsqlツールで確認すると、DB、テーブルが作成されていました。

表記上、先頭文字が大文字になっていますが、小文字でないとエラーになるものもあります。