Iphone Sqlite 数据库的四大操作

首先引用libsqlite3.0.dylib库到Frameworks中,然后 加入#import <sqlite3.h>,就可以进行以下操作了!

实现

 

[c-sharp]  view plain copy
  1. #define insertGroup @"INSERT INTO tbl_Group (GroupName) VALUES ('%@')"  
  2. #define deleteGroup @"DELETE from tbl_Group  WHERE  tbl_Group.GroupID=%d"  
  3. #define updateGroupName @"UPDATE tbl_Group   SET GroupName = '%@'  WHERE GroupID = %d"  
  4. #define selectGroup @"SELECT tbl_Group.GroupID, GroupName , count(tbl_GroupContact.GroupID) as GroupNumber FROM  tbl_Group LEFT JOIN tbl_GroupContact on tbl_Group.GroupID = tbl_GroupContact.GroupID Group By GroupName,tbl_Group.GroupID Order BY tbl_Group.GroupID DESC"  
  5. @implementation SqliteOperation  
  6. - (id)disconnect {  
  7.     sqlite3_close(database);  
  8.     return nil;  
  9. }  
  10. -(id) init  
  11. {  
  12.     if((self = [super init]))  
  13.     {         
  14.         NSError **error;  
  15.         NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
  16.         NSString *documentsDirectory = [paths objectAtIndex:0];  
  17.         NSString *dbPath = [documentsDirectory stringByAppendingPathComponent:@"/MultiMeeting.db"];  
  18.         NSFileManager *fileManager = [NSFileManager defaultManager];  
  19.         if(![fileManager fileExistsAtPath:dbPath])  
  20.         {  
  21.             // Copy the database from the package to the users filesystem  
  22.             [fileManager copyItemAtPath:pathDataBasePath toPath:dbPath error:error];  
  23.         }  
  24.         const char *dbPathChar = [dbPath UTF8String];  
  25.         if(sqlite3_open(dbPathChar,&database) == SQLITE_OK)  
  26.         {  
  27.             return self;  
  28.         }  
  29.         else  
  30.         {  
  31.             [self disconnect];  
  32.             return nil;  
  33.         }  
  34.     }  
  35.     return nil;  
  36. }  
  37. - (BOOL) NoneQueryWithSqlString:(NSString*) sqlString  
  38. {     
  39.     const char *noneQuerySqlChar = [sqlString UTF8String];  
  40.     sqlite3_stmt *noneQueryStatement;  
  41.     if(sqlite3_prepare_v2(database,noneQuerySqlChar,-1,&noneQueryStatement,NULL) == SQLITE_OK)  
  42.     {  
  43.         int success = sqlite3_step(noneQueryStatement);  
  44.         if (success == SQLITE_DONE) {  
  45.             sqlite3_finalize(noneQueryStatement);  
  46.             return YES;  
  47.         }  
  48.         sqlite3_reset(noneQueryStatement);  
  49.     }  
  50.     sqlite3_finalize(noneQueryStatement);  
  51.     return NO;  
  52. }  
  53. //添加组  
  54. -(BOOL) InsertGroup:(EntityGroup*)group  
  55. {  
  56.     NSString *insertString = [NSString stringWithFormat:insertGroup,group.GroupName];  
  57.     BOOL result = [self NoneQueryWithSqlString:insertString];  
  58.     return result;  
  59. }  
  60. -(BOOL) DeleteGroup:(NSInteger) groupID  
  61. {  
  62.     NSString *sqlStringForGroup = [NSString stringWithFormat:deleteGroup,groupID];  
  63.  return [self NoneQueryWithSqlString:sqlStringForGroup];  
  64. }  
  65. - (BOOL) ModifyGroupName:(EntityGroup*)group  
  66. {  
  67.     NSString *sqlString = [NSString stringWithFormat:updateGroupName,group.GroupName,group.GroupID];  
  68.     return [self NoneQueryWithSqlString:sqlString];  
  69. }  
  70. //查询群组信息  
  71. -(NSArray*) SelectGroup  
  72. {  
  73.     sqlite3_stmt *statement;  
  74.     NSMutableArray *GroupArray = nil;  
  75.     NSString *sql = selectGroup;  
  76.     const char *sql_char = [sql UTF8String];  
  77.       
  78.     if (database != nil) {  
  79.         if (sqlite3_prepare_v2(database, sql_char, -1, &statement, NULL) == SQLITE_OK)  
  80.         {  
  81.             while (sqlite3_step(statement) == SQLITE_ROW) {  
  82.                 if(GroupArray == nil)  
  83.                     GroupArray = [[NSMutableArray alloc] init];  
  84.                 EntityGroup *group = [[EntityGroup alloc] init];  
  85.                 group.GroupID = sqlite3_column_int(statement, 0);  
  86.                 group.GroupName = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, 1)];      
  87.                 group.GroupNmuber = sqlite3_column_int(statement, 2);  
  88.                 [GroupArray addObject:group];  
  89.                 [group release];  
  90.             }  
  91.             if (GroupArray !=nil) {  
  92.                 sqlite3_finalize(statement);  
  93.                 [GroupArray autorelease];  
  94.                 return GroupArray;   
  95.             }  
  96.         }  
  97.         sqlite3_finalize(statement);  
  98.         return nil;  
  99.     }  
  100.     else {  
  101.         [self disconnect];  
  102.     }  
  103.     return nil;   
  104. }  
  105. - (void) dealloc  
  106. {  
  107.     [self disconnect];  
  108.     [super dealloc];  
  109. }  
  110. @end  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值