My Application Objective C Reference
Home
Application
SQLite 3
Core Text
PDF
iCloud
Core Motion
SQLite3
libsqlite3.dylibを追加する
  • libsqlite3.dylib
  • ターミナルからSQLiteファイルを作る
  • SQLiteファイルを作る
  • テーブルを作る
  • 値を入力する
  • SQLiteファイルをDocumentsにコピする
  • コピー
  • 基本的な機能
  • SQLiteファイルと接続する
  • 値を書き込む
  • libsqlite3.dylibを追加する。
  • libsqlite3.dylib
  • Xcodeを開いた最初の画面からTargets -> Biild Phasesと選択していく。link Binary with Librariesを開き+ボタンを押してlibsqlite3.dylibを追加します。
    ターミナルからSQLiteファイルを作る。
  • SQLiteファイルを作る
  • ターミナルを開きcd /Users/名前/フォルダ/でSqliteファイルを入れるフォルダーを指定してファイル名.sqlite3と入力して、SQLiteファイルを作ります。
  • テーブルを作る
  • 次にcreate tableで分類1、2を文字列(text)、分類3を整数(integer)としたテーブル名のテーブルを作成します。
    例)create table テーブル名 (分類1 text, 分類2 text, 分類3 integer );
  • 値を入力する
  • 続いてinsert intoでテーブルの分類に値を入力します。例の分類1と2は文字列で分類3は整数となります。
    例)insert into テーブル名 (分類1、分類2、分類3) values ('値1', '値2', '値3');
    SQLiteファイルをDocumentsにコピする
  • コピー
  • NSBundleで作成したSqliteファイルを拾い上げDocumentsフォルダにコピーします。例のdocumentsPathがDocumentsフォルダへのパスです。
    例)
    NSString * sqlitePath = 
     [[[NSBundle mainBundle] resourcePath] 
      stringByAppendingPathComponent:
       @"fileName.sqlite"];
    BOOL success;
     success = [fileManager 
      copyItemAtPath:sqlitePath 
       toPath:documentsPath error:&error];
    
    if (!success){
       
          省略 
      }
    
    基本的な機能
  • SQLiteファイルと接続する
  • アプリの起動と同時にまたはデータベースから検索する時などにsqlite3_openとSQLiteファイルまでのパスで接続します。
    例)
    sqlite3 * connection;
    NSArray * paths = 
     NSSearchPathForDirectoriesInDomains
      (NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *path = [[paths objectAtIndex:0] 
     stringByAppendingPathComponent:
      @"fileName.sqlite"];
     if (sqlite3_open([path UTF8String], 
      &connection) == SQLITE_OK) { 
    
                 省略 
     }
    
  • 値を書き込む
  • 上記で接続したSQLiteファイルのテーブルと分類を指定して、sqlite3_prepare_v2によって、Value1, Value2, Value3を書き込みます。sqlite3_closeで接続を切ります。
    例)
    sqlite3 * database = [self connection]; 
      //SQLiteファイルと接続する。
    sqlite3_stmt * statement = nil; NSString * insertString = [NSString stringWithFormat: @"INSERT OR REPLACE INTO TableName (Category1, Category2, Category3) VALUES ('%@', '%@', '%@');", Value1, Value2, Value3 ]; if( sqlite3_prepare_v2(database, [insertString UTF8String], -1, &statement, NULL ) != SQLITE_OK) { 省略 } int succeeded = sqlite3_step(statement); sqlite3_finalize(statement); if( succeeded != SQLITE_DONE ) { 省略 } sqlite3_close(database);
    Site Map Contact Us
    Copyright 2012 iBeginners All rights reserved.