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

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

?? main.c

?? 新版輕量級嵌入式數據庫
?? C
?? 第 1 頁 / 共 3 頁
字號:
  ** conversions. The only error that can occur here is a malloc() failure.  */  if( createCollation(db, "BINARY", SQLITE_UTF8, 0, binCollFunc) ||      createCollation(db, "BINARY", SQLITE_UTF16BE, 0, binCollFunc) ||      createCollation(db, "BINARY", SQLITE_UTF16LE, 0, binCollFunc) ||      (db->pDfltColl = sqlite3FindCollSeq(db, SQLITE_UTF8, "BINARY", 6, 0))==0   ){    assert( sqlite3MallocFailed() );    db->magic = SQLITE_MAGIC_CLOSED;    goto opendb_out;  }  /* Also add a UTF-8 case-insensitive collation sequence. */  createCollation(db, "NOCASE", SQLITE_UTF8, 0, nocaseCollatingFunc);  /* Set flags on the built-in collating sequences */  db->pDfltColl->type = SQLITE_COLL_BINARY;  pColl = sqlite3FindCollSeq(db, SQLITE_UTF8, "NOCASE", 6, 0);  if( pColl ){    pColl->type = SQLITE_COLL_NOCASE;  }  /* Open the backend database driver */  rc = sqlite3BtreeFactory(db, zFilename, 0, MAX_PAGES, &db->aDb[0].pBt);  if( rc!=SQLITE_OK ){    sqlite3Error(db, rc, 0);    db->magic = SQLITE_MAGIC_CLOSED;    goto opendb_out;  }  db->aDb[0].pSchema = sqlite3SchemaGet(db->aDb[0].pBt);  db->aDb[1].pSchema = sqlite3SchemaGet(0);  if( db->aDb[0].pSchema ){    ENC(db) = SQLITE_UTF8;  }  /* The default safety_level for the main database is 'full'; for the temp  ** database it is 'NONE'. This matches the pager layer defaults.    */  db->aDb[0].zName = "main";  db->aDb[0].safety_level = 3;#ifndef SQLITE_OMIT_TEMPDB  db->aDb[1].zName = "temp";  db->aDb[1].safety_level = 1;#endif  /* Register all built-in functions, but do not attempt to read the  ** database schema yet. This is delayed until the first time the database  ** is accessed.  */  if( !sqlite3MallocFailed() ){    sqlite3RegisterBuiltinFunctions(db);    sqlite3Error(db, SQLITE_OK, 0);  }  db->magic = SQLITE_MAGIC_OPEN;opendb_out:  if( SQLITE_NOMEM==(rc = sqlite3_errcode(db)) ){    sqlite3_close(db);    db = 0;  }  *ppDb = db;  return sqlite3ApiExit(0, rc);}/*** Open a new database handle.*/int sqlite3_open(  const char *zFilename,   sqlite3 **ppDb ){  return openDatabase(zFilename, ppDb);}#ifndef SQLITE_OMIT_UTF16/*** Open a new database handle.*/int sqlite3_open16(  const void *zFilename,   sqlite3 **ppDb){  char const *zFilename8;   /* zFilename encoded in UTF-8 instead of UTF-16 */  int rc = SQLITE_OK;  sqlite3_value *pVal;  assert( zFilename );  assert( ppDb );  *ppDb = 0;  pVal = sqlite3ValueNew();  sqlite3ValueSetStr(pVal, -1, zFilename, SQLITE_UTF16NATIVE, SQLITE_STATIC);  zFilename8 = sqlite3ValueText(pVal, SQLITE_UTF8);  if( zFilename8 ){    rc = openDatabase(zFilename8, ppDb);    if( rc==SQLITE_OK && *ppDb ){      rc = sqlite3_exec(*ppDb, "PRAGMA encoding = 'UTF-16'", 0, 0, 0);      if( rc!=SQLITE_OK ){        sqlite3_close(*ppDb);        *ppDb = 0;      }    }  }  sqlite3ValueFree(pVal);  return sqlite3ApiExit(0, rc);}#endif /* SQLITE_OMIT_UTF16 *//*** The following routine destroys a virtual machine that is created by** the sqlite3_compile() routine. The integer returned is an SQLITE_** success/failure code that describes the result of executing the virtual** machine.**** This routine sets the error code and string returned by** sqlite3_errcode(), sqlite3_errmsg() and sqlite3_errmsg16().*/int sqlite3_finalize(sqlite3_stmt *pStmt){  int rc;  if( pStmt==0 ){    rc = SQLITE_OK;  }else{    rc = sqlite3VdbeFinalize((Vdbe*)pStmt);  }  return rc;}/*** Terminate the current execution of an SQL statement and reset it** back to its starting state so that it can be reused. A success code from** the prior execution is returned.**** This routine sets the error code and string returned by** sqlite3_errcode(), sqlite3_errmsg() and sqlite3_errmsg16().*/int sqlite3_reset(sqlite3_stmt *pStmt){  int rc;  if( pStmt==0 ){    rc = SQLITE_OK;  }else{    rc = sqlite3VdbeReset((Vdbe*)pStmt);    sqlite3VdbeMakeReady((Vdbe*)pStmt, -1, 0, 0, 0);  }  return rc;}/*** Register a new collation sequence with the database handle db.*/int sqlite3_create_collation(  sqlite3* db,   const char *zName,   int enc,   void* pCtx,  int(*xCompare)(void*,int,const void*,int,const void*)){  int rc;  assert( !sqlite3MallocFailed() );  rc = createCollation(db, zName, enc, pCtx, xCompare);  return sqlite3ApiExit(db, rc);}#ifndef SQLITE_OMIT_UTF16/*** Register a new collation sequence with the database handle db.*/int sqlite3_create_collation16(  sqlite3* db,   const char *zName,   int enc,   void* pCtx,  int(*xCompare)(void*,int,const void*,int,const void*)){  int rc = SQLITE_OK;  char *zName8;   assert( !sqlite3MallocFailed() );  zName8 = sqlite3utf16to8(zName, -1);  if( zName8 ){    rc = createCollation(db, zName8, enc, pCtx, xCompare);    sqliteFree(zName8);  }  return sqlite3ApiExit(db, rc);}#endif /* SQLITE_OMIT_UTF16 *//*** Register a collation sequence factory callback with the database handle** db. Replace any previously installed collation sequence factory.*/int sqlite3_collation_needed(  sqlite3 *db,   void *pCollNeededArg,   void(*xCollNeeded)(void*,sqlite3*,int eTextRep,const char*)){  if( sqlite3SafetyCheck(db) ){    return SQLITE_MISUSE;  }  db->xCollNeeded = xCollNeeded;  db->xCollNeeded16 = 0;  db->pCollNeededArg = pCollNeededArg;  return SQLITE_OK;}#ifndef SQLITE_OMIT_UTF16/*** Register a collation sequence factory callback with the database handle** db. Replace any previously installed collation sequence factory.*/int sqlite3_collation_needed16(  sqlite3 *db,   void *pCollNeededArg,   void(*xCollNeeded16)(void*,sqlite3*,int eTextRep,const void*)){  if( sqlite3SafetyCheck(db) ){    return SQLITE_MISUSE;  }  db->xCollNeeded = 0;  db->xCollNeeded16 = xCollNeeded16;  db->pCollNeededArg = pCollNeededArg;  return SQLITE_OK;}#endif /* SQLITE_OMIT_UTF16 */#ifndef SQLITE_OMIT_GLOBALRECOVER/*** This function is now an anachronism. It used to be used to recover from a** malloc() failure, but SQLite now does this automatically.*/int sqlite3_global_recover(){  return SQLITE_OK;}#endif/*** Test to see whether or not the database connection is in autocommit** mode.  Return TRUE if it is and FALSE if not.  Autocommit mode is on** by default.  Autocommit is disabled by a BEGIN statement and reenabled** by the next COMMIT or ROLLBACK.********* THIS IS AN EXPERIMENTAL API AND IS SUBJECT TO CHANGE *******/int sqlite3_get_autocommit(sqlite3 *db){  return db->autoCommit;}#ifdef SQLITE_DEBUG/*** The following routine is subtituted for constant SQLITE_CORRUPT in** debugging builds.  This provides a way to set a breakpoint for when** corruption is first detected.*/int sqlite3Corrupt(void){  return SQLITE_CORRUPT;}#endif#ifndef SQLITE_OMIT_SHARED_CACHE/*** Enable or disable the shared pager and schema features for the** current thread.**** This routine should only be called when there are no open** database connections.*/int sqlite3_enable_shared_cache(int enable){  ThreadData *pTd = sqlite3ThreadData();  if( pTd ){    /* It is only legal to call sqlite3_enable_shared_cache() when there    ** are no currently open b-trees that were opened by the calling thread.    ** This condition is only easy to detect if the shared-cache were     ** previously enabled (and is being disabled).     */    if( pTd->pBtree && !enable ){      assert( pTd->useSharedData );      return SQLITE_MISUSE;    }    pTd->useSharedData = enable;    sqlite3ReleaseThreadData();  }  return sqlite3ApiExit(0, SQLITE_OK);}#endif/*** This is a convenience routine that makes sure that all thread-specific** data for this thread has been deallocated.*/void sqlite3_thread_cleanup(void){  ThreadData *pTd = sqlite3OsThreadSpecificData(0);  if( pTd ){    memset(pTd, 0, sizeof(*pTd));    sqlite3OsThreadSpecificData(-1);  }}/*** Return meta information about a specific column of a database table.** See comment in sqlite3.h (sqlite.h.in) for details.*/#ifdef SQLITE_ENABLE_COLUMN_METADATAint sqlite3_table_column_metadata(  sqlite3 *db,                /* Connection handle */  const char *zDbName,        /* Database name or NULL */  const char *zTableName,     /* Table name */  const char *zColumnName,    /* Column name */  char const **pzDataType,    /* OUTPUT: Declared data type */  char const **pzCollSeq,     /* OUTPUT: Collation sequence name */  int *pNotNull,              /* OUTPUT: True if NOT NULL constraint exists */  int *pPrimaryKey,           /* OUTPUT: True if column part of PK */  int *pAutoinc               /* OUTPUT: True if colums is auto-increment */){  int rc;  char *zErrMsg = 0;  Table *pTab = 0;  Column *pCol = 0;  int iCol;  char const *zDataType = 0;  char const *zCollSeq = 0;  int notnull = 0;  int primarykey = 0;  int autoinc = 0;  /* Ensure the database schema has been loaded */  if( sqlite3SafetyOn(db) ){    return SQLITE_MISUSE;  }  rc = sqlite3Init(db, &zErrMsg);  if( SQLITE_OK!=rc ){    goto error_out;  }  /* Locate the table in question */  pTab = sqlite3FindTable(db, zTableName, zDbName);  if( !pTab || pTab->pSelect ){    pTab = 0;    goto error_out;  }  /* Find the column for which info is requested */  if( sqlite3IsRowid(zColumnName) ){    iCol = pTab->iPKey;    if( iCol>=0 ){      pCol = &pTab->aCol[iCol];    }  }else{    for(iCol=0; iCol<pTab->nCol; iCol++){      pCol = &pTab->aCol[iCol];      if( 0==sqlite3StrICmp(pCol->zName, zColumnName) ){        break;      }    }    if( iCol==pTab->nCol ){      pTab = 0;      goto error_out;    }  }  /* The following block stores the meta information that will be returned  ** to the caller in local variables zDataType, zCollSeq, notnull, primarykey  ** and autoinc. At this point there are two possibilities:  **   **     1. The specified column name was rowid", "oid" or "_rowid_"   **        and there is no explicitly declared IPK column.   **  **     2. The table is not a view and the column name identified an   **        explicitly declared column. Copy meta information from *pCol.  */   if( pCol ){    zDataType = pCol->zType;    zCollSeq = pCol->zColl;    notnull = (pCol->notNull?1:0);    primarykey  = (pCol->isPrimKey?1:0);    autoinc = ((pTab->iPKey==iCol && pTab->autoInc)?1:0);  }else{    zDataType = "INTEGER";    primarykey = 1;  }  if( !zCollSeq ){    zCollSeq = "BINARY";  }error_out:  if( sqlite3SafetyOff(db) ){    rc = SQLITE_MISUSE;  }  /* Whether the function call succeeded or failed, set the output parameters  ** to whatever their local counterparts contain. If an error did occur,  ** this has the effect of zeroing all output parameters.  */  if( pzDataType ) *pzDataType = zDataType;  if( pzCollSeq ) *pzCollSeq = zCollSeq;  if( pNotNull ) *pNotNull = notnull;  if( pPrimaryKey ) *pPrimaryKey = primarykey;  if( pAutoinc ) *pAutoinc = autoinc;  if( SQLITE_OK==rc && !pTab ){    sqlite3SetString(&zErrMsg, "no such table column: ", zTableName, ".",         zColumnName, 0);    rc = SQLITE_ERROR;  }  sqlite3Error(db, rc, (zErrMsg?"%s":0), zErrMsg);  sqliteFree(zErrMsg);  return sqlite3ApiExit(db, rc);}#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
天天操天天色综合| 亚洲天堂精品在线观看| 91在线看国产| 精品一区二区三区在线播放视频 | 26uuu亚洲综合色欧美| 在线观看91精品国产入口| 国产又黄又大久久| 国产精品一区二区在线观看网站 | 日本大香伊一区二区三区| 欧美日韩一本到| 久久综合九色综合久久久精品综合| 精品欧美一区二区久久| 中文字幕一区二区三区乱码在线| 亚洲五月六月丁香激情| 国产在线视频不卡二| 色8久久人人97超碰香蕉987| 欧美一区二区成人6969| 欧美一级理论片| 国产精品美女久久久久aⅴ国产馆| 亚洲欧美偷拍卡通变态| 国产精一品亚洲二区在线视频| 成人动漫一区二区三区| 日韩精品一区二区在线观看| 综合在线观看色| 国内成人自拍视频| 欧美日本一道本在线视频| 国产亚洲一二三区| 日本网站在线观看一区二区三区 | 成人听书哪个软件好| 欧美大片拔萝卜| 亚洲h动漫在线| 91在线视频播放地址| 久久久91精品国产一区二区精品| 石原莉奈一区二区三区在线观看| 欧美性感一区二区三区| 中文字幕日韩欧美一区二区三区| 久久se精品一区二区| 欧美男女性生活在线直播观看| 亚洲视频一区二区在线观看| 国产精品一级片| www国产精品av| 另类综合日韩欧美亚洲| 555夜色666亚洲国产免| 一二三四区精品视频| 色综合天天综合| 国产999精品久久久久久绿帽| 欧美一区二区三区在线| 婷婷六月综合亚洲| 欧美一级免费观看| 奇米影视在线99精品| 日韩视频永久免费| 狠狠v欧美v日韩v亚洲ⅴ| 日韩一区二区在线观看视频| 秋霞电影一区二区| 欧美成人高清电影在线| 国产一区二区在线观看免费| 久久蜜桃一区二区| 99re6这里只有精品视频在线观看| 亚洲乱码国产乱码精品精98午夜| 欧美无人高清视频在线观看| 青青草国产精品亚洲专区无| 国产一区二区久久| 国产成人精品三级| 中文字幕精品—区二区四季| 99久久精品免费| 亚洲第一会所有码转帖| 日韩免费观看2025年上映的电影| 国产高清久久久| 夜夜精品浪潮av一区二区三区| 日韩欧美另类在线| 92国产精品观看| 国内精品不卡在线| 亚洲激情图片一区| 日韩欧美第一区| 欧美在线制服丝袜| www.亚洲在线| 经典三级一区二区| 亚洲影视在线观看| av福利精品导航| 一区二区三区不卡视频| 国产欧美一区二区精品秋霞影院| 在线视频国内自拍亚洲视频| 六月丁香综合在线视频| 国产欧美视频一区二区三区| 欧美三级电影一区| 不卡免费追剧大全电视剧网站| 亚洲午夜激情网站| 国产精品三级久久久久三级| 日韩亚洲欧美中文三级| 欧洲视频一区二区| 91美女在线视频| av午夜精品一区二区三区| 国产电影一区二区三区| 国产一区二区三区香蕉| 久久精品国产秦先生| 奇米一区二区三区| 日韩电影网1区2区| 久久日韩粉嫩一区二区三区 | 色婷婷久久综合| 成人国产精品免费观看视频| 国产乱码字幕精品高清av| 激情欧美一区二区三区在线观看| 蜜桃av噜噜一区二区三区小说| 日韩精品电影一区亚洲| 蓝色福利精品导航| 精品一区二区三区香蕉蜜桃| 久久国产精品99久久久久久老狼 | 日本女人一区二区三区| 日本免费新一区视频| 日本视频免费一区| 国内外成人在线| 不卡在线观看av| 91黄色小视频| 日韩欧美亚洲国产另类| 久久综合久久综合亚洲| 久久久国产精品不卡| 亚洲欧美日本在线| 午夜免费久久看| 国产一区二区三区免费| 成人app在线观看| 欧美中文字幕不卡| 久久久久久久久久看片| 亚洲欧美经典视频| 经典三级视频一区| 91免费视频网址| 精品久久久久久最新网址| 亚洲天天做日日做天天谢日日欢| 秋霞午夜av一区二区三区| av爱爱亚洲一区| 欧美刺激午夜性久久久久久久| 1000精品久久久久久久久| 日韩中文字幕区一区有砖一区 | 粗大黑人巨茎大战欧美成人| 欧美日韩综合在线免费观看| 国产亚洲人成网站| 婷婷亚洲久悠悠色悠在线播放 | 高清国产午夜精品久久久久久| 欧美性生活久久| 亚洲欧美在线高清| 国产麻豆欧美日韩一区| 欧美一级久久久| 五月天激情综合| 欧美日韩激情在线| 亚洲一区二区偷拍精品| 91免费视频大全| 日韩毛片视频在线看| 成人国产精品免费观看视频| 久久久www成人免费毛片麻豆 | 欧美色男人天堂| 一区二区三区欧美亚洲| 日本韩国精品一区二区在线观看| 国产精品久久久久久户外露出| 国产精品乡下勾搭老头1| 欧美大胆一级视频| 黑人巨大精品欧美黑白配亚洲| 欧美精品18+| 美女精品自拍一二三四| 日韩色视频在线观看| 国内外成人在线| 国产日产精品一区| av爱爱亚洲一区| 亚洲高清久久久| 欧美精品一区二区三区四区| 国产盗摄女厕一区二区三区| 欧美国产综合色视频| 91激情五月电影| 精彩视频一区二区| 国产精品日韩成人| 欧美视频中文一区二区三区在线观看| 亚洲综合视频网| 日韩精品一区二区三区蜜臀| 成人免费视频网站在线观看| 亚洲免费毛片网站| 欧美电视剧在线看免费| 99re亚洲国产精品| 奇米在线7777在线精品| 国产欧美在线观看一区| 欧美私模裸体表演在线观看| 久88久久88久久久| 成人欧美一区二区三区| 日韩欧美国产麻豆| 97久久精品人人澡人人爽| 美女被吸乳得到大胸91| 亚洲欧美电影院| 精品久久久久久久久久久久包黑料| 成人ar影院免费观看视频| 日本视频免费一区| 亚洲一区视频在线| 国产精品嫩草影院com| 精品久久久久久最新网址| 欧美三级日韩在线| av欧美精品.com| 国产高清不卡二三区| 免费欧美高清视频| 亚洲一区欧美一区| 亚洲人成电影网站色mp4| 国产清纯美女被跳蛋高潮一区二区久久w | 色综合久久久久网| 成人99免费视频| 国产电影一区在线|