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];
}

你可能感兴趣的:(C++,c,sqlite,C#)