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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? shell.c

?? 一個小型嵌入式數(shù)據(jù)庫SQLite的源碼,C語言
?? C
?? 第 1 頁 / 共 4 頁
字號:
    }else{      int i;      for(i=1; i<nArg; i++){        zShellStatic = azArg[i];        run_schema_dump_query(p,          "SELECT name, type, sql FROM sqlite_master "          "WHERE tbl_name LIKE shellstatic() AND type=='table'"          "  AND rootpage!=0 AND sql NOT NULL", 0);        run_schema_dump_query(p,          "SELECT name, type, sql FROM sqlite_master "          "WHERE tbl_name LIKE shellstatic() AND type!='table'"          "  AND type!='meta' AND sql NOT NULL", 0);        run_table_dump_query(p->out, p->db,          "SELECT sql FROM sqlite_master "          "WHERE sql NOT NULL AND rootpage==0 AND type='table'"          "  AND tbl_name LIKE shellstatic()"        );        zShellStatic = 0;      }    }    if( zErrMsg ){      fprintf(stderr,"Error: %s\n", zErrMsg);      sqlite3_free(zErrMsg);    }else{      fprintf(p->out, "COMMIT;\n");    }  }else  if( c=='e' && strncmp(azArg[0], "echo", n)==0 && nArg>1 ){    int j;    char *z = azArg[1];    int val = atoi(azArg[1]);    for(j=0; z[j]; j++){      z[j] = tolower((unsigned char)z[j]);    }    if( strcmp(z,"on")==0 ){      val = 1;    }else if( strcmp(z,"yes")==0 ){      val = 1;    }    p->echoOn = val;  }else  if( c=='e' && strncmp(azArg[0], "exit", n)==0 ){    rc = 1;  }else  if( c=='e' && strncmp(azArg[0], "explain", n)==0 ){    int j;    static char zOne[] = "1";    char *z = nArg>=2 ? azArg[1] : zOne;    int val = atoi(z);    for(j=0; z[j]; j++){      z[j] = tolower((unsigned char)z[j]);    }    if( strcmp(z,"on")==0 ){      val = 1;    }else if( strcmp(z,"yes")==0 ){      val = 1;    }    if(val == 1) {      if(!p->explainPrev.valid) {        p->explainPrev.valid = 1;        p->explainPrev.mode = p->mode;        p->explainPrev.showHeader = p->showHeader;        memcpy(p->explainPrev.colWidth,p->colWidth,sizeof(p->colWidth));      }      /* We could put this code under the !p->explainValid      ** condition so that it does not execute if we are already in      ** explain mode. However, always executing it allows us an easy      ** was to reset to explain mode in case the user previously      ** did an .explain followed by a .width, .mode or .header      ** command.      */      p->mode = MODE_Column;      p->showHeader = 1;      memset(p->colWidth,0,ArraySize(p->colWidth));      p->colWidth[0] = 4;      p->colWidth[1] = 14;      p->colWidth[2] = 10;      p->colWidth[3] = 10;      p->colWidth[4] = 33;    }else if (p->explainPrev.valid) {      p->explainPrev.valid = 0;      p->mode = p->explainPrev.mode;      p->showHeader = p->explainPrev.showHeader;      memcpy(p->colWidth,p->explainPrev.colWidth,sizeof(p->colWidth));    }  }else  if( c=='h' && (strncmp(azArg[0], "header", n)==0                 ||                 strncmp(azArg[0], "headers", n)==0 )&& nArg>1 ){    int j;    char *z = azArg[1];    int val = atoi(azArg[1]);    for(j=0; z[j]; j++){      z[j] = tolower((unsigned char)z[j]);    }    if( strcmp(z,"on")==0 ){      val = 1;    }else if( strcmp(z,"yes")==0 ){      val = 1;    }    p->showHeader = val;  }else  if( c=='h' && strncmp(azArg[0], "help", n)==0 ){    fprintf(stderr,zHelp);  }else  if( c=='i' && strncmp(azArg[0], "import", n)==0 && nArg>=3 ){    char *zTable = azArg[2];    /* Insert data into this table */    char *zFile = azArg[1];     /* The file from which to extract data */    sqlite3_stmt *pStmt;        /* A statement */    int rc;                     /* Result code */    int nCol;                   /* Number of columns in the table */    int nByte;                  /* Number of bytes in an SQL string */    int i, j;                   /* Loop counters */    int nSep;                   /* Number of bytes in p->separator[] */    char *zSql;                 /* An SQL statement */    char *zLine;                /* A single line of input from the file */    char **azCol;               /* zLine[] broken up into columns */    char *zCommit;              /* How to commit changes */       FILE *in;                   /* The input file */    int lineno = 0;             /* Line number of input file */    open_db(p);    nSep = strlen(p->separator);    if( nSep==0 ){      fprintf(stderr, "non-null separator required for import\n");      return 0;    }    zSql = sqlite3_mprintf("SELECT * FROM '%q'", zTable);    if( zSql==0 ) return 0;    nByte = strlen(zSql);    rc = sqlite3_prepare(p->db, zSql, -1, &pStmt, 0);    sqlite3_free(zSql);    if( rc ){      fprintf(stderr,"Error: %s\n", sqlite3_errmsg(db));      nCol = 0;    }else{      nCol = sqlite3_column_count(pStmt);    }    sqlite3_finalize(pStmt);    if( nCol==0 ) return 0;    zSql = malloc( nByte + 20 + nCol*2 );    if( zSql==0 ) return 0;    sqlite3_snprintf(nByte+20, zSql, "INSERT INTO '%q' VALUES(?", zTable);    j = strlen(zSql);    for(i=1; i<nCol; i++){      zSql[j++] = ',';      zSql[j++] = '?';    }    zSql[j++] = ')';    zSql[j] = 0;    rc = sqlite3_prepare(p->db, zSql, -1, &pStmt, 0);    free(zSql);    if( rc ){      fprintf(stderr, "Error: %s\n", sqlite3_errmsg(db));      sqlite3_finalize(pStmt);      return 0;    }    in = fopen(zFile, "rb");    if( in==0 ){      fprintf(stderr, "cannot open file: %s\n", zFile);      sqlite3_finalize(pStmt);      return 0;    }    azCol = malloc( sizeof(azCol[0])*(nCol+1) );    if( azCol==0 ){      fclose(in);      return 0;    }    sqlite3_exec(p->db, "BEGIN", 0, 0, 0);    zCommit = "COMMIT";    while( (zLine = local_getline(0, in))!=0 ){      char *z;      i = 0;      lineno++;      azCol[0] = zLine;      for(i=0, z=zLine; *z && *z!='\n' && *z!='\r'; z++){        if( *z==p->separator[0] && strncmp(z, p->separator, nSep)==0 ){          *z = 0;          i++;          if( i<nCol ){            azCol[i] = &z[nSep];            z += nSep-1;          }        }      }      *z = 0;      if( i+1!=nCol ){        fprintf(stderr,"%s line %d: expected %d columns of data but found %d\n",           zFile, lineno, nCol, i+1);        zCommit = "ROLLBACK";        break;      }      for(i=0; i<nCol; i++){        sqlite3_bind_text(pStmt, i+1, azCol[i], -1, SQLITE_STATIC);      }      sqlite3_step(pStmt);      rc = sqlite3_reset(pStmt);      free(zLine);      if( rc!=SQLITE_OK ){        fprintf(stderr,"Error: %s\n", sqlite3_errmsg(db));        zCommit = "ROLLBACK";        break;      }    }    free(azCol);    fclose(in);    sqlite3_finalize(pStmt);    sqlite3_exec(p->db, zCommit, 0, 0, 0);  }else  if( c=='i' && strncmp(azArg[0], "indices", n)==0 && nArg>1 ){    struct callback_data data;    char *zErrMsg = 0;    open_db(p);    memcpy(&data, p, sizeof(data));    data.showHeader = 0;    data.mode = MODE_List;    zShellStatic = azArg[1];    sqlite3_exec(p->db,      "SELECT name FROM sqlite_master "      "WHERE type='index' AND tbl_name LIKE shellstatic() "      "UNION ALL "      "SELECT name FROM sqlite_temp_master "      "WHERE type='index' AND tbl_name LIKE shellstatic() "      "ORDER BY 1",      callback, &data, &zErrMsg    );    zShellStatic = 0;    if( zErrMsg ){      fprintf(stderr,"Error: %s\n", zErrMsg);      sqlite3_free(zErrMsg);    }  }else#ifndef SQLITE_OMIT_LOAD_EXTENSION  if( c=='l' && strncmp(azArg[0], "load", n)==0 && nArg>=2 ){    const char *zFile, *zProc;    char *zErrMsg = 0;    int rc;    zFile = azArg[1];    zProc = nArg>=3 ? azArg[2] : 0;    open_db(p);    rc = sqlite3_load_extension(p->db, zFile, zProc, &zErrMsg);    if( rc!=SQLITE_OK ){      fprintf(stderr, "%s\n", zErrMsg);      sqlite3_free(zErrMsg);    }  }else#endif  if( c=='m' && strncmp(azArg[0], "mode", n)==0 && nArg>=2 ){    int n2 = strlen(azArg[1]);    if( strncmp(azArg[1],"line",n2)==0        ||        strncmp(azArg[1],"lines",n2)==0 ){      p->mode = MODE_Line;    }else if( strncmp(azArg[1],"column",n2)==0              ||              strncmp(azArg[1],"columns",n2)==0 ){      p->mode = MODE_Column;    }else if( strncmp(azArg[1],"list",n2)==0 ){      p->mode = MODE_List;    }else if( strncmp(azArg[1],"html",n2)==0 ){      p->mode = MODE_Html;    }else if( strncmp(azArg[1],"tcl",n2)==0 ){      p->mode = MODE_Tcl;    }else if( strncmp(azArg[1],"csv",n2)==0 ){      p->mode = MODE_Csv;      strcpy(p->separator, ",");    }else if( strncmp(azArg[1],"tabs",n2)==0 ){      p->mode = MODE_List;      strcpy(p->separator, "\t");    }else if( strncmp(azArg[1],"insert",n2)==0 ){      p->mode = MODE_Insert;      if( nArg>=3 ){        set_table_name(p, azArg[2]);      }else{        set_table_name(p, "table");      }    }else {      fprintf(stderr,"mode should be on of: "         "column csv html insert line list tabs tcl\n");    }  }else  if( c=='n' && strncmp(azArg[0], "nullvalue", n)==0 && nArg==2 ) {    sprintf(p->nullvalue, "%.*s", (int)ArraySize(p->nullvalue)-1, azArg[1]);  }else  if( c=='o' && strncmp(azArg[0], "output", n)==0 && nArg==2 ){    if( p->out!=stdout ){      fclose(p->out);    }    if( strcmp(azArg[1],"stdout")==0 ){      p->out = stdout;      strcpy(p->outfile,"stdout");    }else{      p->out = fopen(azArg[1], "wb");      if( p->out==0 ){        fprintf(stderr,"can't write to \"%s\"\n", azArg[1]);        p->out = stdout;      } else {         strcpy(p->outfile,azArg[1]);      }    }  }else  if( c=='p' && strncmp(azArg[0], "prompt", n)==0 && (nArg==2 || nArg==3)){    if( nArg >= 2) {      strncpy(mainPrompt,azArg[1],(int)ArraySize(mainPrompt)-1);    }    if( nArg >= 3) {      strncpy(continuePrompt,azArg[2],(int)ArraySize(continuePrompt)-1);    }  }else  if( c=='q' && strncmp(azArg[0], "quit", n)==0 ){    rc = 1;  }else  if( c=='r' && strncmp(azArg[0], "read", n)==0 && nArg==2 ){    FILE *alt = fopen(azArg[1], "rb");    if( alt==0 ){      fprintf(stderr,"can't open \"%s\"\n", azArg[1]);    }else{      process_input(p, alt);      fclose(alt);    }  }else  if( c=='s' && strncmp(azArg[0], "schema", n)==0 ){    struct callback_data data;    char *zErrMsg = 0;    open_db(p);    memcpy(&data, p, sizeof(data));    data.showHeader = 0;    data.mode = MODE_Semi;    if( nArg>1 ){      int i;      for(i=0; azArg[1][i]; i++) azArg[1][i] = tolower(azArg[1][i]);      if( strcmp(azArg[1],"sqlite_master")==0 ){        char *new_argv[2], *new_colv[2];        new_argv[0] = "CREATE TABLE sqlite_master (\n"                      "  type text,\n"                      "  name text,\n"                      "  tbl_name text,\n"                      "  rootpage integer,\n"                      "  sql text\n"                      ")";        new_argv[1] = 0;        new_colv[0] = "sql";        new_colv[1] = 0;        callback(&data, 1, new_argv, new_colv);      }else if( strcmp(azArg[1],"sqlite_temp_master")==0 ){        char *new_argv[2], *new_colv[2];        new_argv[0] = "CREATE TEMP TABLE sqlite_temp_master (\n"                      "  type text,\n"                      "  name text,\n"                      "  tbl_name text,\n"                      "  rootpage integer,\n"                      "  sql text\n"                      ")";        new_argv[1] = 0;        new_colv[0] = "sql";        new_colv[1] = 0;        callback(&data, 1, new_argv, new_colv);      }else{        zShellStatic = azArg[1];        sqlite3_exec(p->db,          "SELECT sql FROM "          "  (SELECT * FROM sqlite_master UNION ALL"          "   SELECT * FROM sqlite_temp_master) "          "WHERE tbl_name LIKE shellstatic() AND type!='meta' AND sql NOTNULL "          "ORDER BY substr(type,2,1), name",          callback, &data, &zErrMsg);        zShellStatic = 0;      }    }else{      sqlite3_exec(p->db,         "SELECT sql FROM "         "  (SELECT * FROM sqlite_master UNION ALL"         "   SELECT * FROM sqlite_temp_master) "         "WHERE type!='meta' AND sql NOTNULL AND name NOT LIKE 'sqlite_%'"         "ORDER BY substr(type,2,1), name",         callback, &data, &zErrMsg      );    }    if( zErrMsg ){      fprintf(stderr,"Error: %s\n", zErrMsg);      sqlite3_free(zErrMsg);    }  }else  if( c=='s' && strncmp(azArg[0], "separator", n)==0 && nArg==2 ){    sprintf(p->separator, "%.*s", (int)ArraySize(p->separator)-1, azArg[1]);  }else  if( c=='s' && strncmp(azArg[0], "show", n)==0){    int i;    fprintf(p->out,"%9.9s: %s\n","echo", p->echoOn ? "on" : "off");    fprintf(p->out,"%9.9s: %s\n","explain", p->explainPrev.valid ? "on" :"off");    fprintf(p->out,"%9.9s: %s\n","headers", p->showHeader ? "on" : "off");    fprintf(p->out,"%9.9s: %s\n","mode", modeDescr[p->mode]);    fprintf(p->out,"%9.9s: ", "nullvalue");      output_c_string(p->out, p->nullvalue);      fprintf(p->out, "\n");    fprintf(p->out,"%9.9s: %s\n","output",                                 strlen(p->outfile) ? p->outfile : "stdout");    fprintf(p->out,"%9.9s: ", "separator");      output_c_string(p->out, p->separator);      fprintf(p->out, "\n");    fprintf(p->out,"%9.9s: ","width");    for (i=0;i<(int)ArraySize(p->colWidth) && p->colWidth[i] != 0;i++) {      fprintf(p->out,"%d ",p->colWidth[i]);    }    fprintf(p->out,"\n");  }else  if( c=='t' && n>1 && strncmp(azArg[0], "tables", n)==0 ){    char **azResult;    int nRow, rc;    char *zErrMsg;    open_db(p);    if( nArg==1 ){      rc = sqlite3_get_table(p->db,        "SELECT name FROM sqlite_master "        "WHERE type IN ('table','view') AND name NOT LIKE 'sqlite_%'"        "UNION ALL "        "SELECT name FROM sqlite_temp_master "        "WHERE type IN ('table','view') "        "ORDER BY 1",        &azResult, &nRow, 0, &zErrMsg      );    }else{      zShellStatic = azArg[1];      rc = sqlite3_get_table(p->db,        "SELECT name FROM sqlite_master "        "WHERE type IN ('table','view') AND name LIKE '%'||shellstatic()||'%' "        "UNION ALL "        "SELECT name FROM sqlite_temp_master "        "WHERE type IN ('table','view') AND name LIKE '%'||shellstatic()||'%' "        "ORDER BY 1",        &azResult, &nRow, 0, &zErrMsg      );      zShellStatic = 0;    }    if( zErrMsg ){      fprintf(stderr,"Error: %s\n", zErrMsg);      sqlite3_free(zErrMsg);    }    if( rc==SQLITE_OK ){      int len, maxlen = 0;      int i, j;      int nPrintCol, nPrintRow;      for(i=1; i<=nRow; i++){        if( azResult[i]==0 ) continue;        len = strlen(azResult[i]);        if( len>maxlen ) maxlen = len;      }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品国产a级| 欧美一区二区性放荡片| 国产欧美久久久精品影院 | 日韩av一区二区三区四区| 欧美视频一区在线| 日韩电影在线免费观看| 欧美一级在线视频| 久久丁香综合五月国产三级网站| 日韩限制级电影在线观看| 日本不卡一二三区黄网| 久久久99久久| 91性感美女视频| 亚洲成人一区在线| 日韩欧美资源站| 欧美日韩精品一区二区天天拍小说 | 午夜不卡在线视频| 欧美老肥妇做.爰bbww视频| 五月激情综合网| 精品动漫一区二区三区在线观看| 国产精品亚洲成人| 亚洲嫩草精品久久| 欧美精品一二三| 国产一区亚洲一区| 国产精品久久久久久久久图文区 | 欧美日韩高清在线| 久久99国内精品| 国产精品美女久久久久aⅴ| 欧洲精品一区二区| 久久精品二区亚洲w码| 国产精品久久国产精麻豆99网站| 欧美色视频在线| 极品少妇一区二区| 中文字幕中文在线不卡住| 欧美三区免费完整视频在线观看| 美腿丝袜亚洲综合| 国产精品久久福利| 欧美一个色资源| 99精品视频一区二区| 免费在线看一区| 自拍偷拍亚洲欧美日韩| 91精品中文字幕一区二区三区| 国产成人在线免费观看| 一区二区三区在线观看动漫| 337p日本欧洲亚洲大胆色噜噜| 欧美中文字幕一区二区三区| 久久se精品一区二区| 亚洲视频免费在线| 精品粉嫩超白一线天av| 欧美偷拍一区二区| 国产成人精品免费| 热久久一区二区| 亚洲精品国产无套在线观| 久久精品无码一区二区三区| 欧美日韩精品三区| 色爱区综合激月婷婷| 成人精品一区二区三区中文字幕| 免费精品99久久国产综合精品| 亚洲欧洲韩国日本视频| 久久久午夜电影| 欧美一级二级在线观看| 欧洲另类一二三四区| 不卡的av电影| 国产一二精品视频| 久久av资源网| 久久97超碰色| 日本中文一区二区三区| 亚洲一区在线播放| 亚洲欧美色一区| 国产精品一区二区久久精品爱涩| 性做久久久久久| 亚洲欧洲日本在线| 欧美日韩国产a| 欧美老女人第四色| 色88888久久久久久影院按摩| 国产福利不卡视频| 日本网站在线观看一区二区三区| 亚洲欧美日韩国产综合| 久久精品日产第一区二区三区高清版| 欧美日韩精品欧美日韩精品一综合| 国产传媒久久文化传媒| 蜜芽一区二区三区| 亚洲国产日韩在线一区模特| 中文字幕 久热精品 视频在线 | 成人一区二区三区视频在线观看 | 精品夜夜嗨av一区二区三区| 亚洲一区二区不卡免费| 日本一区二区电影| 中文字幕亚洲不卡| 国产欧美一区视频| 久久久精品国产免大香伊| 欧美电影免费提供在线观看| 制服丝袜成人动漫| 欧美高清视频www夜色资源网| 一本到高清视频免费精品| 成人自拍视频在线| 成人网页在线观看| 国产精品系列在线播放| 激情成人午夜视频| 国产美女精品在线| 国产精品一区二区在线观看不卡 | 免费在线观看一区| 视频一区视频二区中文字幕| 婷婷中文字幕综合| 奇米777欧美一区二区| 秋霞成人午夜伦在线观看| 日本成人在线一区| 精品无码三级在线观看视频| 日韩va亚洲va欧美va久久| 国产精品影视网| 国产成人精品亚洲777人妖| 成人免费av网站| 91在线观看成人| 91九色02白丝porn| 欧美精品在线一区二区| 欧美一区二区三区视频在线| 日韩亚洲欧美在线| 欧美日韩成人在线一区| 91精品国产综合久久小美女| 精品剧情v国产在线观看在线| 久久男人中文字幕资源站| 26uuu国产一区二区三区| 亚洲免费在线视频| 波多野洁衣一区| 日本福利一区二区| 这里是久久伊人| 久久久亚洲精品一区二区三区| 日本一区二区三区四区在线视频| 国产精品久线在线观看| 亚洲男同1069视频| 韩国欧美国产一区| av一二三不卡影片| 欧美在线你懂的| 欧美大片拔萝卜| 中文字幕一区二区三区视频| 亚洲成人激情av| 国产高清在线精品| 欧美精品乱码久久久久久| 久久精品男人天堂av| 一区二区三区**美女毛片| 日本不卡不码高清免费观看| 国产suv精品一区二区883| 色婷婷久久一区二区三区麻豆| 精品区一区二区| 亚洲主播在线观看| 国产美女在线精品| 欧美男生操女生| 亚洲精品国产第一综合99久久| 久久精品国产亚洲高清剧情介绍| 97精品国产露脸对白| 日韩精品一区二区三区三区免费| 中文字幕综合网| 久久国产精品第一页| 一本久久精品一区二区| 欧美丰满少妇xxxxx高潮对白 | 色综合久久久久综合体桃花网| 欧美大片免费久久精品三p| 亚洲人成影院在线观看| 国产成人aaa| 欧美成人伊人久久综合网| 一区二区三区四区在线免费观看 | 国产精品白丝在线| 久久成人久久爱| 久久精品999| 欧美婷婷六月丁香综合色| 亚洲欧美国产高清| 国产99精品国产| 日韩欧美一级二级三级| 亚洲一区二区免费视频| 波多野结衣在线一区| 日韩一区二区三区视频在线| 亚洲欧美一区二区三区极速播放 | 一区二区三区不卡视频| 国产成人精品亚洲777人妖| 在线一区二区三区四区五区| 日本一区二区电影| 精品综合久久久久久8888| 91精品久久久久久蜜臀| 亚洲国产精品久久一线不卡| 色综合天天综合| 中文字幕一区二区三区视频| 成人在线综合网站| 久久久久久久久久久久电影| 喷水一区二区三区| 欧美日韩国产片| 亚洲国产aⅴ成人精品无吗| 色哟哟国产精品| 一色屋精品亚洲香蕉网站| 顶级嫩模精品视频在线看| 中文一区在线播放| 懂色一区二区三区免费观看| 亚洲国产精品自拍| 在线视频你懂得一区二区三区| 亚洲女与黑人做爰| 91国偷自产一区二区三区观看| 精品处破学生在线二十三| 日韩影院精彩在线| 欧美一区二区三区影视| 日本不卡一区二区| 欧美成人精品3d动漫h| 久久国产麻豆精品|