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

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

?? test1.c

?? sqlite庫
?? C
?? 第 1 頁 / 共 5 頁
字號:
};/*** Append text to a dstr*/static void dstrAppend(struct dstr *p, const char *z, int divider){  int n = strlen(z);  if( p->nUsed + n + 2 > p->nAlloc ){    char *zNew;    p->nAlloc = p->nAlloc*2 + n + 200;    zNew = sqliteRealloc(p->z, p->nAlloc);    if( zNew==0 ){      sqliteFree(p->z);      memset(p, 0, sizeof(*p));      return;    }    p->z = zNew;  }  if( divider && p->nUsed>0 ){    p->z[p->nUsed++] = divider;  }  memcpy(&p->z[p->nUsed], z, n+1);  p->nUsed += n;}/*** Invoked for each callback from sqlite3ExecFunc*/static int execFuncCallback(void *pData, int argc, char **argv, char **NotUsed){  struct dstr *p = (struct dstr*)pData;  int i;  for(i=0; i<argc; i++){    if( argv[i]==0 ){      dstrAppend(p, "NULL", ' ');    }else{      dstrAppend(p, argv[i], ' ');    }  }  return 0;}/*** Implementation of the x_sqlite_exec() function.  This function takes** a single argument and attempts to execute that argument as SQL code.** This is illegal and should set the SQLITE_MISUSE flag on the database.**** 2004-Jan-07:  We have changed this to make it legal to call sqlite3_exec()** from within a function call.  ** ** This routine simulates the effect of having two threads attempt to** use the same database at the same time.*/static void sqlite3ExecFunc(  sqlite3_context *context,   int argc,    sqlite3_value **argv){  struct dstr x;  memset(&x, 0, sizeof(x));  (void)sqlite3_exec((sqlite3*)sqlite3_user_data(context),      (char*)sqlite3_value_text(argv[0]),      execFuncCallback, &x, 0);  sqlite3_result_text(context, x.z, x.nUsed, SQLITE_TRANSIENT);  sqliteFree(x.z);}/*** Usage:  sqlite_test_create_function DB**** Call the sqlite3_create_function API on the given database in order** to create a function named "x_coalesce".  This function does the same thing** as the "coalesce" function.  This function also registers an SQL function** named "x_sqlite_exec" that invokes sqlite3_exec().  Invoking sqlite3_exec()** in this way is illegal recursion and should raise an SQLITE_MISUSE error.** The effect is similar to trying to use the same database connection from** two threads at the same time.**** The original motivation for this routine was to be able to call the** sqlite3_create_function function while a query is in progress in order** to test the SQLITE_MISUSE detection logic.*/static int test_create_function(  void *NotUsed,  Tcl_Interp *interp,    /* The TCL interpreter that invoked this command */  int argc,              /* Number of arguments */  char **argv            /* Text of each argument */){  int rc;  sqlite3 *db;  extern void Md5_Register(sqlite3*);  if( argc!=2 ){    Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],       " DB\"", 0);    return TCL_ERROR;  }  if( getDbPointer(interp, argv[1], &db) ) return TCL_ERROR;  rc = sqlite3_create_function(db, "x_coalesce", -1, SQLITE_ANY, 0,         ifnullFunc, 0, 0);#ifndef SQLITE_OMIT_UTF16  /* Use the sqlite3_create_function16() API here. Mainly for fun, but also   ** because it is not tested anywhere else. */  if( rc==SQLITE_OK ){    sqlite3_value *pVal;#ifdef SQLITE_MEMDEBUG    if( sqlite3_iMallocFail>0 ){      sqlite3_iMallocFail++;    }#endif     pVal = sqlite3ValueNew();    sqlite3ValueSetStr(pVal, -1, "x_sqlite_exec", SQLITE_UTF8, SQLITE_STATIC);    rc = sqlite3_create_function16(db,               sqlite3ValueText(pVal, SQLITE_UTF16NATIVE),              1, SQLITE_UTF16, db, sqlite3ExecFunc, 0, 0);    sqlite3ValueFree(pVal);  }#endif  if( sqlite3TestErrCode(interp, db, rc) ) return TCL_ERROR;  Tcl_SetResult(interp, (char *)errorName(rc), 0);  return TCL_OK;}/*** Routines to implement the x_count() aggregate function.**** x_count() counts the number of non-null arguments.  But there are** some twists for testing purposes.**** If the argument to x_count() is 40 then a UTF-8 error is reported** on the step function.  If x_count(41) is seen, then a UTF-16 error** is reported on the step function.  If the total count is 42, then** a UTF-8 error is reported on the finalize function.*/typedef struct CountCtx CountCtx;struct CountCtx {  int n;};static void countStep(sqlite3_context *context, int argc, sqlite3_value **argv){  CountCtx *p;  p = sqlite3_aggregate_context(context, sizeof(*p));  if( (argc==0 || SQLITE_NULL!=sqlite3_value_type(argv[0]) ) && p ){    p->n++;  }  if( argc>0 ){    int v = sqlite3_value_int(argv[0]);    if( v==40 ){      sqlite3_result_error(context, "value of 40 handed to x_count", -1);#ifndef SQLITE_OMIT_UTF16    }else if( v==41 ){      const char zUtf16ErrMsg[] = { 0, 0x61, 0, 0x62, 0, 0x63, 0, 0, 0};      sqlite3_result_error16(context, &zUtf16ErrMsg[1-SQLITE_BIGENDIAN], -1);#endif    }  }}   static void countFinalize(sqlite3_context *context){  CountCtx *p;  p = sqlite3_aggregate_context(context, sizeof(*p));  if( p ){    if( p->n==42 ){      sqlite3_result_error(context, "x_count totals to 42", -1);    }else{      sqlite3_result_int(context, p ? p->n : 0);    }  }}/*** Usage:  sqlite_test_create_aggregate DB**** Call the sqlite3_create_function API on the given database in order** to create a function named "x_count".  This function does the same thing** as the "md5sum" function.**** The original motivation for this routine was to be able to call the** sqlite3_create_aggregate function while a query is in progress in order** to test the SQLITE_MISUSE detection logic.  See misuse.test.**** This routine was later extended to test the use of sqlite3_result_error()** within aggregate functions.*/static int test_create_aggregate(  void *NotUsed,  Tcl_Interp *interp,    /* The TCL interpreter that invoked this command */  int argc,              /* Number of arguments */  char **argv            /* Text of each argument */){  sqlite3 *db;  int rc;  if( argc!=2 ){    Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],       " FILENAME\"", 0);    return TCL_ERROR;  }  if( getDbPointer(interp, argv[1], &db) ) return TCL_ERROR;  rc = sqlite3_create_function(db, "x_count", 0, SQLITE_UTF8, 0, 0,      countStep,countFinalize);  if( rc==SQLITE_OK ){    sqlite3_create_function(db, "x_count", 1, SQLITE_UTF8, 0, 0,        countStep,countFinalize);  }  if( sqlite3TestErrCode(interp, db, rc) ) return TCL_ERROR;  return TCL_OK;}/*** Usage:  sqlite3_mprintf_int FORMAT INTEGER INTEGER INTEGER**** Call mprintf with three integer arguments*/static int sqlite3_mprintf_int(  void *NotUsed,  Tcl_Interp *interp,    /* The TCL interpreter that invoked this command */  int argc,              /* Number of arguments */  char **argv            /* Text of each argument */){  int a[3], i;  char *z;  if( argc!=5 ){    Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],       " FORMAT INT INT INT\"", 0);    return TCL_ERROR;  }  for(i=2; i<5; i++){    if( Tcl_GetInt(interp, argv[i], &a[i-2]) ) return TCL_ERROR;  }  z = sqlite3_mprintf(argv[1], a[0], a[1], a[2]);  Tcl_AppendResult(interp, z, 0);  sqlite3_free(z);  return TCL_OK;}/*** If zNum represents an integer that will fit in 64-bits, then set** *pValue to that integer and return true.  Otherwise return false.*/static int sqlite3GetInt64(const char *zNum, i64 *pValue){  if( sqlite3FitsIn64Bits(zNum) ){    sqlite3atoi64(zNum, pValue);    return 1;  }  return 0;}/*** Usage:  sqlite3_mprintf_int64 FORMAT INTEGER INTEGER INTEGER**** Call mprintf with three 64-bit integer arguments*/static int sqlite3_mprintf_int64(  void *NotUsed,  Tcl_Interp *interp,    /* The TCL interpreter that invoked this command */  int argc,              /* Number of arguments */  char **argv            /* Text of each argument */){  int i;  sqlite_int64 a[3];  char *z;  if( argc!=5 ){    Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],       " FORMAT INT INT INT\"", 0);    return TCL_ERROR;  }  for(i=2; i<5; i++){    if( !sqlite3GetInt64(argv[i], &a[i-2]) ){      Tcl_AppendResult(interp, "argument is not a valid 64-bit integer", 0);      return TCL_ERROR;    }  }  z = sqlite3_mprintf(argv[1], a[0], a[1], a[2]);  Tcl_AppendResult(interp, z, 0);  sqlite3_free(z);  return TCL_OK;}/*** Usage:  sqlite3_mprintf_str FORMAT INTEGER INTEGER STRING**** Call mprintf with two integer arguments and one string argument*/static int sqlite3_mprintf_str(  void *NotUsed,  Tcl_Interp *interp,    /* The TCL interpreter that invoked this command */  int argc,              /* Number of arguments */  char **argv            /* Text of each argument */){  int a[3], i;  char *z;  if( argc<4 || argc>5 ){    Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],       " FORMAT INT INT ?STRING?\"", 0);    return TCL_ERROR;  }  for(i=2; i<4; i++){    if( Tcl_GetInt(interp, argv[i], &a[i-2]) ) return TCL_ERROR;  }  z = sqlite3_mprintf(argv[1], a[0], a[1], argc>4 ? argv[4] : NULL);  Tcl_AppendResult(interp, z, 0);  sqlite3_free(z);  return TCL_OK;}/*** Usage:  sqlite3_mprintf_double FORMAT INTEGER INTEGER DOUBLE**** Call mprintf with two integer arguments and one double argument*/static int sqlite3_mprintf_double(  void *NotUsed,  Tcl_Interp *interp,    /* The TCL interpreter that invoked this command */  int argc,              /* Number of arguments */  char **argv            /* Text of each argument */){  int a[3], i;  double r;  char *z;  if( argc!=5 ){    Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],       " FORMAT INT INT DOUBLE\"", 0);    return TCL_ERROR;  }  for(i=2; i<4; i++){    if( Tcl_GetInt(interp, argv[i], &a[i-2]) ) return TCL_ERROR;  }  if( Tcl_GetDouble(interp, argv[4], &r) ) return TCL_ERROR;  z = sqlite3_mprintf(argv[1], a[0], a[1], r);  Tcl_AppendResult(interp, z, 0);  sqlite3_free(z);  return TCL_OK;}/*** Usage:  sqlite3_mprintf_scaled FORMAT DOUBLE DOUBLE**** Call mprintf with a single double argument which is the product of the** two arguments given above.  This is used to generate overflow and underflow** doubles to test that they are converted properly.*/static int sqlite3_mprintf_scaled(  void *NotUsed,  Tcl_Interp *interp,    /* The TCL interpreter that invoked this command */  int argc,              /* Number of arguments */  char **argv            /* Text of each argument */){  int i;  double r[2];  char *z;  if( argc!=4 ){    Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],       " FORMAT DOUBLE DOUBLE\"", 0);    return TCL_ERROR;  }  for(i=2; i<4; i++){    if( Tcl_GetDouble(interp, argv[i], &r[i-2]) ) return TCL_ERROR;  }  z = sqlite3_mprintf(argv[1], r[0]*r[1]);  Tcl_AppendResult(interp, z, 0);  sqlite3_free(z);  return TCL_OK;}/*** Usage:  sqlite3_mprintf_stronly FORMAT STRING**** Call mprintf with a single double argument which is the product of the** two arguments given above.  This is used to generate overflow and underflow** doubles to test that they are converted properly.*/static int sqlite3_mprintf_stronly(  void *NotUsed,  Tcl_Interp *interp,    /* The TCL interpreter that invoked this command */  int argc,              /* Number of arguments */  char **argv            /* Text of each argument */){  char *z;  if( argc!=3 ){    Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],       " FORMAT STRING\"", 0);    return TCL_ERROR;  }  z = sqlite3_mprintf(argv[1], argv[2]);  Tcl_AppendResult(interp, z, 0);  sqlite3_free(z);  return TCL_OK;}/*** Usage:  sqlite3_mprintf_hexdouble FORMAT HEX**** Call mprintf with a single double argument which is derived from the** hexadecimal encoding of an IEEE double.*/static int sqlite3_mprintf_hexdouble(  void *NotUsed,  Tcl_Interp *interp,    /* The TCL interpreter that invoked this command */  int argc,              /* Number of arguments */  char **argv            /* Text of each argument */){  char *z;  double r;  unsigned  x1, x2;  long long unsigned d;  if( argc!=3 ){    Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],       " FORMAT STRING\"", 0);    return TCL_ERROR;  }  if( sscanf(argv[2], "%08x%08x", &x2, &x1)!=2 ){    Tcl_AppendResult(interp, "2nd argument should be 16-characters of hex", 0);    return TCL_ERROR;  }  d = x2;  d = (d<<32) + x1;  memcpy(&r, &d, sizeof(r));  z = sqlite3_mprintf(argv[1], r);  Tcl_AppendResult(interp, z, 0);  sqlite3_free(z);  return TCL_OK;}/*** Usage: sqlite_malloc_fail N  ?REPEAT-INTERVAL?**** Rig sqliteMalloc() to fail on the N-th call and every REPEAT-INTERVAL call** after that.  If REPEAT-INTERVAL is 0 or is omitted, then only a single** malloc will fail.  If REPEAT-INTERVAL is 1 then all mallocs after the** first failure will continue to fail on every call.  If REPEAT-INTERVAL is** 2 then every other malloc will fail.  And so forth.**** Turn off this mechanism and reset the sqlite3ThreadData()->mallocFailed ** variable if N==0.*/#ifdef SQLITE_MEMDEBUGstatic int sqlite_malloc_fail(  void *NotUsed,  Tcl_Interp *interp,    /* The TCL interpreter that invoked this command */  int argc,              /* Number of arguments */  char **argv            /* Text of each argument */){  int n;  int rep;  if( argc!=2 && argc!=3 ){    Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0], " N\"", 0);    return TCL_ERROR;  }  if( Tcl_GetInt(interp, argv[1], &n) ) return TCL_ERROR;  if( argc==3 ){

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
www成人在线观看| 久久久久一区二区三区四区| 久久爱www久久做| 亚洲日本一区二区| 91精品啪在线观看国产60岁| 99精品在线免费| 久久99国产精品久久| 午夜精品久久久久影视| 亚洲人成影院在线观看| 久久精品一区二区| 日韩三级中文字幕| 欧美日韩午夜在线| 成人黄色一级视频| 国产精品一区二区三区99| 日韩va欧美va亚洲va久久| 亚洲免费观看高清完整版在线观看 | 欧美日本一道本在线视频| 成人avav影音| 国产盗摄视频一区二区三区| 久久不见久久见中文字幕免费| 午夜av一区二区| 一区二区三区四区视频精品免费| 国产精品久久一卡二卡| 久久久午夜精品理论片中文字幕| 日韩视频免费直播| 制服丝袜一区二区三区| 欧美午夜宅男影院| 91福利精品视频| 91国产福利在线| 欧美性生活影院| av电影在线不卡| 91小宝寻花一区二区三区| 成人综合婷婷国产精品久久蜜臀| 国产麻豆视频精品| 韩国女主播成人在线| 国产综合色视频| 国产精品综合一区二区三区| 国产一区二区按摩在线观看| 国产在线精品一区二区夜色| 韩日欧美一区二区三区| 精品一区二区免费| 国产一区不卡在线| 国产.欧美.日韩| 不卡的电视剧免费网站有什么| 成人黄色电影在线| 91视频精品在这里| 色爱区综合激月婷婷| 欧美三级视频在线观看| 在线成人免费观看| 欧美成人一区二区三区片免费 | 91成人国产精品| 欧美日韩视频在线观看一区二区三区 | 久久99精品一区二区三区| 精品一区二区久久| 处破女av一区二区| 99re成人精品视频| 欧美日韩免费不卡视频一区二区三区 | 国产很黄免费观看久久| caoporm超碰国产精品| 91久久精品一区二区三| 欧美放荡的少妇| 久久久久久久性| 国产精品天美传媒沈樵| 亚洲综合清纯丝袜自拍| 蜜桃久久精品一区二区| 国产精品1区2区| 色天使久久综合网天天| 日韩欧美专区在线| 国产精品视频免费| 亚洲丶国产丶欧美一区二区三区| 蜜臀国产一区二区三区在线播放 | 一区二区三区**美女毛片| 视频一区国产视频| 丁香一区二区三区| 欧美日韩三级一区| 精品福利在线导航| 亚洲欧美激情插| 久久99精品国产91久久来源| 91色porny| 日韩一区二区电影网| 国产精品国产精品国产专区不蜜| 亚洲情趣在线观看| 久久激情五月激情| 91麻豆蜜桃一区二区三区| 91精品国产aⅴ一区二区| 国产精品网曝门| 美女视频一区在线观看| 91色综合久久久久婷婷| 久久青草欧美一区二区三区| 一区二区三区欧美日韩| 国产成人自拍在线| 69堂精品视频| 中文字幕中文在线不卡住| 免费观看在线综合| 在线精品视频免费观看| 中文一区二区在线观看| 免费在线观看视频一区| 在线亚洲+欧美+日本专区| 久久色.com| 日韩精品乱码免费| 色综合久久中文字幕综合网| 精品粉嫩aⅴ一区二区三区四区| 亚洲国产视频在线| 波多野结衣精品在线| www国产精品av| 美女性感视频久久| 欧美日韩一级片在线观看| 最新热久久免费视频| 国产精品456露脸| 欧美成人vr18sexvr| 香蕉加勒比综合久久| 欧美不卡一区二区三区四区| 91精品国产日韩91久久久久久| 亚洲欧美日韩系列| 国产成人在线视频网址| 日韩一区二区三区观看| 亚洲国产成人porn| 91碰在线视频| 国产精品激情偷乱一区二区∴| 国内精品写真在线观看| 欧美一级一区二区| 五月天亚洲精品| 欧美系列日韩一区| 亚洲一区中文日韩| 一本色道久久综合亚洲91| 国产精品久久久久三级| 岛国精品在线观看| 国产精品成人网| 成人爱爱电影网址| 国产精品网站在线播放| 成人18视频日本| 一区二区中文字幕在线| www.欧美精品一二区| 国产精品免费网站在线观看| 懂色av一区二区三区蜜臀| 国产精品视频免费| 91丝袜国产在线播放| 中文字幕制服丝袜成人av| 豆国产96在线|亚洲| 中文成人综合网| 99re在线精品| 综合激情成人伊人| av不卡免费在线观看| 亚洲女同一区二区| 欧美性大战久久久| 日韩在线一区二区三区| 欧美一二三四在线| 狠狠色丁香九九婷婷综合五月| 久久在线免费观看| 精品中文字幕一区二区| 国产亚洲人成网站| 91香蕉视频污| 亚洲成人动漫一区| 欧美成人在线直播| 国产不卡高清在线观看视频| 国产精品国模大尺度视频| 91首页免费视频| 丝袜美腿一区二区三区| 欧美哺乳videos| 99re这里都是精品| 舔着乳尖日韩一区| 久久一夜天堂av一区二区三区| 国产成人欧美日韩在线电影| 亚洲免费在线视频一区 二区| 欧美精品 国产精品| 国产尤物一区二区在线| 亚洲欧洲韩国日本视频| 欧美日韩在线播| 国产麻豆成人精品| 亚洲乱码精品一二三四区日韩在线| 欧美日韩国产一二三| 国产一区二区三区| 一区二区欧美视频| 精品国产乱子伦一区| 色综合一区二区三区| 久久精品国产秦先生| 亚洲人午夜精品天堂一二香蕉| 欧美一区二区性放荡片| 成人动漫一区二区三区| 午夜在线电影亚洲一区| 国产精品剧情在线亚洲| 欧美精品一级二级三级| 成人美女视频在线观看| 亚洲成国产人片在线观看| 久久综合九色综合欧美就去吻| 色老汉一区二区三区| 国产一区二区福利视频| 日韩制服丝袜av| 亚洲伦在线观看| 欧美精品一区二区精品网| 欧美色爱综合网| 成人网在线播放| 日本大胆欧美人术艺术动态| 亚洲同性gay激情无套| 精品国产电影一区二区| 欧美日韩五月天| 91麻豆国产香蕉久久精品| 国产麻豆成人传媒免费观看| 亚洲va国产va欧美va观看| 最好看的中文字幕久久|