2012-02-01 4 views
2

は私がタイプsqlite3の&なた方法OpenDB &のCreateTable & InserDataよう のオブジェクトを含むカスタム作成しdatabseヘッダファイルの&コントローラファイルをファイルの委任で同じデータベース・オブジェクトを使用します。Sqliteをデータベースアプリケーション

イムは今、ちょうどそうiphoneプログラミング初心者、plsは私を助けて

答えて

1

アプリデリゲートのファイルは、グローバルファイルのようなものです、あなただけのアプリデリゲートであなたのカスタム作成されたデータベースのヘッダファイルをインポートして、オブジェクトを作成しますカスタム作成されたデータベースのヘッダファイルの、ファイル名と仮定するとあるdbOperations.h

アプリデリゲートで

それをインポートし、そのOBJECを作成それでは、プロパティを作成し、合成してください。あなたは自分の「appDelegate.h」ファイルをインポートし、ビューでそのオブジェクトを作成する必要がある任意のビューコントローラで

objAppdelegate = [[のUIApplication sharedApplication]デリゲート]のような負荷をしました。

、あなたは

objAppdelegate.objdbOperationsによってdbOperations.hファイルのあなたのすべてのメソッドやメンバーにアクセスすることができます。

あなたがappdelegateに入れたものは、アプリケーション全体、すべてのviewControllerおよびすべてのクラスに共有され共通です。

あなたのcreateDatabaseメソッドはこのようになり、アプリケーションがappDelegateファイルの読み込みメソッドを終了したときにこのメソッドを呼び出す必要があります。

-(void)checkAndCreateDatabase 
{ 
    appDelegate = (SexarobicsAppDelegate *)[[UIApplication sharedApplication]delegate]; 
    NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDir =[documentPaths objectAtIndex:0]; 
    NSString *databasePath = [documentsDir stringByAppendingPathComponent:@"database.sqlite"]; 
    //NSLog(@"%@", databasePath); 

    NSFileManager *fileManager = [NSFileManager defaultManager]; 

    if(![fileManager fileExistsAtPath:databasePath]) 
    { 
     NSString *databasePathFromApp = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"database.sqlite"]; 
     [fileManager copyItemAtPath:databasePathFromApp toPath:databasePath error:nil]; 
    } 

    //Open DB Connection 
    if(sqlite3_open([databasePath UTF8String], &database) != SQLITE_OK) 
     sqlite3_close(database); 
    return; 
} 

このファッションのように、このファッションのようにSQLのクエリを実行すると、@ "database.sqlite"がdbファイル名になります。

-(void)getData 
{ 
    selectStmt = nil; 

    // fire query and perform those related operations 

    // Release the compiled statement from memory 
    sqlite3_finalize(selectStmt); 
    selectStmt = nil; 
} 
+1

あなたのサポートのために@ハドリー。 しかし、私のプロジェクトビルド&実行するが、私は3つの警告& データベースに接続することもできませんでした。 –

+1

Mr. @ Hadley 私が実際に上のプロジェクトでやっていることは、私の次の質問を見てください。 –

+0

おそらく、データベース作成メソッドで開いているデータベースステートメントを書いていないでしょう。任意のDB操作を実行する前にデータベースを開く必要があります(選択クエリの大文字小文字の区別はわかりませんが、選択操作でdbを開くとより良いでしょう)。 – HarshIT

関連する問題