a毛片毛费观看-a毛片在线-a毛片在线观看-a毛片在线免费观看-国产成人综合洲欧美在线-国产成人综合高清在线观看

始創于2000年 股票代碼:831685
咨詢熱線:0371-60135900 注冊有禮 登錄
  • 掛牌上市企業
  • 60秒人工響應
  • 99.99%連通率
  • 7*24h人工
  • 故障100倍補償
您的位置: 網站首頁 > 幫助中心>文章內容

SQLite的C語言接口

發布時間:  2012/9/3 17:14:55

近我正在Linux平臺寫一個軟件,需要用到一個簡單的數據庫。mysql做數據庫固然很好,但其數據是存放在服務器的。我想要的基本功能也就是使用C程序創建一個數據庫本地文件,然后可以對這個數據庫文件執行基本的sql操作. 就像在Windows平臺基于VC6.0的DAO數據庫編程一樣(創建一個本地文件.mdb).
從網上找到了一個開源免費的數據庫開發工具--sqlite, 網上的關于sqlite的介紹有很多,詳細見官方網站:http://www.sqlite.com.cn/ . 我發現sqlite正是我需要的. 總結一下幾個特點:-
 

1. 開放源代碼
2. 程序特別小,在windows下應用程序sqlite.exe僅僅200kb以內。
3. 支持大多數sql指令,速度極快
4. 直接創建一個xxx.db, 就是一個數據庫,不需要服務器支持
5. 簡潔的C語言API接口

基于上面幾點,足可以看出sqlite的強大和優異之處。源代碼公開和程序特別小,甚至可以跨平臺直接編譯"gcc -o sqlite3 *",將這融合到潛入式系統是多么的美妙!

在Ubuntu6.10平臺安裝sqlite3及其開發包:
#sudo apt-get install sqlite3 libsqlite3-dev

鏈接這篇文章介紹了sqlite的使用方法:
http://www.sqlite.com.cn/MySqlite/4/378.Html

下面是我總結的sqlite3與C接口的API
我用到的主要是下面幾個函數(頭文件sqlite3.h):
int sqlite3_open(const char*, sqlite3**); //打開一個數據庫
int sqlite3_close(sqlite3*); //關閉
int sqlite3_exec(sqlite3*, const char *sql, sqlite_callback, void*, char**);//執行
int sqlite3_get_table(sqlite3*, const char *sql,char***result, int *nrow,int *ncolumn ,char **errmsg );
 //result中是以數組的形式存放所查詢的數據,首先是表名,再是數據;
 //nrow/ncolumn分別為查詢語句返回的結果集的行數/列數,沒有查到結果時返回0
sqlite3_errcode() 通常用來獲取最近調用的API接口返回的錯誤代碼.
sqlite3_errmsg() 則用來得到這些錯誤代碼所對應的文字說明.

exec錯誤碼
#define SQLITE_OK           0   /* Successful result */
#define SQLITE_ERROR        1   /* SQL error or missing database */
#define SQLITE_INTERNAL     2   /* An internal logic error in SQLite */
#define SQLITE_PERM         3   /* Access permission denied */
#define SQLITE_ABORT        4   /* Callback routine requested an abort */
#define SQLITE_BUSY         5   /* The database file is locked */
#define SQLITE_LOCKED       6   /* A table in the database is locked */
#define SQLITE_NOMEM        7   /* A malloc() failed */
#define SQLITE_READONLY     8   /* Attempt to write a readonly database */
#define SQLITE_INTERRUPT    9   /* Operation terminated by sqlite_interrupt() */
#define SQLITE_IOERR       10   /* Some kind of disk I/O error occurred */
#define SQLITE_CORRUPT     11   /* The database disk image is malformed */
#define SQLITE_NOTFOUND    12   /* (Internal Only) Table or record not found */
#define SQLITE_FULL        13   /* Insertion failed because database is full */
#define SQLITE_CANTOPEN    14   /* Unable to open the database file */
#define SQLITE_PROTOCOL    15   /* Database lock protocol error */
#define SQLITE_EMPTY       16   /* (Internal Only) Database table is empty */
#define SQLITE_SCHEMA      17   /* The database schema changed */
#define SQLITE_TOOBIG      18   /* Too much data for one row of a table */
#define SQLITE_CONSTRAINT  19   /* Abort due to contraint violation */
#define SQLITE_MISMATCH    20   /* Data type mismatch */
#define SQLITE_MISUSE      21   /* Library used incorrectly */
#define SQLITE_NOLFS       22   /* Uses OS features not supported on host */
#define SQLITE_AUTH        23   /* Authorization denied */
#define SQLITE_ROW         100  /* sqlite_step() has another row ready */
#define SQLITE_DONE        101  /* sqlite_step() has finished executing */
應用實例:

定義
sqlite3 *db = NULL;
char * errMsg = NULL;
char sql_cmd[200];

打開文件:
int rc = sqlite3_open("xxx.db", &db);
if(rc) //打開失敗
      printf("Open database failed!\n");
  else
    printf("create the database successful!\n");

建立表格:
     sprintf(sql_cmd,"CREATE TABLE datapro(package INTEGER,offset \
       INTEGER,lklen INTEGER,base INTEHER,link INTEGER,err INTEGER);");
     rc=sqlite3_exec(db,sql_cmd,0,0,&eMsg); //建立表datapro
     if(rc==SQLITE_OK) //建表成功
           printf("create the chn_to_eng table successful!\n");
      else
           printf("%s\n",eMsg);
添加數據:
   sprintf(sql_cmd,"INSERT INTO datapro VALUES(%d,%d,%d,%d,%d,%d);",4,2345,268,9,3,3);
   rc=sqlite3_exec(pro_db,pro_sqlcmd,0,0,&eMsg);

查詢:
 int nrow=0, ncolumn=0;
 char **azResult; //存放結果
 sql="SELECT * FROM datapro";
 sqlite3_get_table(db,sql,&azResult,&nrow,&ncolumn,&eMsg);
//其中nrow為行數,ncolum為列數
 printf("\nThe result of querying is : \n");
 for(int i=1;i<nrow+1;i++)
 {
     for(int j=0;j<ncolumn;j++)
         printf("%s    ",azResult[i*ncolumn+j]);
      printf("\n");
 }

刪除:
 sprintf(sql_cmd,"DELETE FROM datapro WHERE package=1;") ;
 rc=sqlite3_exec(db,sql,0,0,&eMsg);


本文出自:億恩科技【www.ibaoshan.net】

服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經營性ICP/ISP證:贛B2-20080012
  • 服務器/云主機 24小時售后服務電話:0371-60135900
  • 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
  • 專注服務器托管17年
    掃掃關注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權所有  地址:鄭州市高新區翠竹街1號總部企業基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網安備41019702002023號
      0
     
     
     
     

    0371-60135900
    7*24小時客服服務熱線

     
     
    波多波多野结衣中文无| 你日的我走不了路了| 91精品人妻一区二区| 无码人妻 在线视频| 免费的视频BGM大全软件下载| 国产精华AV午夜在线观看| 中日韩人妻中文字幕视频在线| 无码精品人妻AV一区二区三区| 男生把QQ放进女生的QQ里韩剧 | 欧洲美女与动交ZOZ0Z| 国语高潮无遮挡无码免费看| GV无码免费无禁网站男男 | 妺妺窝人体色聚色窝www视频| 国产精品无码久久综合网| 特级做A爰片毛片免费看108| 久久熟女俱乐部五十路二区av| H工口全彩里番库18禁无遮挡| 亚洲爆乳无码专区WWW| 日本丰满熟妇BBXBBXHD| 久久久久国产精品| 国产成人精品免高潮在线观看| 中文字幕人妻互换激情| 性饥渴老妇XXXⅩOOO| 欧美成人少妇人妻精品视频| 好爽又高潮了毛片| 粗大的内捧猛烈进出小视频| 一本久久伊人热热精品中文| 无码被窝影院午夜看片爽爽JK | 午夜A级理论片在线播放琪琪| 欧美喷潮久久久XXXXX| 高清粉嫩无套内谢国语播放| 永久免费无码AV在线网站| 无码专区3D动漫精品免费| 欧美乱大交XXXXX性喷潮| 狠狠爱天天综合色欲网| 91人妻超碰亚洲| 亚洲AV无码久久精品成人 | 色费女人18毛片A级毛片视频| 老熟女重囗味HDXX70星空| 国产男男GayGay裸交视频| 把她送上一个又一个巅峰| 一二三四在线观看免费中文吗 | 国产精品毛片无遮挡| BIGBANG幼稚视频入门幼年| 亚洲国产精品久久久久爰| 少妇无码AV无码一区| 男男GAy作爱免费观看| 禁欲少校大哥的囚禁| JAPANESE55丰满成熟| 亚洲熟妇AV一区二区三区浪潮| 欧洲无码一区二区三区在线观看 | 国产SUV精品一区二区69| 99久久精品费精品国产| 亚洲熟妇无码八V在线播放| 天天躁日日躁狠狠躁裸体| 欧洲熟妇色XXXXⅩ| 久久精品国产免费观看| 国产精品亚洲АV无码播放| 波多野结衣av在线| 中文字幕有码无码人妻AV蜜桃| 亚洲国产精品成人AV在线| 四虎永久在线精品国产馆V视影院| 欧美人交A欧美精品AV一区| 久久久久久精品人妻免费网站| 国产嫖妓风韵犹存对白| 成人欧美一区二区三区在线| 中文字幕亚洲综合久久2020| 亚洲乱亚洲乱妇无码麻豆| 乌克兰美女的小嫩BBB| 人人妻人人澡人人爽人人免费| 韩漫漫画无遮挡免费| 第一次爱的人视频播放完整版| 91人人妻人人澡人人爽精品| 亚洲日韩精品无码专区加勒比海 | 久久婷婷成人综合色综合| 国产一区日韩二区欧美三区| 嗯快点别停舒服好爽受不了了 | 婷婷俺也去俺也去官网| 人妻丰满熟妇AⅤ无码区| 美女高潮无遮挡喷水视频| 精品久久亚洲中文无码| 国产女主播高潮在线播放| 丰满人妻一区二区三区Aⅴ在线 | 天天看高清影视在线观看| 人妻久久久一区二区三区| 免费人成在线观看网站| 精品综合久久久久久97| 国产午夜精品理论片| 99尹人香蕉国产免费天天| 亚洲综合蜜臀AV| 天天爽夜夜爽人人爽一区二区| 欧美又粗又大XXXXBBBB疯狂| 皇上御花园HLH| 国产精品白丝久久AV网站| 337P人体粉嫩胞高清大图AV| 亚洲色婷婷综合开心网| 亚洲AV秘 无码一区白峰美| 熟妇人妻精品一区二区三区颏| 免费拗女网站1300部| 久久精品国产只有精品2020| 国产亚洲视频在线观看播放| 国产成人a在线看片色欲AV| 成人片在线观看地址KK4444| FRXXEE中国XXEE医生| 中文字幕无码无码专区| 野花香影院在线观看视频免费| 亚洲国产成人久久精品软件| 无人区码一码二码三码在线| 熟女无套高潮内谢吼叫免费| 日本极品人妻VIDEOSSEX| 欧美熟妇成人大片性爽| 免费三级现频在线观看免费| 久久婷婷五月综合97色一本一本| 精品国产乱码久久久久久郑州公司| 国产性大战XXXXX久久久| 国产成人无码A区视频在线观看| 成人免费一区二区三区视频软件| JIZZYOU中国少妇| 亚洲日韩欧美一区二区三区| 亚洲AV无码成人影片在线观看| 无码动漫性爽XO视频在线观看不 | 美女裸体无遮拦国产兔费网站 | 色欲老女人人妻综合网| 人妻在夫面前被性爆| 欧美巨大XXXX做受中文字幕| 免费精品一区二区三区第35 | 野花视频在线手机免费观看| 亚洲欧美日韩在线不卡| 色综合天天视频在线观看| 人妻激情偷乱一区二区三区AV | 国产成人无码AV一区二区在线观| 纯爱无遮挡H肉动漫| 暗交小拗女一区二区三| JAVAPARSER少妇高潮| AV中文字幕潮喷人妻系列| 97色伦图片97综合影院| 最新系列国产专区|亚洲国产| 正在播放强揉爆乳女教师| 永久免费AV无码网站在线观看| 野外做受又硬又粗又大视频√| 亚洲中文字幕AV无码区| 亚洲一线产区二线产区区别在哪里 | 日日摸日日踫夜夜爽无码| 日99久9在线 | 免费| 区产品乱码芒果精品P站| 久久人人爽人人爽人人片AV不 | EEUSS影院鲁丝片A无码| 坐公交车居然被弄了2个小时| 尤物蜜芽国产成人精品区| 一边捏奶头一边高潮视频| 亚洲一区二区三区在线网址 | 18亚洲AV无码成人国产| 1000部精品久久久久久久久| 最新在线精品国产福利| 13小箩利洗澡无码视频网站| 4444亚洲人成无码网在线观看| 2021最新久久久视精品爱| 性欧美玩弄性少妇HD| 亚洲欧美日韩精品久久亚洲区| 亚洲AV最新在线网址| 亚洲丰满熟妇在线播放电影全集| 亚洲AV中文AⅤ无码AV接吻| 亚洲AV无码一区二区三区在线| 亚洲 日韩 另类 制服 无码| 驯服人妻HD中字日本| 亚洲AV无码成人精品网站| 亚洲AV无码乱码在线观看代蜜桃 | 国产丝袜视频一区二区三区| 国产又色又爽又黄的在线观看| 国精产品一二三区传媒公司| 国内精品伊人久久久久AV影院| 国模无码一区二区三区不卡| 好爽又高潮了毛片免费下载| 精品久久久无码人妻中文字幕 | 浪潮国产AV一区二区熟女| 老太太 GRANNY| 免费无码又爽又刺激聊天APP | 19岁MACBOOKPRO日本| 99国产精品久久久蜜芽| JIZZJIZZ丝袜老师| 成年美女黄网站18禁免费| 抖抈短视频APP免费下载| 国产成人18黄网站| 国产麻豆精选AV| 国内精品自国内精品自线| 精品国产AV一区二区三区| 久久996RE热这里有精品| 久久久亚洲欧洲日产无码AV | 精品系列无码一区二区三区 | 亚洲午夜理论片在线观看| 影音先锋男人资源站| 综合无码成人AⅤ视频在线观看| 99久E在线精品视频在线| 把佛珠一个一个挤出去| 第九午夜不卡影院| 国产精品爱久久久久久久小说 | 亚洲AⅤ永久无码精品| 神里凌华被焯出白水视频| 无码AV中文字幕久久专区| 五月天国产亚洲AV麻豆|