成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > SQLite教程(二):C/C++接口簡介

SQLite教程(二):C/C++接口簡介

熱門標簽:北京智能外呼系統(tǒng)供應商家 奧維地圖標注字體大小修改 中國地圖標注省份用什么符號 電話機器人錄音師薪資 江西穩(wěn)定外呼系統(tǒng)供應商 智能電銷機器人教育 無錫梁溪公司怎樣申請400電話 高德地圖標注電話怎么沒了 孝感銷售電銷機器人廠家

一、概述:

    在SQLite提供的C/C++接口中,其中5個APIs屬于核心接口。在這篇博客中我們將主要介紹它們的用法,以及它們所涉及到的核心SQLite對象,如database_connection和prepared_statement。相比于其它數(shù)據(jù)庫引擎提供的APIs,如OCI、MySQL API等,SQLite提供的接口還是非常易于理解和掌握的。
   
二、核心對象和接口:

    1. 核心對象:
    在SQLite中最主要的兩個對象是,database_connection和prepared_statement。database_connection對象是由sqlite3_open()接口函數(shù)創(chuàng)建并返回的,在應用程序使用任何其他SQLite接口函數(shù)之前,必須先調用該函數(shù)以便獲得database_connnection對象,在隨后的其他APIs調用中,都需要該對象作為輸入?yún)?shù)以完成相應的工作。至于prepare_statement,我們可以簡單的將它視為編譯后的SQL語句,因此,所有和SQL語句執(zhí)行相關的函數(shù)也都需要該對象作為輸入?yún)?shù)以完成指定的SQL操作。
   
    2. 核心接口:
    1). sqlite3_open
    上面已經提到過這個函數(shù)了,它是操作SQLite數(shù)據(jù)庫的入口函數(shù)。該函數(shù)返回的database_connection對象是很多其他SQLite APIs的句柄參數(shù)。注意,我們通過該函數(shù)既可以打開已經存在的數(shù)據(jù)庫文件,也可以創(chuàng)建新的數(shù)據(jù)庫文件。對于該函數(shù)返回的database_connection對象,我們可以在多個線程之間共享該對象的指針,以便完成和數(shù)據(jù)庫相關的任意操作。然而在多線程情況下,我們更為推薦的使用方式是,為每個線程創(chuàng)建獨立的database_connection對象。對于該函數(shù)還有一點也需要額外說明,我們沒有必要為了訪問多個數(shù)據(jù)庫而創(chuàng)建多個數(shù)據(jù)庫連接對象,因為通過SQLite自帶的ATTACH命令可以在一個連接中方便的訪問多個數(shù)據(jù)庫。
       
    2). sqlite3_prepare
    該函數(shù)將SQL文本轉換為prepared_statement對象,并在函數(shù)執(zhí)行后返回該對象的指針。事實上,該函數(shù)并不會評估參數(shù)指定SQL語句,它僅僅是將SQL文本初始化為待執(zhí)行的狀態(tài)。最后需要指出的,對于新的應用程序我們可以使用sqlite3_prepare_v2接口函數(shù)來替代該函數(shù)以完成相同的工作。
   
    3). sqlite3_step
    該函數(shù)用于評估sqlite3_prepare函數(shù)返回的prepared_statement對象,在執(zhí)行完該函數(shù)之后,prepared_statement對象的內部指針將指向其返回的結果集的第一行。如果打算進一步迭代其后的數(shù)據(jù)行,就需要不斷的調用該函數(shù),直到所有的數(shù)據(jù)行都遍歷完畢。然而對于INSERT、UPDATE和DELETE等DML語句,該函數(shù)執(zhí)行一次即可完成。
   
    4). sqlite3_column
    該函數(shù)用于獲取當前行指定列的數(shù)據(jù),然而嚴格意義上講,此函數(shù)在SQLite的接口函數(shù)中并不存在,而是由一組相關的接口函數(shù)來完成該功能,其中每個函數(shù)都返回不同類型的數(shù)據(jù),如:
 

復制代碼 代碼如下:

    sqlite3_column_blob
    sqlite3_column_bytes
    sqlite3_column_bytes16
    sqlite3_column_double
    sqlite3_column_int
    sqlite3_column_int64
    sqlite3_column_text
    sqlite3_column_text16
    sqlite3_column_type
    sqlite3_column_value
    sqlite3_column_count
 

    其中sqlite3_column_count函數(shù)用于獲取當前結果集中的字段數(shù)據(jù)。下面是使用sqlite3_step和sqlite3_column函數(shù)迭代結果集中每行數(shù)據(jù)的偽代碼,注意這里作為示例代碼簡化了對字段類型的判斷:
復制代碼 代碼如下:

     int fieldCount = sqlite3_column_count(...);
     while (sqlite3_step(...) > EOF) {
         for (int i = 0; i fieldCount; ++i) {
             int v = sqlite3_column_int(...,i);
         }
     }

    5). sqlite3_finalize
    該函數(shù)用于銷毀prepared statement對象,否則將會造成內存泄露。
   
    6). sqlite3_close
    該函數(shù)用于關閉之前打開的database_connection對象,其中所有和該對象相關的prepared_statements對象都必須在此之前先被銷毀。

三、參數(shù)綁定:

    和大多數(shù)關系型數(shù)據(jù)庫一樣,SQLite的SQL文本也支持變量綁定,以便減少SQL語句被動態(tài)解析的次數(shù),從而提高數(shù)據(jù)查詢和數(shù)據(jù)操作的效率。要完成該操作,我們需要使用SQLite提供的另外兩個接口APIs,sqlite3_reset和sqlite3_bind。見如下示例:

復制代碼 代碼如下:

void test_parameter_binding() {
        //1. 不帶參數(shù)綁定的情況下插入多條數(shù)據(jù)。
        char strSQL[128];
        for (int i = 0; i MAX_ROWS; ++i) {
            sprintf(strSQL,"insert into testtable values(%d)",i);
            sqlite3_prepare_v2(..., strSQL);
            sqlite3_step(prepared_stmt);
            sqlite3_finalize(prepared_stmt);
        }
        //2. 參數(shù)綁定的情況下插入多條數(shù)據(jù)。
        string strSQLWithParameter = "insert into testtable values(?)";
        sqlite3_prepare_v2(..., strSQL);
        for (int i = 0; i MAX_ROWS; ++i) {
            sqlite3_bind(...,i);
            sqlite3_step(prepared_stmt);
            sqlite3_reset(prepared_stmt);
        }
        sqlite3_finalize(prepared_stmt);
    }

這里首先需要說明的是,SQL語句"insert into testtable values(?)"中的問號(?)表示參數(shù)變量的占位符,該規(guī)則在很多關系型數(shù)據(jù)庫中都是一致的,因此這對于數(shù)據(jù)庫移植操作還是比較方便的。

    通過上面的示例代碼可以顯而易見的看出,參數(shù)綁定寫法的執(zhí)行效率要高于每次生成不同的SQL語句的寫法,即2)在效率上要明顯優(yōu)于1),下面是針對這兩種寫法的具體比較:

    1). 單單從程序表面來看,前者在for循環(huán)中執(zhí)行了更多的任務,比如字符串的填充、SQL語句的prepare,以及prepared_statement對象的釋放。
    2). 在SQLite的官方文檔中明確的指出,sqlite3_prepare_v2的執(zhí)行效率往往要低于sqlite3_step的效率。
    3). 當插入的數(shù)據(jù)量較大時,后者帶來的效率提升還是相當可觀的。

您可能感興趣的文章:
  • c++獲取sqlite3數(shù)據(jù)庫表中所有字段的方法小結
  • VC++操作SQLite簡單實例
  • 讓Sqlite脫離VC++ Runtime獨立運行的方法
  • C++操作SQLite簡明教程
  • C++ Sqlite3的使用方法

標簽:齊齊哈爾 通化 阜陽 荊州 泰州 海北 臨滄 那曲

巨人網(wǎng)絡通訊聲明:本文標題《SQLite教程(二):C/C++接口簡介》,本文關鍵詞  SQLite,教程,二,C++,接口,簡介,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《SQLite教程(二):C/C++接口簡介》相關的同類信息!
  • 本頁收集關于SQLite教程(二):C/C++接口簡介的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    天天操天天干天天摸| 黄色成人在线免费观看| 性欧美大战久久久久久久久| 超碰97在线人人| 亚洲美女av黄| 欧美调教在线| 狠狠色狠狠色综合人人| 日本大胆欧美人术艺术动态| 亚洲精品一区二区三区在线| 相泽南亚洲一区二区在线播放| 欧美一区二三区| 精品成人国产在线观看男人呻吟| а√天堂资源地址在线下载| 中文字幕精品无码一区二区| 奇米影视777在线欧美电影观看| 欧美色视频日本高清在线观看| 亚洲一区二区欧美日韩| 欧美日韩国产精品一区二区亚洲| 亚洲无在线观看| 国产一区二区中文字幕免费看| 黄色av网址在线观看| 国产一级影片| 亚洲欧美网站在线观看| 男人操女人免费网站| 欧美日韩你懂的| 天天操综合520| 久久99精品国产.久久久久| 在线国产一区| 久久九九国产精品怡红院| 日韩a在线观看| 亚洲久本草在线中文字幕| 国产精品亚洲一区二区三区| 极品少妇一区二区三区| 亚洲最大中文字幕| 亚洲图区在线| 国产亚洲天堂网| 人妻熟女一二三区夜夜爱| 亚洲色图 欧美| 亚洲视频狠狠干| 亚洲人辣妹窥探嘘嘘| 国产欧美综合精品一区二区| 在线精品视频小说1| 日韩欧美精品一区二区三区| 日韩高清专区| 天天操夜夜干| 无码人妻精品一区二区50| 羞羞网站在线观看入口免费| 一本久久a久久精品亚洲| 日韩黄色短视频| 成人性生活视频免费看| 亚洲天堂视频在线| 99视频这里有精品| 888av在线视频| 亚洲www啪成人一区二区麻豆| 麻豆视频在线观看免费网站| 国产麻豆视频网站| 天使と恶魔の榨精在线播放| 天天影视网天天综合色在线播放| 性感美女一区二区三区| 婷婷中文字幕一区三区| 日本一区视频在线观看| 深夜视频在线观看| 色综合久久88色综合天天提莫| 一区二区三区欧美亚洲| 久久福利一区二区| 网曝91综合精品门事件在线| 欧美黄免费看| 久久看人人摘| www.青青青| 国内精品久久影院| 国产一区二区高清| 一区二区精彩视频| 国产激情自拍视频| 视频精品二区| www成人免费| 国产野外战在线播放| 狠狠色狠狠色综合日日tαg| 高清不卡一区二区三区| 91久久精品一区二区二区| 国产精品久久久久久久久免费相片| av无码一区二区三区| 亚洲免费电影在线观看| 精品国产乱码久久久久久虫虫漫画| av日韩中文字幕| 久久久久综合一区二区三区| 玖玖爱视频在线| 极品尤物一区二区三区| 国产精品色噜噜| 日韩欧美国产精品| 欧美在线黄色| 日韩在线观看一区二区三区| 麻豆短视频在线观看| 日韩精品人妻中文字幕有码| 精品国产高清自在线一区二区三区| 91麻豆精品国产91久久久平台| 九九综合九九综合| 日本大香伊一区二区三区| 美女脱光内衣内裤视频久久影院| 99久久精品费精品国产风间由美| 99re国产在线播放| 超级碰在线观看| 666av成人影院在线观看| 北条麻妃一二三区| 91精品国产综合久久久久久蜜臀| 免费黄色电影在线观看| 欧美视频国产视频| 成人性生交大片免费观看网站| 国产精品综合不卡av| 天天插天天操天天射| 色综合天天狠天天透天天伊人| 免费在线观看的av| 一本色道久久综合亚洲精品不卡| 亚洲熟女综合色一区二区三区| 久久97超碰色| 亚洲国产婷婷香蕉久久久久久| 男女做爰猛烈刺激| 一区二区三区四区精品在线视频| 综合毛片免费视频| 999精品视频在线观看播放| 国产精品高清免费在线观看| 好吊视频一区二区三区| 亚洲国产成人精品无码区99| 少妇又紧又色又爽又刺激视频| 高潮白浆女日韩av免费看| 国产va在线观看| 久久精品成人欧美大片免费| 亚洲另类在线一区| 在线heyzo| 国内精品不卡在线| 你懂得在线网址| a级片国产精品自在拍在线播放| 成人片在线播放| 国产成人精品白浆久久69| 中文字幕国产高清| 91在线播放视频| 欧美一区二区性放荡片| 奇米777日韩| 综合精品久久久| а√中文在线资源库| 久久久午夜精品福利内容| 91精品国产色综合久久不卡粉嫩| 麻豆精品不卡国产免费看| 精品国产乱码久久久久久牛牛| 麻豆国产欧美一区二区三区r| 极品美乳网红视频免费在线观看| 国产亚洲精品日韩| 久热在线视频| 麻豆短视频在线观看| 91九色单男在线观看| 日日摸夜夜爽人人添av| 亚洲一区二区三区在线免费观看| 最近中文字幕2019第二页视频| 香蕉久久精品| 欧美日韩亚洲不卡| 国产精品亚洲视频| 日韩av在线网站| 欧美激情视频三区| 国产三级视频在线看| 超污视频在线播放| 超碰在线公开超碰在线| 久久久天堂国产精品女人| 色哟哟免费视频| 国产成人在线网址| 午夜精品一区二区三区在线| 精品美女久久久久| ass极品水嫩小美女ass| 色综合久久一区二区三区| 亚洲精品720p| 一区二区三区精品牛牛| 成年网站在线在免费播放| sis001欧美| 全部免费的黄色毛片| 亚洲人av在线| 国产日产欧美一区| 精品亚洲成a人在线观看| 成人在线播放网址| 亚洲人成网www| 美国黑人一级大黄| 国产一级片免费在线观看| 91九色视频导航| 久久国产精彩视频| 国产乱码在线| 精品国产第一国产综合精品| 成年丰满熟妇午夜免费视频| 国产小视频免费在线观看| 国产成人av电影在线| 欧美理论在线| 中文在线天堂网www| 国产精品视频入口| 偷拍盗摄高潮叫床对白清晰| 国产精品69久久| 欧美最猛性xxxxx免费| 亚洲美女av在线播放| 一区二区三区国产在线观看| √天堂中文在线| 黄色免费网站视频| 成人台湾亚洲精品一区二区| 欧美a级成人淫片免费看| 五月婷婷另类国产| 91九色91蝌蚪| 亚洲国产成人久久| 一区二区三区小说| 91在线观看免费观看| 成人免费的视频| 精品夜色国产国偷在线| 超碰在线公开| avtt久久| 欧美日韩看看2015永久免费| 99视频在线观看一区三区| 午夜影院在线免费观看| 中文字幕日韩三级| 美女毛片一区二区三区四区最新中文字幕亚洲| 涩爱av色老久久精品偷偷鲁| 国产69久久| 另类欧美小说| 成人亚洲一区| 亚洲丝袜另类动漫二区| 精品人妻伦一区二区三区久久| 国产欧美自拍| 亚洲啪啪综合av一区二区三区| 日韩欧美精品网站| 久久久久久国产免费| 国产一区二区黄色| 成人深夜直播免费观看| 91在线视频| 波多野结衣二区三区| 欧美一区二区三区日韩| 欧美色图校园春色| 神马久久午夜| av日韩免费电影| 99久久精品一区二区三区| 午夜裸体女人视频网站在线观看| 蜜桃传媒视频第一区入口在线看| 亚洲国产成人一区二区三区| 青青草在线观看视频| 久久国内精品视频| 成人日韩欧美| 日本aⅴ免费视频一区二区三区| 污污美女网站| 九九国产精品视频| 中文字幕第17页| 亚洲欧洲一区二区三区久久| 久久久久亚洲av成人网人人软件| 久久精品国产欧美激情| 国产女无套免费视频| 97成人在线视频| 中文字幕一区二区三区中文字幕| 欧美va亚洲va| 中文字幕网av| 曰韩精品一区二区| 伊人久久影院| 国产精品合集一区二区| 久久久999久久久| 日日摸夜夜添夜夜添国产精品| 亚洲精品福利在线| 日韩美女毛片| 免费成人在线观看av| 91视频最新| 欧美日韩加勒比精品一区| 久久色视频免费观看| 亚洲一二av| 日韩Av无码精品| 亚洲国产视频二区| 国产乱码久久久久| 国产高潮失禁喷水爽到抽搐| 国产精品手机播放| 有码中文亚洲精品| 国产日韩一区在线| 久久综合九九| 销魂美女一区二区三区视频在线| 天堂а√在线中文在线新版| 欧美性感美女一区二区| 白丝女仆被免费网站| 一级毛片免费视频| 青青草国产成人a∨下载安卓| 影视亚洲一区二区三区| 蜜桃福利午夜精品一区| 中文字幕在线播放| 国产无码精品视频| 婷婷激情五月综合| 91九色在线porn| 青青青国内视频在线观看软件| 国产无遮挡一区二区三区毛片日本| 一区二区三区网站| 四虎精品视频| 亚洲精品7777xxxx青睐| 性爱视频在线播放| 欧美另类99xxxxx| 国产电影一区二区在线观看| 日本乱子伦xxxx| 亚洲成人福利在线观看| 91综合国产| 欧美系列电影免费观看| 午夜精品美女久久久久av福利| 两个人免费视频观看日本| 97超碰人人爱| 精品日韩欧美一区二区| 国产高清精品一区二区| 亚洲va天堂va欧美ⅴa在线| 亚州精品国产精品乱码不99按摩| 国产成人的电影在线观看| 欧美亚洲综合视频| 国产精品三级一区二区| 日韩五码在线观看| 变态另类丨国产精品| 不卡一区二区在线观看| 不卡一本毛片| 椎名由奈jux491在线播放| 欧美日韩精品不卡| 久久精品国产亚洲精品2020| 亚洲精品一区av| 一本色道久久hezyo无码| 99久久一区二区| 亚洲小视频在线播放| 五月开心播播网| 免费在线看污| 91老师国产黑色丝袜在线| 日韩精品一区二区三区视频| 美女在线观看www| 99这里只有精品视频| 波多野结衣在线观看一区二区三区| 日本国产在线视频| 日本不卡在线播放| 精品亚洲成人| 亚洲欧美色婷婷| 成人无遮挡免费网站视频在线观看| 精品一区二区三区视频日产| 欧美二级三级|