0

Mac OSX用のSQLite Studioがあり、そこにスキーマを作成します。MySQLではDBFork Managerをケースツールとして使用してスキーマを作成し、sqlファイルをエクスポートしてからMySQLサーバーにインポートします。iOSでも同じことをしたいですSQLite を使用したアプリ。

つまり、SQLite スキーマを作成し、*.sql ファイルからアプリにインポートする必要があります。SQL 文字列を使用してコード例を示します...助けていただければ幸いです!

- (void)viewDidLoad {
NSString *docsDir;
NSArray *dirPaths;

// Get the documents directory
dirPaths = NSSearchPathForDirectoriesInDomains(
                                               NSDocumentDirectory, NSUserDomainMask, YES);

docsDir = dirPaths[0];

// Build the path to the database file
_databasePath = [[NSString alloc]
                 initWithString: [docsDir stringByAppendingPathComponent:
                                  @"contacts.db"]];

NSFileManager *filemgr = [NSFileManager defaultManager];

if ([filemgr fileExistsAtPath: _databasePath ] == NO)
{
    const char *dbpath = [_databasePath UTF8String];

    if (sqlite3_open(dbpath, &_contactDB) == SQLITE_OK)
    {
        char *errMsg;
        const char *sql_stmt =
        "CREATE TABLE IF NOT EXISTS CONTACTS (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT, ADDRESS TEXT, PHONE TEXT)";

        if (sqlite3_exec(_contactDB, sql_stmt, NULL, NULL, &errMsg) != SQLITE_OK)
        {
            _status.text = @"Failed to create table";
        }
        sqlite3_close(_contactDB);
    } else {
        _status.text = @"Failed to open/create database";
    }
}
[super viewDidLoad];

}

4

1 に答える 1

2

SQLite にデータベース ファイルがあり、それを iPhone にインストールして使用したいと考えています。プログラムでコンパイルすると、ファイルバンドルになります。ただし、これは読み取り専用なので、データベースを変更したい場合は、iPhone のドキュメント ディレクトリ (または別のより適切なディレクトリ) にコピーする必要があります。このstackoverflowの質問に対する答えをチェックしてください:

iPhone上のSQLite

于 2013-01-17T19:02:43.883 に答える