IPhone中SQLite3的使用

以下是一些SQLite3的基本操作,主要是写给自己温习,同时也希望能帮到像我一样的新手! 

注意:要在工程中的Frameworks中导入相应的libsqlite3.dylib文件,也许在相应的目录下存在多个以libsqlite3开头的文件,务必选择libsqlite3.dylib,它始终指向最新版的SQLite3库的别名。 

打开数据库:
 

Objective-c代码   收藏代码
  1. NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
  2.   
  3.     NSString *documentsDirectory = [paths objectAtIndex:0];  
  4.   
  5.     NSString *path = [documentsDirectory stringByAppendingPathComponent:@"database.sqlite"];//database.sqlite为自己定义数据库名称  
  6.   
  7.     NSFileManager *fileManager = [NSFileManager defaultManager];  
  8.   
  9.     databasePath_ = path;  
  10.   
  11.     BOOL find = [fileManager fileExistsAtPath:path];  
  12.   
  13.     if (!find) {          
  14.   
  15.         NSString *rePath = getBundleFilePath(@"database", @"sqlite");  
  16.   
  17.         NSData *dataFile = [NSData dataWithContentsOfFile:rePath];  
  18.   
  19.         [dataFile writeToFile:databasePath_ atomically:YES];  
  20.   
  21.     }  
  22.     NSLog(@"Database file have already existed.");  
  23.   
  24.     if(sqlite3_open([path UTF8String], &database_) != SQLITE_OK) {  
  25.   
  26.         sqlite3_close(database_);  
  27.   
  28.         NSLog(@"Error: open database file.");  
  29.     }  


创建数据库:
 

Objective-c代码   收藏代码
  1. NSString *creatSQL = @"CREATE TABLE IF NOT EXISTS FIELDS (ROW INTEGER PRIMARY KEY, FIELD_DATA TEXT);";  
  2.   
  3.     if (sqlite3_exec(database, [creatSQL UTF8String], NULL, NULL, &errorMsg) != SQLITE_OK) {  
  4.   
  5.         sqlite3_close(database);  
  6.   
  7.         NSLog@"Error creating table");  
  8.     }  



对表的操作,以查询为例


Objective-c代码   收藏代码
  1. NSString *query = @"SELECT ROW, FIELD_DATA FROM FIELDS ";  
  2.   
  3. sqlite3_stmt *statement;  
  4.   
  5.     if (sqlite3_prepare_v2(database, [query UTF8String], -1, &statement, nil) != SQLITE_OK) {  
  6.         while (sqlite3_step(statement) == SQLITE_ROW) {  
  7.   
  8.             int row = sqlite3_column_int(statement, 0);//第一列  
  9.   
  10.             char *rowData = (char *)sqlite3_column_text(statement, 1);//第二列  
  11.               
  12.             NSString *fieldValue = [[NSString alloc] initWithUTF8String:rowData];  
  13.               
  14.             [fieldValue release];  
  15.         }  
  16.         sqlite3_finalize(statement);  
  17.     }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用python完成手机商品简易进销存系统程序,要求如下: (1) 手机商品内容应至少包含id号,名称,价格,数量,例如: products = [{"id": 1, "name": "华为Mate50", "price": 6000, "quantity": 100}, (2) 系统具有以下功能:  功能菜单(也是入口程序运行后出现的界面,用户可在此界面进行功能选择)  管理商品(即商品信息的录入删除与修改,先判断欲管理的商品是否在商品数据库,如无则新增该商品,如有则进行商品信息录入删除或修改)  进货(即增加商品数量,先判断欲录入的商品是否在商品数据库,如是则修改数量,如否则询问是否要进入管理商品功能)  销货(即减少商品数量,先判断欲销售的商品是否在商品数据库,如是则根据用户购买需要修改数量,根据情况进入进货功能或产生销售行为)  查货(即查询商品库存情况和销售情况,根据用户输入的商品名称、id号、商品数量进行查询,要求支持商品名称模糊查询,如查询“为”应能检索到“华为Mate50”的商品信息,如有查询结果则询问是否要进入销货系统,根据选择进入销货系统或功能菜单) (3) 实现的功能与过程要符合合理好用的原则,如功能模块之间的跳转应合理,数据输入过程应有数据检验:例如输入购买商品id不在库存商品范围内应报错、输入超过库存数量的购买商品数量、输入明显错误的数量或价格也应报错(如输入负数)等等; (4) 数据应符合准确原则,其变化添减应准确且符合商品进销存管理的逻辑要求; (5) 可合理自行决定在开发过程使用函数、类、对象、第三方库(模块)等开发代码,方便代码的理解与组织部署; (6) 所有数据均要求保存在SQLITE3库,界面可使用字符型界面。 (7) 可选要求:程序界面可使用字符型界面,也可使用类似tkinker的图形界面进行设计,鼓励使用图形界面,使用图形界面的作品将酌情增加不超过8分的附加分。
最新发布
02-06

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值