
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的数据库文件的地址
NSArray *paths = NSSearchPathForDirectorIEsInDomains(NSdocumentDirectory,NSUserDomainMask,YES);Nsstring *documentsDirectory = [paths objectAtIndex:0];
Nsstring *path = [documentsDirectory stringByAppendingPathComponent:@"database_name"];
2打开iPhone上的sqlite3的数据库文件
sqlite3 *database;sqlite3_open([path UTF8String],&database);
3 准备sql文---SQL语句
sqlite3_stmt *stmt;const char *sql = " SELECT * FROM table_name WHERE pk=? and name=?";
sqlite3_prepare_v2(database,sql,-1,&stmt,NulL);
4邦定参数
// 邦定第一个int参数sqlite3_bind_int(stmt,1,1);
// 邦定第二个字符串参数
sqlite3_bind_text(stmt,2,[Title UTF8String],sqlITE_TRANSIENT);
5执行sql文
sqlite3_step(stmt);6释放sql文资源
sqlite3_finalize(stmt);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,YES);
Nsstring *cachesDirectory2 = [paths2 objectAtIndex:0];
NSLog(@"%@",cachesDirectory2);
Nsstring *paths = [[NSBundle mainBundle] resourcePath];
NSLog(@"%@",paths);
Nsstring *xmlfile = [paths stringByAppendingPathComponent:@"Provin.db"];
if (sqlite3_open([xmlfile UTF8String],&database) != sqlITE_OK) {
sqlite3_close(database);
database = NulL;
return NO;
}
return YES;
}
- (voID)closesqlite
{
if (database!=nil) {
sqlite3_close(database);
database = NulL;
}
}
-(voID)searchPrivince
{
[arrProvince removeAllObjects];
Nsstring* selectsql1 = [[Nsstring alloc] initWithFormat:@"select province,provinceID from province"];
sqlite3_stmt* statement;
if (sqlite3_prepare_v2(database,[selectsql1 UTF8String],-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 = [[Nsstring alloc] initWithCString:province enCoding:NSUTF8StringEnCoding];
Nsstring* provinceID = [[Nsstring alloc] initWithCString:provinceID enCoding:NSUTF8StringEnCoding];
provinceData = [[PhysicalBuyProvinceData alloc]init];
provinceData.strProvincename = provincename;
provinceData.strProvinceID = provinceID;
[arrProvince addobject:provinceData];
[provinceID release];
[provincename release];
[provinceData release];
}
}
[selectsql1 release];
sqlite3_finalize(statement);
}
总结以上是内存溢出为你收集整理的SQLite3 使用详解全部内容,希望文章能够帮你解决SQLite3 使用详解所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)