`
wonderzl
  • 浏览: 78895 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

iPhone中的Sqlite3数据库操作

阅读更多
     可将数据库操作写入一个类,这样用起来也很方便。例如:
#import <Foundation/Foundation.h>
#import <sqlite3.h>

@interface DBOperation : NSObject {
	sqlite3 *readableDB;
	sqlite3 *writableDB;
	NSString *dbName;
}

- (void)openDB;
- (void)closeDB;

@end


@implementation DBOperation

static sqlite3_stmt *insert_statement=nil;
static sqlite3_stmt *select_statement=nil;
static sqlite3_stmt *delete_statement=nil;




-(void) openDB {//打开DB
	NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
	NSString *writableDBPath= [documentsDirectory stringByAppendingPathComponent:dbName];
	if (sqlite3_open([writableDBPath UTF8String], &writableDB) != SQLITE_OK) {
        sqlite3_close(writableDB);
        NSAssert1(0, @"Failed to open database with message '%s'.", sqlite3_errmsg(writableDB));
    }
	else
	{
		NSLog(@"DB Opened");
	}
}

- (void)closeDB {//关闭DB
	if (select_statement)
		sqlite3_finalize(select_statement);
	
	if (insert_statement)
		sqlite3_finalize(insert_statement);
	
	if (delete_statement)
		sqlite3_finalize(delete_statement);
	
	if(sqlite3_close(writableDB) != SQLITE_OK)
		NSAssert1(0, @"Error while closing the connection to the writableDB. %s", sqlite3_errmsg(writableDB));	
}

- (void)dealloc
{
	[self closeDB];
	[super dealloc];
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics