SQLite3 使用详解
来源:互联网 发布:tcp c 编程实例 编辑:程序博客网 时间:2024/04/28 23:09
iPhone中支持通过sqlite3来访问iPhone本地的数据库。
具体使用方法如下
1:添加开发包libsqlite3.0.dylib
首先是设置项目文件,在项目中添加iPhone版的sqlite3的数据库的开发包,在项目下的Frameworks点击右键,然后选择libsqlite3.0.dylib文件。
libsqlite3.0.dylib文件地址:
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.2.sdk/usr/lib/libsqlite3.0.dylib
2,代码中的操作:
那么接下来是代码了。
1 首先获取iPhone上sqlite3的数据库文件的地址
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"database_name"];
2 打开iPhone上的sqlite3的数据库文件
sqlite3_open([path UTF8String], &database);
3 准备sql文---sql语句
const char *sql = "SELECT * FROM table_name WHERE pk=? and name=?";
sqlite3_prepare_v2(database, sql, -1, &stmt, NULL);
4 邦定参数
sqlite3_bind_int(stmt, 1, 1);
// 邦定第二个字符串参数
sqlite3_bind_text(stmt, 2, [title UTF8String], -1, SQLITE_TRANSIENT);
5 执行sql文
6 释放sql文资源
7 关闭iPhone上的sqlite3的数据库
sqlite3_close(database);
- (BOOL)openSqlite
{
NSArray *paths1 =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *thePath1 = [paths1 objectAtIndex:0];
NSLog(@"%@",thePath1);
NSArray *paths2 =NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES);
NSString *cachesDirectory2 = [paths2 objectAtIndex:0];
NSLog(@"%@",cachesDirectory2);
NSString *paths = [[NSBundlemainBundle] resourcePath];
NSLog(@"%@",paths);
NSString *xmlFile = [pathsstringByAppendingPathComponent:@"Provin.db"];
if (sqlite3_open([xmlFileUTF8String], &database) !=SQLITE_OK) {
sqlite3_close(database);
database = NULL;
return NO;
}
return YES;
}
- (void)closeSqlite
{
if (database!=nil) {
sqlite3_close(database);
database = NULL;
}
}
-(void)searchPrivince
{
[arrProvinceremoveAllObjects];
NSString* selectSQL1 = [[NSStringalloc] initWithFormat:@"select province,provinceID from province"];
sqlite3_stmt* statement;
if (sqlite3_prepare_v2(database, [selectSQL1UTF8String], -1, &statement,nil) == SQLITE_OK) {
while (sqlite3_step(statement)==SQLITE_ROW) {
char* province = (char*)sqlite3_column_text(statement,0);
char* provinceid = (char*)sqlite3_column_text(statement,1);
NSString* provinceName = [[NSStringalloc] initWithCString:provinceencoding:NSUTF8StringEncoding];
NSString* provinceID = [[NSStringalloc] initWithCString:provinceidencoding:NSUTF8StringEncoding];
provinceData = [[PhysicalBuyProvinceDataalloc]init];
provinceData.strProvinceName = provinceName;
provinceData.strProvinceID = provinceID;
[arrProvinceaddObject:provinceData];
[provinceIDrelease];
[provinceNamerelease];
[provinceDatarelease];
}
}
[selectSQL1release];
sqlite3_finalize(statement);
}
- SQLite3 使用详解
- SQLite3使用详解
- sqlite3 使用详解
- python之sqlite3使用详解
- python之sqlite3使用详解
- python之sqlite3使用详解
- python之sqlite3使用详解
- python之sqlite3使用详解
- python之sqlite3使用详解
- ios数据库--SQLite3使用详解
- python之sqlite3使用详解
- python之sqlite3使用详解
- python之sqlite3使用详解
- python之sqlite3使用详解
- python之sqlite3使用详解
- python之sqlite3使用详解
- sqlite3之sqlite3_busy_handler使用详解
- python之sqlite3使用详解
- 用java实现zip压缩
- 用MyEclipse进行J2ee开发并部署成ear文件
- 如何判断字符串重复出现个数
- 表单提交问题-----全选/全不选
- 域名地址
- SQLite3 使用详解
- ZOJ 狗狗40题
- 开发日常记事,小窍门。
- Reading a MiFare Classic 1K from Android using Nexus S.
- com.mysql.jdbc.exceptions.MySQLSyntaxErrorException:
- iOS常用加密方法(aes、md5、base64)
- 细说windows的异常处理和实现——结构化异常
- java内部类的作用分析
- JexcelApi和POI导入Excel日期识别成数字的解决方案