亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? test3.c

?? 這是一個嵌入式系統上運行的輕量級數據庫
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*** 2001 September 15**** The author disclaims copyright to this source code.  In place of** a legal notice, here is a blessing:****    May you do good and not evil.**    May you find forgiveness for yourself and forgive others.**    May you share freely, never taking more than you give.***************************************************************************** Code for testing the btree.c module in SQLite.  This code** is not included in the SQLite library.  It is used for automated** testing of the SQLite library.**** $Id: test3.c,v 1.23 2003/04/13 18:26:52 paul Exp $*/#include "sqliteInt.h"#include "pager.h"#include "btree.h"#include "tcl.h"#include <stdlib.h>#include <string.h>/*** Interpret an SQLite error number*/static char *errorName(int rc){  char *zName;  switch( rc ){    case SQLITE_OK:         zName = "SQLITE_OK";          break;    case SQLITE_ERROR:      zName = "SQLITE_ERROR";       break;    case SQLITE_INTERNAL:   zName = "SQLITE_INTERNAL";    break;    case SQLITE_PERM:       zName = "SQLITE_PERM";        break;    case SQLITE_ABORT:      zName = "SQLITE_ABORT";       break;    case SQLITE_BUSY:       zName = "SQLITE_BUSY";        break;    case SQLITE_NOMEM:      zName = "SQLITE_NOMEM";       break;    case SQLITE_READONLY:   zName = "SQLITE_READONLY";    break;    case SQLITE_INTERRUPT:  zName = "SQLITE_INTERRUPT";   break;    case SQLITE_IOERR:      zName = "SQLITE_IOERR";       break;    case SQLITE_CORRUPT:    zName = "SQLITE_CORRUPT";     break;    case SQLITE_NOTFOUND:   zName = "SQLITE_NOTFOUND";    break;    case SQLITE_FULL:       zName = "SQLITE_FULL";        break;    case SQLITE_CANTOPEN:   zName = "SQLITE_CANTOPEN";    break;    case SQLITE_PROTOCOL:   zName = "SQLITE_PROTOCOL";    break;    default:                zName = "SQLITE_Unknown";     break;  }  return zName;}/*** Usage:   btree_open FILENAME**** Open a new database*/static int btree_open(  void *NotUsed,  Tcl_Interp *interp,    /* The TCL interpreter that invoked this command */  int argc,              /* Number of arguments */  const char **argv      /* Text of each argument */){  Btree *pBt;  int rc;  char zBuf[100];  if( argc!=2 ){    Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],       " FILENAME\"", 0);    return TCL_ERROR;  }  rc = sqliteBtreeFactory(0, argv[1], 0, 1000, &pBt);  if( rc!=SQLITE_OK ){    Tcl_AppendResult(interp, errorName(rc), 0);    return TCL_ERROR;  }  sprintf(zBuf,"%p", pBt);  if( strncmp(zBuf,"0x",2) ){    sprintf(zBuf, "0x%p", pBt);  }  Tcl_AppendResult(interp, zBuf, 0);  return TCL_OK;}/*** Usage:   btree_close ID**** Close the given database.*/static int btree_close(  void *NotUsed,  Tcl_Interp *interp,    /* The TCL interpreter that invoked this command */  int argc,              /* Number of arguments */  const char **argv      /* Text of each argument */){  Btree *pBt;  int rc;  if( argc!=2 ){    Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],       " ID\"", 0);    return TCL_ERROR;  }  if( Tcl_GetInt(interp, argv[1], (int*)&pBt) ) return TCL_ERROR;  rc = sqliteBtreeClose(pBt);  if( rc!=SQLITE_OK ){    Tcl_AppendResult(interp, errorName(rc), 0);    return TCL_ERROR;  }  return TCL_OK;}/*** Usage:   btree_begin_transaction ID**** Start a new transaction*/static int btree_begin_transaction(  void *NotUsed,  Tcl_Interp *interp,    /* The TCL interpreter that invoked this command */  int argc,              /* Number of arguments */  const char **argv      /* Text of each argument */){  Btree *pBt;  int rc;  if( argc!=2 ){    Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],       " ID\"", 0);    return TCL_ERROR;  }  if( Tcl_GetInt(interp, argv[1], (int*)&pBt) ) return TCL_ERROR;  rc = sqliteBtreeBeginTrans(pBt);  if( rc!=SQLITE_OK ){    Tcl_AppendResult(interp, errorName(rc), 0);    return TCL_ERROR;  }  return TCL_OK;}/*** Usage:   btree_rollback ID**** Rollback changes*/static int btree_rollback(  void *NotUsed,  Tcl_Interp *interp,    /* The TCL interpreter that invoked this command */  int argc,              /* Number of arguments */  const char **argv      /* Text of each argument */){  Btree *pBt;  int rc;  if( argc!=2 ){    Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],       " ID\"", 0);    return TCL_ERROR;  }  if( Tcl_GetInt(interp, argv[1], (int*)&pBt) ) return TCL_ERROR;  rc = sqliteBtreeRollback(pBt);  if( rc!=SQLITE_OK ){    Tcl_AppendResult(interp, errorName(rc), 0);    return TCL_ERROR;  }  return TCL_OK;}/*** Usage:   btree_commit ID**** Commit all changes*/static int btree_commit(  void *NotUsed,  Tcl_Interp *interp,    /* The TCL interpreter that invoked this command */  int argc,              /* Number of arguments */  const char **argv      /* Text of each argument */){  Btree *pBt;  int rc;  if( argc!=2 ){    Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],       " ID\"", 0);    return TCL_ERROR;  }  if( Tcl_GetInt(interp, argv[1], (int*)&pBt) ) return TCL_ERROR;  rc = sqliteBtreeCommit(pBt);  if( rc!=SQLITE_OK ){    Tcl_AppendResult(interp, errorName(rc), 0);    return TCL_ERROR;  }  return TCL_OK;}/*** Usage:   btree_create_table ID**** Create a new table in the database*/static int btree_create_table(  void *NotUsed,  Tcl_Interp *interp,    /* The TCL interpreter that invoked this command */  int argc,              /* Number of arguments */  const char **argv      /* Text of each argument */){  Btree *pBt;  int rc, iTable;  char zBuf[30];  if( argc!=2 ){    Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],       " ID\"", 0);    return TCL_ERROR;  }  if( Tcl_GetInt(interp, argv[1], (int*)&pBt) ) return TCL_ERROR;  rc = sqliteBtreeCreateTable(pBt, &iTable);  if( rc!=SQLITE_OK ){    Tcl_AppendResult(interp, errorName(rc), 0);    return TCL_ERROR;  }  sprintf(zBuf, "%d", iTable);  Tcl_AppendResult(interp, zBuf, 0);  return TCL_OK;}/*** Usage:   btree_drop_table ID TABLENUM**** Delete an entire table from the database*/static int btree_drop_table(  void *NotUsed,  Tcl_Interp *interp,    /* The TCL interpreter that invoked this command */  int argc,              /* Number of arguments */  const char **argv      /* Text of each argument */){  Btree *pBt;  int iTable;  int rc;  if( argc!=3 ){    Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],       " ID TABLENUM\"", 0);    return TCL_ERROR;  }  if( Tcl_GetInt(interp, argv[1], (int*)&pBt) ) return TCL_ERROR;  if( Tcl_GetInt(interp, argv[2], &iTable) ) return TCL_ERROR;  rc = sqliteBtreeDropTable(pBt, iTable);  if( rc!=SQLITE_OK ){    Tcl_AppendResult(interp, errorName(rc), 0);    return TCL_ERROR;  }  return TCL_OK;}/*** Usage:   btree_clear_table ID TABLENUM**** Remove all entries from the given table but keep the table around.*/static int btree_clear_table(  void *NotUsed,  Tcl_Interp *interp,    /* The TCL interpreter that invoked this command */  int argc,              /* Number of arguments */  const char **argv      /* Text of each argument */){  Btree *pBt;  int iTable;  int rc;  if( argc!=3 ){    Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],       " ID TABLENUM\"", 0);    return TCL_ERROR;  }  if( Tcl_GetInt(interp, argv[1], (int*)&pBt) ) return TCL_ERROR;  if( Tcl_GetInt(interp, argv[2], &iTable) ) return TCL_ERROR;  rc = sqliteBtreeClearTable(pBt, iTable);  if( rc!=SQLITE_OK ){    Tcl_AppendResult(interp, errorName(rc), 0);    return TCL_ERROR;  }  return TCL_OK;}/*** Usage:   btree_get_meta ID**** Return meta data*/static int btree_get_meta(  void *NotUsed,  Tcl_Interp *interp,    /* The TCL interpreter that invoked this command */  int argc,              /* Number of arguments */  const char **argv      /* Text of each argument */){  Btree *pBt;  int rc;  int i;  int aMeta[SQLITE_N_BTREE_META];  if( argc!=2 ){    Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],       " ID\"", 0);    return TCL_ERROR;  }  if( Tcl_GetInt(interp, argv[1], (int*)&pBt) ) return TCL_ERROR;  rc = sqliteBtreeGetMeta(pBt, aMeta);  if( rc!=SQLITE_OK ){    Tcl_AppendResult(interp, errorName(rc), 0);    return TCL_ERROR;  }  for(i=0; i<SQLITE_N_BTREE_META; i++){    char zBuf[30];    sprintf(zBuf,"%d",aMeta[i]);    Tcl_AppendElement(interp, zBuf);  }  return TCL_OK;}/*** Usage:   btree_update_meta ID METADATA...**** Return meta data*/static int btree_update_meta(  void *NotUsed,  Tcl_Interp *interp,    /* The TCL interpreter that invoked this command */  int argc,              /* Number of arguments */  const char **argv      /* Text of each argument */){  Btree *pBt;  int rc;  int i;  int aMeta[SQLITE_N_BTREE_META];  if( argc!=2+SQLITE_N_BTREE_META ){    char zBuf[30];    sprintf(zBuf,"%d",SQLITE_N_BTREE_META);    Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],       " ID METADATA...\" (METADATA is ", zBuf, " integers)", 0);    return TCL_ERROR;  }  if( Tcl_GetInt(interp, argv[1], (int*)&pBt) ) return TCL_ERROR;  for(i=0; i<SQLITE_N_BTREE_META; i++){    if( Tcl_GetInt(interp, argv[i+2], &aMeta[i]) ) return TCL_ERROR;  }  rc = sqliteBtreeUpdateMeta(pBt, aMeta);  if( rc!=SQLITE_OK ){    Tcl_AppendResult(interp, errorName(rc), 0);    return TCL_ERROR;  }  return TCL_OK;}/*** Usage:   btree_page_dump ID PAGENUM**** Print a disassembly of a page on standard output*/static int btree_page_dump(  void *NotUsed,  Tcl_Interp *interp,    /* The TCL interpreter that invoked this command */  int argc,              /* Number of arguments */  const char **argv      /* Text of each argument */){  Btree *pBt;  int iPage;  int rc;  if( argc!=3 ){    Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],       " ID\"", 0);    return TCL_ERROR;  }  if( Tcl_GetInt(interp, argv[1], (int*)&pBt) ) return TCL_ERROR;  if( Tcl_GetInt(interp, argv[2], &iPage) ) return TCL_ERROR;  rc = sqliteBtreePageDump(pBt, iPage, 0);  if( rc!=SQLITE_OK ){    Tcl_AppendResult(interp, errorName(rc), 0);    return TCL_ERROR;  }  return TCL_OK;}/*** Usage:   btree_tree_dump ID PAGENUM**** Print a disassembly of a page and all its child pages on standard output*/static int btree_tree_dump(  void *NotUsed,  Tcl_Interp *interp,    /* The TCL interpreter that invoked this command */  int argc,              /* Number of arguments */  const char **argv      /* Text of each argument */){  Btree *pBt;  int iPage;  int rc;  if( argc!=3 ){    Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],       " ID\"", 0);    return TCL_ERROR;  }  if( Tcl_GetInt(interp, argv[1], (int*)&pBt) ) return TCL_ERROR;  if( Tcl_GetInt(interp, argv[2], &iPage) ) return TCL_ERROR;  rc = sqliteBtreePageDump(pBt, iPage, 1);  if( rc!=SQLITE_OK ){    Tcl_AppendResult(interp, errorName(rc), 0);    return TCL_ERROR;  }  return TCL_OK;}/*** Usage:   btree_pager_stats ID**** Returns pager statistics*/static int btree_pager_stats(  void *NotUsed,  Tcl_Interp *interp,    /* The TCL interpreter that invoked this command */  int argc,              /* Number of arguments */  const char **argv      /* Text of each argument */){  Btree *pBt;  int i;  int *a;  if( argc!=2 ){    Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],       " ID\"", 0);    return TCL_ERROR;  }  if( Tcl_GetInt(interp, argv[1], (int*)&pBt) ) return TCL_ERROR;  a = sqlitepager_stats(sqliteBtreePager(pBt));  for(i=0; i<9; i++){    static char *zName[] = {      "ref", "page", "max", "size", "state", "err",      "hit", "miss", "ovfl",    };    char zBuf[100];    Tcl_AppendElement(interp, zName[i]);    sprintf(zBuf,"%d",a[i]);    Tcl_AppendElement(interp, zBuf);  }  return TCL_OK;}/*** Usage:   btree_pager_ref_dump ID**** Print out all outstanding pages.*/static int btree_pager_ref_dump(  void *NotUsed,  Tcl_Interp *interp,    /* The TCL interpreter that invoked this command */  int argc,              /* Number of arguments */  const char **argv      /* Text of each argument */){  Btree *pBt;  if( argc!=2 ){    Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],       " ID\"", 0);    return TCL_ERROR;  }  if( Tcl_GetInt(interp, argv[1], (int*)&pBt) ) return TCL_ERROR;  sqlitepager_refdump(sqliteBtreePager(pBt));  return TCL_OK;}/*** Usage:   btree_integrity_check ID ROOT ...**** Look through every page of the given BTree file to verify correct** formatting and linkage.  Return a line of text for each problem found.** Return an empty string if everything worked.*/static int btree_integrity_check(  void *NotUsed,  Tcl_Interp *interp,    /* The TCL interpreter that invoked this command */  int argc,              /* Number of arguments */  const char **argv      /* Text of each argument */){  Btree *pBt;  char *zResult;  int nRoot;  int *aRoot;  int i;  if( argc<3 ){    Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],       " ID ROOT ...\"", 0);    return TCL_ERROR;  }  if( Tcl_GetInt(interp, argv[1], (int*)&pBt) ) return TCL_ERROR;  nRoot = argc-2;  aRoot = malloc( sizeof(int)*(argc-2) );  for(i=0; i<argc-2; i++){    if( Tcl_GetInt(interp, argv[i+2], &aRoot[i]) ) return TCL_ERROR;  }  zResult = sqliteBtreeIntegrityCheck(pBt, aRoot, nRoot);  if( zResult ){

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩国产欧美三级| 精品国产成人在线影院| 国产成人免费9x9x人网站视频| 日韩在线一区二区三区| 五月天网站亚洲| 日本在线不卡视频一二三区| 成人激情开心网| 91在线无精精品入口| 91国内精品野花午夜精品| 欧洲色大大久久| 91精品在线一区二区| 精品免费日韩av| 国产精品嫩草久久久久| 一区二区三区在线视频免费观看| 午夜在线成人av| 黄一区二区三区| 成人午夜视频免费看| 在线视频国产一区| 国产精品嫩草影院com| 国产成人亚洲综合a∨婷婷| 91精品国产综合久久久久久久| 亚洲精品国产成人久久av盗摄| 日av在线不卡| 大美女一区二区三区| 日韩你懂的在线观看| 亚洲欧美色一区| 国内精品国产成人| 精品噜噜噜噜久久久久久久久试看 | 亚洲午夜久久久久久久久久久| 午夜婷婷国产麻豆精品| 色综合久久天天综合网| 精品国产髙清在线看国产毛片| 偷偷要91色婷婷| 欧美欧美午夜aⅴ在线观看| ww亚洲ww在线观看国产| 亚洲尤物视频在线| 国产精品一二二区| 欧美性一二三区| 国产精品无圣光一区二区| 国产精品99久久久久久有的能看 | 亚洲国产精品久久艾草纯爱| 色综合久久久久久久久久久| 亚洲精品国产一区二区精华液| aaa欧美色吧激情视频| 日韩一区二区三区在线观看| 亚洲欧美另类小说视频| 欧美性淫爽ww久久久久无| 亚洲国产日韩a在线播放 | 成人免费va视频| 亚洲日本一区二区三区| 国产盗摄一区二区| 中文字幕av一区二区三区| 久久精品国产久精国产| 欧美日韩不卡视频| 美女国产一区二区| 欧美剧情片在线观看| 亚洲人精品午夜| 欧美日韩一区不卡| 一区二区三区国产| 欧美一级xxx| 成人综合婷婷国产精品久久免费| 国产日韩精品一区二区三区| 国产专区欧美精品| 日韩毛片在线免费观看| 在线播放视频一区| 国产成a人无v码亚洲福利| 国产亚洲女人久久久久毛片| 国产中文一区二区三区| 日韩美女视频19| 欧美xxxx老人做受| 9久草视频在线视频精品| 天天影视网天天综合色在线播放| 久久人人97超碰com| 国产成人一区二区精品非洲| 亚洲免费在线观看视频| 精品入口麻豆88视频| 在线免费亚洲电影| 国产精品影视网| 日韩成人精品视频| 中文字幕亚洲欧美在线不卡| 99精品视频在线免费观看| 奇米影视一区二区三区| 最新热久久免费视频| 久久综合色一综合色88| 欧美日韩精品一区二区三区蜜桃 | 久久久www免费人成精品| 日本二三区不卡| 懂色av中文一区二区三区| 日韩av电影免费观看高清完整版在线观看| 欧美激情综合在线| 日韩欧美不卡在线观看视频| 在线观看一区不卡| 成人18精品视频| 国产二区国产一区在线观看| 天天做天天摸天天爽国产一区| 日韩理论在线观看| 欧美韩国日本不卡| 26uuu国产在线精品一区二区| 欧美美女直播网站| 在线观看国产日韩| 99麻豆久久久国产精品免费优播| 精品中文字幕一区二区| 国产精品国产三级国产aⅴ中文| 日本乱人伦aⅴ精品| 成人av在线资源网站| 精品在线视频一区| 久久精品国内一区二区三区| 日日摸夜夜添夜夜添国产精品 | 国产成人自拍网| 久久丁香综合五月国产三级网站| 亚洲国产成人porn| 亚洲资源中文字幕| 亚洲成人动漫在线观看| 亚洲国产精品人人做人人爽| 亚洲韩国一区二区三区| 午夜精品免费在线| 图片区小说区区亚洲影院| 午夜精品影院在线观看| 天天av天天翘天天综合网| 亚洲图片自拍偷拍| 日韩极品在线观看| 蜜桃久久av一区| 久久电影国产免费久久电影| 久久国产乱子精品免费女| 国产在线播精品第三| 亚洲一区二区三区四区不卡| 亚洲第一主播视频| 日韩av电影一区| 国产麻豆午夜三级精品| 国产成人亚洲综合a∨猫咪| 国产91对白在线观看九色| av中文字幕一区| 欧美三级日韩在线| 欧美一卡二卡在线| 欧美网站大全在线观看| 欧美一区二区私人影院日本| 精品国产乱码久久| 国产精品久线观看视频| 亚洲国产精品久久久久秋霞影院| 石原莉奈一区二区三区在线观看| 美国十次综合导航| 成人午夜视频福利| 日本韩国欧美在线| 欧美一级二级在线观看| 国产免费成人在线视频| 亚洲色图欧洲色图| 免费一区二区视频| 成人黄色一级视频| 欧美精品一二三四| 国产视频一区二区在线观看| 一区二区久久久久| 另类小说一区二区三区| 91丨九色丨蝌蚪富婆spa| 成人国产精品免费观看| 欧美日韩美女一区二区| 久久中文字幕电影| 亚洲国产成人porn| 国产a精品视频| 欧美电影一区二区三区| 欧美国产日本视频| 亚洲成人免费av| 成人av影院在线| 日韩视频不卡中文| 玉米视频成人免费看| 国产风韵犹存在线视精品| 欧美色精品在线视频| 1024精品合集| 国产乱码精品一区二区三区忘忧草 | 日韩一区二区在线观看视频| 亚洲视频免费在线| 国产福利精品一区二区| 91精品国产综合久久精品麻豆| 中文字幕人成不卡一区| 国产一区二区三区免费看| 欧美片网站yy| 一区二区三区 在线观看视频| 国产精品亚洲一区二区三区妖精| 91精品国产麻豆国产自产在线| 国产精品久久久一本精品| 激情亚洲综合在线| 欧美一卡二卡在线| 亚洲成人自拍网| 在线亚洲一区观看| 亚洲色欲色欲www在线观看| 粉嫩13p一区二区三区| 精品国产99国产精品| 日本不卡视频在线观看| 欧美精品丝袜中出| 亚洲成在线观看| 欧美日韩国产系列| 一区二区在线观看av| 99久久久免费精品国产一区二区 | 风间由美性色一区二区三区| 欧美不卡激情三级在线观看| 麻豆高清免费国产一区| 日韩色视频在线观看| 美美哒免费高清在线观看视频一区二区| 欧美日韩国产a| 午夜不卡av在线| 欧美一区二区三区四区在线观看|