精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

IOS應用中關于Sqlite簡單使用

移動開發 iOS
IOS應用中關于Sqlite使用是本文要介紹的內容,sqlite是嵌入式的和輕量級的sql數據庫。sqlite是由c實現的。廣泛用于包括瀏覽器,來看內容。

IOS應用中關于Sqlite使用是本文要介紹的內容,sqlite是嵌入式的和輕量級的sql數據庫sqlite是由c實現的。廣泛用于包括瀏覽器(支持html5的大部分瀏覽器,ie除外)、IOS應用、android應用以及一些便攜需求的小型web應用系統。

使用sqlite前的準備

使用sqlite是很多做ios應用開發中第一次面對c的情況,包括我。因為sqlite是c寫的,objc可以直接使用c代碼。在sqlite前,一般都會使用cocoa touch框架,都是基于objc的。

首先,需要在對應文件的頭文件中加入:

  1. #import "/usr/include/sqlite3.h" 

并在Frameworks中加入所需的庫,否則會報錯:

  1. Undefined symbols:   
  2.   "_sqlite3_open", referenced from: 

加入庫的方法是:

IOS應用中關于Sqlite使用

選擇sqlite庫:

IOS應用中關于Sqlite使用

選擇完的效果:

IOS應用中關于Sqlite使用

然后,應該有個成員變量,比如我的代碼:

  1. @interface DetailViewController : UIViewController <UIPopoverControllerDelegate, UISplitViewControllerDelegate> {   
  2.     UIPopoverController *popoverController;   
  3.     UIToolbar *toolbar;   
  4.     id detailItem;   
  5.     UILabel *detailDescriptionLabel;   
  6.     sqlite3 *database; 

打開數據庫

sqlite數據庫是文件數據庫,是保存在文件系統中的。因此需要知道文件保存到哪里,可參見iOS應用中對文件的操作。比如本文保存到Documents目錄下。代碼:

  1. NSArray *documentsPaths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory   
  2.                                                    , NSUserDomainMask   
  3.                                                    , YES);   
  4. NSString *databaseFilePath=[[documentsPaths objectAtIndex:0] stringByAppendingPathComponent:@"mydb"];   
  5.  
  6. if (sqlite3_open([databaseFilePath UTF8String], &database)==SQLITE_OK) {   
  7.     NSLog(@"open sqlite db ok.");   

通過ssh查看Documents目錄,發現mydb文件已經創建。sqlite的策略是如果有該文件就打開,如果沒有就創建文件,也就是創建數據庫。

這里要注意,使用的是c語法,sqlite3_open傳入的是database的地址。

關閉數據庫

數據庫使用完畢后,要關閉,比如退出應用的時候:

  1. - (void)viewDidUnload {   
  2.     // Release any retained subviews of the main view.   
  3.     // e.g. self.myOutlet = nil;   
  4.    sqlite3_close(database);   
  5.     self.popoverController = nil;   

建表語句

數據庫打開以后,如果沒有表,建表:

  1. char *errorMsg;   
  2. const char *createSql="create table if not exists persons (id integer primary key autoincrement,name text)";   
  3.  
  4. if (sqlite3_exec(database, createSql, NULL, NULL, &errorMsg)==SQLITE_OK) {   
  5.     NSLog(@"create ok.");   

這里要特別注意errorMsg傳的是地址,因為該函數要通過地址引用來寫報錯字符信息。

向表中插入記錄

和建表語句類似:

  1. const char *insertSql="insert into persons (name) values(‘張三’)";   
  2.     if (sqlite3_exec(database, insertSql, NULL, NULL, &errorMsg)==SQLITE_OK) {   
  3.         NSLog(@"insert ok.");   
  4.     } 

錯誤信息的處理

如果在多個地方使用errorMsg,那么每次使用完畢要清空一下字串,比如這樣:

  1. if (sqlite3_exec(database, createSql, NULL, NULL, &errorMsg)==SQLITE_OK) {   
  2.     NSLog(@"create ok.");   
  3. }else {   
  4.     NSLog(@"error: %s",errorMsg);   
  5.     sqlite3_free(errorMsg);   

查詢結果集

結果集的查詢,需要用到statement:

  1. const char *selectSql="select id,name from persons";   
  2. sqlite3_stmt *statement;   
  3. if (sqlite3_prepare_v2(database, selectSql, -1, &statement, nil)==SQLITE_OK) {   
  4.     NSLog(@"select ok.");   
  5. }   
  6.  
  7. while (sqlite3_step(statement)==SQLITE_ROW) {   
  8.     int _id=sqlite3_column_int(statement, 0);   
  9.     char *name=(char *)sqlite3_column_text(statement, 1);   
  10.     NSLog(@"row>>id %i, name %s",_id,name);   
  11. }   
  12.  
  13. sqlite3_finalize(statement); 

不過這里有個問題,看看打印的日志:

IOS應用中關于Sqlite使用

亂碼。因為直接用的char類型來做的。

解決辦法是,用nsstring替代char:

  1. while (sqlite3_step(statement)==SQLITE_ROW) {   
  2.     int _id=sqlite3_column_int(statement, 0);   
  3.     NSString *name=[[NSString alloc] initWithCString:(char *)sqlite3_column_text(statement, 1) encoding:NSUTF8StringEncoding];   
  4.     NSLog(@"row>>id %i, name %@",_id,name);   

char生成nsstring的時候做一次顯式的編碼。問題解決:

IOS應用中關于Sqlite使用

這說明:

寫入數據庫,用char的方式沒有問題,寫入數據庫的編碼是對的;

從庫中取出,可能默認使用ascii解碼,造成顯示亂碼。

小結:IOS應用中關于Sqlite使用的內容介紹完了,希望通過本文的學習能對你有所幫助!

責任編輯:zhaolei 來源: 互聯網
相關推薦

2011-09-06 16:44:47

IOS應用SQLite

2011-08-22 16:26:25

IOS開發Sqlite數據庫

2013-06-14 13:50:28

iOS開發移動開發警告視圖

2011-05-11 10:02:37

iOS

2011-09-02 19:24:20

SqliteIOS應用數據庫

2012-06-04 13:16:39

Ubuntu數據庫

2011-08-30 14:15:34

QTSQLite數據庫

2014-03-12 10:13:00

iOSSEL對象

2013-04-09 16:04:06

iOS開發SQLite知識總結

2013-01-06 09:52:43

SQLite

2011-08-17 14:32:44

iOS開發繪制

2011-08-08 14:07:49

iPhone開發 字體

2013-05-02 13:06:05

C++遇到iOS應用開SQLITE

2011-08-22 16:42:43

SqliteiPad

2011-08-09 13:22:31

iPhoneSqlite數據庫

2013-04-01 10:49:51

iOS開發sqlite數據庫

2012-03-06 10:17:45

iOS SQLite3iOSSQLite3

2012-05-13 13:15:54

IOS

2012-05-14 17:10:50

iOS

2011-12-28 15:11:09

iOS推薦
點贊
收藏

51CTO技術棧公眾號

国产探花一区在线观看| 午夜激情在线播放| 国产a级毛片一区| 91国自产精品中文字幕亚洲| 丁香激情五月少妇| 久久69av| 欧美综合一区二区| youjizz.com在线观看| 国产精品天堂| 国产成人免费视| 国产精品91久久久| 久久久久久久9999| 欧美亚洲国产激情| 精品国产一区二区三区不卡 | 欧美亚洲另类久久综合| 97在线视频人妻无码| 亚洲精品乱码久久久久久蜜桃麻豆| 一区二区亚洲精品国产| 挪威xxxx性hd极品| 9.1麻豆精品| 色综合天天综合色综合av| 精品国产无码在线| 精品av中文字幕在线毛片| 国产精品99久久久久久久女警| 日本久久久久久久久久久| 激情四射综合网| 99精品小视频| 国产一区二区三区精品久久久| 又黄又色的网站| www.久久爱.com| 欧美影院一区二区| 国产青青在线视频| 黄色的视频在线观看| 国产精品国产三级国产aⅴ中文 | 菠萝菠萝蜜在线视频免费观看| 久久久久久日产精品| 国产精品一区二区三区四区五区 | 精品一区二区三区免费观看 | 亚洲国产成人一区二区三区| 久久久人人爽| 天天插天天干天天操| 成熟亚洲日本毛茸茸凸凹| 91人人爽人人爽人人精88v| 中国老头性行为xxxx| 三级影片在线观看欧美日韩一区二区| 性欧美亚洲xxxx乳在线观看| 精品视频久久久久| 你懂的国产精品永久在线| 久久色精品视频| 999精品在线视频| 国产精品成人一区二区不卡| 在线视频国产日韩| 国产熟女一区二区| 欧美色图一区| 色午夜这里只有精品| 色综合99久久久无码国产精品| 亚洲丝袜美腿一区| 亚洲欧美自拍一区| 女人十八毛片嫩草av| 色97色成人| 久久网福利资源网站| www.毛片com| 黑丝一区二区三区| 91精品91久久久久久| 中文字幕亚洲高清| 久久久青草婷婷精品综合日韩| 国产精品91在线观看| 真实的国产乱xxxx在线91| 精品一区二区免费在线观看| 91久久在线播放| 亚洲国产精品久久久久久久| a亚洲天堂av| 欧美xxxx黑人又粗又长精品| 超碰免费在线观看| 国产精品美女www爽爽爽| 精品国产无码在线| 欧美寡妇性猛交xxx免费| 午夜精品免费在线观看| 农村妇女精品一二区| 日本国产一区| 亚洲国产精品va在线| av网在线播放| 欧美日韩网址| 欧美在线激情网| 一级片视频免费| 国产99久久久精品| 欧美日韩一区综合| 成人免费网址| 欧美性极品少妇精品网站| 男女视频在线看| swag国产精品一区二区| 国产亚洲欧美视频| 久久久久亚洲av无码专区| 久久精品导航| 666精品在线| 免费黄网站在线观看| 亚洲同性同志一二三专区| 熟女少妇在线视频播放| 日韩免费在线电影| 日韩av在线最新| 亚洲综合久久av一区二区三区| 亚洲欧洲一区| 国产有码在线一区二区视频| 五月婷婷狠狠干| 亚洲视频在线观看一区| 无码人妻h动漫| 欧美第一在线视频| 国产亚洲精品美女| 欧美一二三区视频| 国产精一品亚洲二区在线视频| 久久久精品国产一区二区三区| 日本中文字幕在线视频| 欧美日韩在线视频首页| 午夜影院免费版| 色综合五月天| 国产不卡精品视男人的天堂| 日本精品久久久久久| 国产精品九色蝌蚪自拍| 哪个网站能看毛片| 国产精品中文字幕制服诱惑| 麻豆国产精品va在线观看不卡 | 娇妻被老王脔到高潮失禁视频| 亚洲日韩视频| 成人欧美视频在线| 操你啦在线视频| 欧美区在线观看| 色噜噜噜噜噜噜| 久久最新视频| 免费一区二区三区| 日本在线影院| 亚洲精品99久久久久| 久久精品视频6| 国产成人久久精品77777最新版本| 日本福利视频导航| 偷拍自拍亚洲| 色黄久久久久久| 中文字字幕在线中文乱码| 国产欧美中文在线| 久草在在线视频| 国产亚洲欧美日韩在线观看一区二区| 欧美在线视频一二三| 青青操在线视频| 一本一道波多野结衣一区二区| 久久丫精品国产亚洲av不卡| 亚洲一区区二区| 欧美日韩电影一区二区三区| 美女100%一区| 亚洲网站在线播放| 欧美一级黄视频| 日本一区二区免费在线观看视频| 中文字幕国产传媒| 日韩精品免费| 91精品视频一区| 羞羞视频在线免费国产| 精品国产网站在线观看| 国产香蕉视频在线| 91一区一区三区| 无码少妇一区二区三区芒果| 成人在线一区| 成人激情视频网| 曰本三级在线| 亚洲国产精品成人av| 国产精品黄色大片| 国产亚洲精品精华液| 在线观看免费不卡av| 欧美韩国一区| 久久精品国产99精品国产亚洲性色| 高清av不卡| 日韩在线中文字幕| 午夜久久久久久久久久| 欧美日韩免费网站| 东京热无码av男人的天堂| 久久99精品久久久| 日本a在线天堂| 希岛爱理av免费一区二区| 国产精品高精视频免费| 老司机精品影院| 亚洲精品久久视频| 中文字幕精品一区二| 一区二区在线观看免费| 巨胸大乳www视频免费观看| 精品综合久久久久久8888| 无码日本精品xxxxxxxxx| 香蕉久久精品| 亚洲一区精品电影| 咪咪网在线视频| 俺去啦;欧美日韩| 粉嫩av一区二区夜夜嗨| 色94色欧美sute亚洲线路一ni| 潘金莲一级黄色片| 99国产一区二区三精品乱码| 91小视频网站| 国产精品日韩| 强开小嫩苞一区二区三区网站| 青青一区二区| 91精品免费看| 老司机2019福利精品视频导航| 美女av一区二区三区| 你懂得在线网址| 欧美va亚洲va在线观看蝴蝶网| 久久精品99北条麻妃| 亚洲自拍另类综合| 一区二区三区在线观看免费视频| 成人的网站免费观看| xxxx在线免费观看| 亚洲综合日韩| 99久久国产综合精品五月天喷水| 日韩精品一区二区三区免费观影 | 亚洲观看黄色网| 九九热在线视频观看这里只有精品 | 国产在线一二三区| 亚洲国产精品99| 亚洲精品国产av| 制服视频三区第一页精品| 日韩欧美国产另类| 欧美日韩精品国产| 久久精品国产亚洲av无码娇色| 中文字幕色av一区二区三区| 日韩欧美黄色网址| 久久天天做天天爱综合色| 年下总裁被打光屁股sp| 国产剧情一区二区| 天天影视色综合| 麻豆国产精品官网| 日本在线观看免费视频| 久久久久99| 免费观看日韩毛片| 国产欧美短视频| 日本a视频在线观看| 欧美精品播放| 无码人妻精品一区二区三区99v| 成人区精品一区二区婷婷| 日本一区免费看| 猛男gaygay欧美视频| 久久99精品久久久久久青青日本 | 欧洲在线视频一区| 色哟哟精品丝袜一区二区| 国产九色91| 国产精品任我爽爆在线播放| 国产精品国产三级欧美二区| 日韩区一区二| 国产精品9999久久久久仙踪林| 国产精品一区二区美女视频免费看| 成人xxxxx| 久久天堂久久| 粉嫩高清一区二区三区精品视频 | 久久综合亚洲色hezyo国产| 一色桃子久久精品亚洲| 国产成人av免费在线观看| 1000部国产精品成人观看| 国产18无套直看片| 国产精品理伦片| 欧美特黄一级片| 亚洲精品国产无套在线观| 欧美日韩人妻精品一区二区三区| 亚洲国产日产av| 欧美福利视频一区二区| 欧美日韩亚洲一区二区| 亚洲 欧美 成人| 欧美性欧美巨大黑白大战| 在线免费观看一区二区| 欧美巨大另类极品videosbest | 久久国产精品久久久久久| 在线观看h网| 55夜色66夜色国产精品视频| 88xx成人免费观看视频库| 国产在线日韩在线| 4438五月综合| 九九九九九九精品| 成人久久久久| 欧美精品在欧美一区二区| 国产欧美欧美| 三上悠亚在线一区二区| 国产高清一区日本| 三级黄色片网站| 国产精品美女一区二区三区| 欧美日韩国产精品综合 | 久久国产精品视频| 99在线视频影院| 国产精品久在线观看| 国产精品毛片无码| 久久一区免费| 68国产成人综合久久精品| www精品久久| 日本aⅴ免费视频一区二区三区| 91亚洲一区二区| 久久综合色婷婷| 99久久婷婷国产综合| 福利一区视频在线观看| 国产一区二区三区在线观看| 亚洲激情第一页| 在线观看黄av| 91精品国产91久久久久久吃药 | 日韩激情av| 日本最新高清不卡中文字幕| 日韩第一区第二区| 日韩精品大片| 在线视频观看日韩| 国产永久免费网站| 26uuu亚洲综合色| 欧美人妻精品一区二区三区 | 天天操狠狠操夜夜操| 99re在线精品| 免费在线一区二区三区| 欧美无砖砖区免费| 亚洲人成色777777老人头| 久热国产精品视频| 日韩一级二级| 久久99精品久久久久久秒播放器 | 国产成人精品免费视频| 51社区在线成人免费视频| 亚洲国产日韩欧美| 亚洲欧美日韩专区| 99久久久无码国产精品性波多| 国产精品丝袜一区| 色屁屁影院www国产高清麻豆| 日韩欧美一二区| 日本中文字幕电影在线免费观看| 日韩免费观看av| 午夜先锋成人动漫在线| 国产欧美日韩网站| 国产精品一区二区黑丝| 大地资源高清在线视频观看| 色噜噜夜夜夜综合网| 亚洲aaa在线观看| 91av在线播放视频| 韩国女主播一区二区三区| 美女av免费观看| 国产高清亚洲一区| 欧美日韩精品在线观看视频| 91 com成人网| 欧美jizzhd欧美| 成人黄色免费看| 凹凸成人精品亚洲精品密奴| wwwwxxxx日韩| 国产精品三级av| 亚洲怡红院av| 日韩视频在线观看免费| 欧美一级做a| 裸体裸乳免费看| 国产精品综合久久| 欧美黄色一区二区三区| 日韩一区二区三免费高清| 尤物在线网址| 国产精品加勒比| 亚洲另类自拍| 日本黄色网址大全| 色又黄又爽网站www久久| 国产小视频在线播放| 国产精品福利无圣光在线一区| 成人影院天天5g天天爽无毒影院| 五月婷婷激情久久| 日韩一区在线播放| 精品黑人一区二区三区在线观看| 欧美精品免费在线观看| 亚洲精品国产九九九| 青草视频在线观看视频| jlzzjlzz亚洲日本少妇| 久久久免费高清视频| 中文国产亚洲喷潮| 国模大尺度视频一区二区| 日本a级片在线播放| aaa亚洲精品| 国产第一页在线观看| 深夜精品寂寞黄网站在线观看| 精品一区二区三区中文字幕| 欧美精品自拍视频| 国产三区在线成人av| 国产精品亚洲lv粉色| 欧美精品久久久久久久免费观看 | 99er精品视频| 男人插女人视频在线观看| 91丝袜国产在线播放| 国产精品无码粉嫩小泬| 欧美成人精品在线视频| 美女视频亚洲色图| 我看黄色一级片| 亚洲免费观看高清完整| 手机亚洲第一页| 91久久久精品| 亚洲欧美清纯在线制服| 乱老熟女一区二区三区| 欧美tk—视频vk| 日本精品不卡| 国产资源第一页| 国产亚洲精品bt天堂精选| www.日日夜夜| 国产91露脸中文字幕在线| 自拍视频亚洲| 午夜理伦三级做爰电影| 91精品一区二区三区在线观看| 涩涩涩在线视频| 强开小嫩苞一区二区三区网站| 91一区二区在线观看| 精品乱子伦一区二区| 国产91在线视频| 激情视频一区二区三区| 午夜国产小视频| 亚洲性日韩精品一区二区| 老牛精品亚洲成av人片|