Sqlite数据库应用程序

时间:2012-02-01 07:06:55

标签: ios4 sqlite

我想在Delegate文件中使用相同的数据库对象& Custom Created databse头文件的Controller File包含Sqlite3&类型的对象。你的方法 像OpenDB& CreateTable& InserData。

我现在只是iphone编程的初学者,请帮帮我

1 个答案:

答案 0 :(得分:1)

app delegate文件就像一个全局文件,您只需在app delegate中导入自定义创建的数据库头文件,并创建自定义创建的数据库头文件的对象,假设文件名是 dbOperations.h

在app appate

导入它并创建它的对象,然后执行属性,合成等等。

在任何视图控制器中,您只需要导入“appDelegate.h”文件并使其对象在视图中加载如

objAppdelegate = [[UIApplication sharedApplication] delegate];

您可以通过

访问 dbOperations.h 文件的所有方法和成员

objAppdelegate.objdbOperations

你在appdelegate中放置的内容将保持与整个应用程序,所有viewControllers和所有类共享和共享。

你的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;
}