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

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

?? sqlite3.h.svn-base

?? SQlite 的使用 讀庫 寫庫
?? SVN-BASE
?? 第 1 頁 / 共 5 頁
字號:
void sqlite3_interrupt(sqlite3*);


/* These functions return true if the given input string comprises
** one or more complete SQL statements. For the sqlite3_complete() call,
** the parameter must be a nul-terminated UTF-8 string. For
** sqlite3_complete16(), a nul-terminated machine byte order UTF-16 string
** is required.
**
** The algorithm is simple.  If the last token other than spaces
** and comments is a semicolon, then return true.  otherwise return
** false.
*/
int sqlite3_complete(const char *sql);
int sqlite3_complete16(const void *sql);

/*
** This routine identifies a callback function that is invoked
** whenever an attempt is made to open a database table that is
** currently locked by another process or thread.  If the busy callback
** is NULL, then sqlite3_exec() returns SQLITE_BUSY immediately if
** it finds a locked table.  If the busy callback is not NULL, then
** sqlite3_exec() invokes the callback with two arguments.  The
** first argument to the handler is a copy of the void* pointer which
** is the third argument to this routine.  The second argument to
** the handler is the number of times that the busy handler has
** been invoked for this locking event.  If the
** busy callback returns 0, then sqlite3_exec() immediately returns
** SQLITE_BUSY.  If the callback returns non-zero, then sqlite3_exec()
** tries to open the table again and the cycle repeats.
**
** The presence of a busy handler does not guarantee that
** it will be invoked when there is lock contention.
** If SQLite determines that invoking the busy handler could result in
** a deadlock, it will return SQLITE_BUSY instead.
** Consider a scenario where one process is holding a read lock that
** it is trying to promote to a reserved lock and
** a second process is holding a reserved lock that it is trying
** to promote to an exclusive lock.  The first process cannot proceed
** because it is blocked by the second and the second process cannot
** proceed because it is blocked by the first.  If both processes
** invoke the busy handlers, neither will make any progress.  Therefore,
** SQLite returns SQLITE_BUSY for the first process, hoping that this
** will induce the first process to release its read lock and allow
** the second process to proceed.
**
** The default busy callback is NULL.
**
** Sqlite is re-entrant, so the busy handler may start a new query. 
** (It is not clear why anyone would every want to do this, but it
** is allowed, in theory.)  But the busy handler may not close the
** database.  Closing the database from a busy handler will delete 
** data structures out from under the executing query and will 
** probably result in a coredump.
*/
int sqlite3_busy_handler(sqlite3*, int(*)(void*,int), void*);

/*
** This routine sets a busy handler that sleeps for a while when a
** table is locked.  The handler will sleep multiple times until 
** at least "ms" milleseconds of sleeping have been done.  After
** "ms" milleseconds of sleeping, the handler returns 0 which
** causes sqlite3_exec() to return SQLITE_BUSY.
**
** Calling this routine with an argument less than or equal to zero
** turns off all busy handlers.
*/
int sqlite3_busy_timeout(sqlite3*, int ms);

/*
** This next routine is really just a wrapper around sqlite3_exec().
** Instead of invoking a user-supplied callback for each row of the
** result, this routine remembers each row of the result in memory
** obtained from malloc(), then returns all of the result after the
** query has finished. 
**
** As an example, suppose the query result where this table:
**
**        Name        | Age
**        -----------------------
**        Alice       | 43
**        Bob         | 28
**        Cindy       | 21
**
** If the 3rd argument were &azResult then after the function returns
** azResult will contain the following data:
**
**        azResult[0] = "Name";
**        azResult[1] = "Age";
**        azResult[2] = "Alice";
**        azResult[3] = "43";
**        azResult[4] = "Bob";
**        azResult[5] = "28";
**        azResult[6] = "Cindy";
**        azResult[7] = "21";
**
** Notice that there is an extra row of data containing the column
** headers.  But the *nrow return value is still 3.  *ncolumn is
** set to 2.  In general, the number of values inserted into azResult
** will be ((*nrow) + 1)*(*ncolumn).
**
** After the calling function has finished using the result, it should 
** pass the result data pointer to sqlite3_free_table() in order to 
** release the memory that was malloc-ed.  Because of the way the 
** malloc() happens, the calling function must not try to call 
** free() directly.  Only sqlite3_free_table() is able to release 
** the memory properly and safely.
**
** The return value of this routine is the same as from sqlite3_exec().
*/
int sqlite3_get_table(
  sqlite3*,               /* An open database */
  const char *sql,       /* SQL to be executed */
  char ***resultp,       /* Result written to a char *[]  that this points to */
  int *nrow,             /* Number of result rows written here */
  int *ncolumn,          /* Number of result columns written here */
  char **errmsg          /* Error msg written here */
);

/*
** Call this routine to free the memory that sqlite3_get_table() allocated.
*/
void sqlite3_free_table(char **result);

/*
** The following routines are variants of the "sprintf()" from the
** standard C library.  The resulting string is written into memory
** obtained from malloc() so that there is never a possiblity of buffer
** overflow.  These routines also implement some additional formatting
** options that are useful for constructing SQL statements.
**
** The strings returned by these routines should be freed by calling
** sqlite3_free().
**
** All of the usual printf formatting options apply.  In addition, there
** is a "%q" option.  %q works like %s in that it substitutes a null-terminated
** string from the argument list.  But %q also doubles every '\'' character.
** %q is designed for use inside a string literal.  By doubling each '\''
** character it escapes that character and allows it to be inserted into
** the string.
**
** For example, so some string variable contains text as follows:
**
**      char *zText = "It's a happy day!";
**
** We can use this text in an SQL statement as follows:
**
**      char *z = sqlite3_mprintf("INSERT INTO TABLES('%q')", zText);
**      sqlite3_exec(db, z, callback1, 0, 0);
**      sqlite3_free(z);
**
** Because the %q format string is used, the '\'' character in zText
** is escaped and the SQL generated is as follows:
**
**      INSERT INTO table1 VALUES('It''s a happy day!')
**
** This is correct.  Had we used %s instead of %q, the generated SQL
** would have looked like this:
**
**      INSERT INTO table1 VALUES('It's a happy day!');
**
** This second example is an SQL syntax error.  As a general rule you
** should always use %q instead of %s when inserting text into a string 
** literal.
*/
char *sqlite3_mprintf(const char*,...);
char *sqlite3_vmprintf(const char*, va_list);
char *sqlite3_snprintf(int,char*,const char*, ...);

/*
** SQLite uses its own memory allocator.  On many installations, this
** memory allocator is identical to the standard malloc()/realloc()/free()
** and can be used interchangable.  On others, the implementations are
** different.  For maximum portability, it is best not to mix calls
** to the standard malloc/realloc/free with the sqlite versions.
*/
void *sqlite3_malloc(int);
void *sqlite3_realloc(void*, int);
void sqlite3_free(void*);

#ifndef SQLITE_OMIT_AUTHORIZATION
/*
** This routine registers a callback with the SQLite library.  The
** callback is invoked (at compile-time, not at run-time) for each
** attempt to access a column of a table in the database.  The callback
** returns SQLITE_OK if access is allowed, SQLITE_DENY if the entire
** SQL statement should be aborted with an error and SQLITE_IGNORE
** if the column should be treated as a NULL value.
*/
int sqlite3_set_authorizer(
  sqlite3*,
  int (*xAuth)(void*,int,const char*,const char*,const char*,const char*),
  void *pUserData
);
#endif

/*
** The second parameter to the access authorization function above will
** be one of the values below.  These values signify what kind of operation
** is to be authorized.  The 3rd and 4th parameters to the authorization
** function will be parameters or NULL depending on which of the following
** codes is used as the second parameter.  The 5th parameter is the name
** of the database ("main", "temp", etc.) if applicable.  The 6th parameter
** is the name of the inner-most trigger or view that is responsible for
** the access attempt or NULL if this access attempt is directly from 
** input SQL code.
**
**                                          Arg-3           Arg-4
*/
#define SQLITE_COPY                  0   /* Table Name      File Name       */
#define SQLITE_CREATE_INDEX          1   /* Index Name      Table Name      */
#define SQLITE_CREATE_TABLE          2   /* Table Name      NULL            */
#define SQLITE_CREATE_TEMP_INDEX     3   /* Index Name      Table Name      */
#define SQLITE_CREATE_TEMP_TABLE     4   /* Table Name      NULL            */
#define SQLITE_CREATE_TEMP_TRIGGER   5   /* Trigger Name    Table Name      */
#define SQLITE_CREATE_TEMP_VIEW      6   /* View Name       NULL            */
#define SQLITE_CREATE_TRIGGER        7   /* Trigger Name    Table Name      */
#define SQLITE_CREATE_VIEW           8   /* View Name       NULL            */
#define SQLITE_DELETE                9   /* Table Name      NULL            */
#define SQLITE_DROP_INDEX           10   /* Index Name      Table Name      */
#define SQLITE_DROP_TABLE           11   /* Table Name      NULL            */
#define SQLITE_DROP_TEMP_INDEX      12   /* Index Name      Table Name      */
#define SQLITE_DROP_TEMP_TABLE      13   /* Table Name      NULL            */
#define SQLITE_DROP_TEMP_TRIGGER    14   /* Trigger Name    Table Name      */
#define SQLITE_DROP_TEMP_VIEW       15   /* View Name       NULL            */
#define SQLITE_DROP_TRIGGER         16   /* Trigger Name    Table Name      */
#define SQLITE_DROP_VIEW            17   /* View Name       NULL            */
#define SQLITE_INSERT               18   /* Table Name      NULL            */
#define SQLITE_PRAGMA               19   /* Pragma Name     1st arg or NULL */
#define SQLITE_READ                 20   /* Table Name      Column Name     */
#define SQLITE_SELECT               21   /* NULL            NULL            */
#define SQLITE_TRANSACTION          22   /* NULL            NULL            */
#define SQLITE_UPDATE               23   /* Table Name      Column Name     */
#define SQLITE_ATTACH               24   /* Filename        NULL            */
#define SQLITE_DETACH               25   /* Database Name   NULL            */
#define SQLITE_ALTER_TABLE          26   /* Database Name   Table Name      */
#define SQLITE_REINDEX              27   /* Index Name      NULL            */
#define SQLITE_ANALYZE              28   /* Table Name      NULL            */
#define SQLITE_CREATE_VTABLE        29   /* Table Name      Module Name     */
#define SQLITE_DROP_VTABLE          30   /* Table Name      Module Name     */
#define SQLITE_FUNCTION             31   /* Function Name   NULL            */

/*
** The return value of the authorization function should be one of the
** following constants:
*/
/* #define SQLITE_OK  0   // Allow access (This is actually defined above) */
#define SQLITE_DENY   1   /* Abort the SQL statement with an error */
#define SQLITE_IGNORE 2   /* Don't allow access, but don't generate an error */

/*
** Register a function for tracing SQL command evaluation.  The function
** registered by sqlite3_trace() is invoked at the first sqlite3_step()
** for the evaluation of an SQL statement.  The function registered by
** sqlite3_profile() runs at the end of each SQL statement and includes
** information on how long that statement ran.
**
** The sqlite3_profile() API is currently considered experimental and
** is subject to change.
*/
void *sqlite3_trace(sqlite3*, void(*xTrace)(void*,const char*), void*);
void *sqlite3_profile(sqlite3*,
   void(*xProfile)(void*,const char*,sqlite_uint64), void*);

/*
** This routine configures a callback function - the progress callback - that
** is invoked periodically during long running calls to sqlite3_exec(),
** sqlite3_step() and sqlite3_get_table(). An example use for this API is to 
** keep a GUI updated during a large query.
**
** The progress callback is invoked once for every N virtual machine opcodes,
** where N is the second argument to this function. The progress callback
** itself is identified by the third argument to this function. The fourth
** argument to this function is a void pointer passed to the progress callback
** function each time it is invoked.
**
** If a call to sqlite3_exec(), sqlite3_step() or sqlite3_get_table() results 
** in less than N opcodes being executed, then the progress callback is not
** invoked.
** 
** To remove the progress callback altogether, pass NULL as the third
** argument to this function.
**
** If the progress callback returns a result other than 0, then the current 
** query is immediately terminated and any database changes rolled back. If the
** query was part of a larger transaction, then the transaction is not rolled
** back and remains active. The sqlite3_exec() call returns SQLITE_ABORT. 
**
******* THIS IS AN EXPERIMENTAL API AND IS SUBJECT TO CHANGE ******
*/
void sqlite3_progress_handler(sqlite3*, int, int(*)(void*), void*);

/*
** Register a callback function to be invoked whenever a new transaction
** is committed.  The pArg argument is passed through to the callback.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产黑色紧身裤美女| 精品美女被调教视频大全网站| 欧美日韩精品一区二区三区蜜桃 | 麻豆精品在线视频| 粉嫩av一区二区三区在线播放| 欧美日韩一区二区不卡| 国产日产精品1区| 人人狠狠综合久久亚洲| 91久久久免费一区二区| 亚洲18女电影在线观看| 国产一区二区视频在线| 欧美精品久久一区| 一区二区在线观看不卡| 国产成人午夜精品影院观看视频 | 欧美亚洲综合网| 中文字幕乱码一区二区免费| 免费黄网站欧美| 欧美日韩国产综合一区二区| 亚洲久本草在线中文字幕| 国产精品夜夜嗨| 精品国产乱码91久久久久久网站| 亚洲va欧美va国产va天堂影院| 成年人国产精品| 中文欧美字幕免费| 国产一区二区三区在线观看精品| 日韩欧美区一区二| 免费高清视频精品| 欧美视频精品在线观看| 一区二区三区日本| 一本到三区不卡视频| 亚洲欧洲成人自拍| 99re这里只有精品首页| 中文字幕日韩一区| 99久久精品国产毛片| 国产精品对白交换视频| 91小视频免费观看| 亚洲欧美一区二区三区久本道91| 国产.欧美.日韩| 国产精品久久久99| 91麻豆自制传媒国产之光| 亚洲少妇屁股交4| 欧美亚洲国产怡红院影院| 亚洲国产精品自拍| 欧美放荡的少妇| 蜜臀av一区二区在线观看| 精品久久人人做人人爽| 国产呦萝稀缺另类资源| 中文字幕乱码日本亚洲一区二区| 欧美视频一区二区三区| 蜜桃视频一区二区| 久久精品综合网| 97久久超碰精品国产| 一区二区三区四区在线播放| 欧美日韩精品一区二区三区| 蜜臀av性久久久久蜜臀av麻豆 | 色婷婷国产精品久久包臀| 亚洲一区二区三区四区在线免费观看| 欧洲精品中文字幕| 青青青爽久久午夜综合久久午夜| 欧美大尺度电影在线| 国产精品自拍三区| 亚洲免费三区一区二区| 91麻豆精品国产综合久久久久久 | 91麻豆精品91久久久久久清纯 | 一区二区不卡在线视频 午夜欧美不卡在| 91毛片在线观看| 美女诱惑一区二区| 亚洲欧美中日韩| 日韩网站在线看片你懂的| 国产91精品入口| 视频一区二区三区在线| 欧美国产一区在线| 欧美日韩色一区| 国产白丝精品91爽爽久久| 亚洲午夜视频在线观看| 久久奇米777| 精品视频资源站| 粉嫩av一区二区三区| 日韩精品91亚洲二区在线观看 | 国产精品第五页| 欧美日韩黄视频| 成人福利视频网站| 日韩制服丝袜av| 亚洲日本va在线观看| 欧美精品一区二区三区蜜桃 | 成人av在线网站| 日本不卡一区二区三区| 中文字幕一区三区| 精品国产露脸精彩对白| 欧美无乱码久久久免费午夜一区| 床上的激情91.| 全国精品久久少妇| 一区二区三区在线视频免费| 国产亚洲精品免费| 精品久久人人做人人爱| 在线电影院国产精品| 一本大道久久a久久综合| 国产成人亚洲综合a∨婷婷| 日本伊人色综合网| 午夜久久久久久电影| 一级做a爱片久久| 1024国产精品| 欧美国产在线观看| 国产欧美一区在线| 久久综合九色综合欧美亚洲| 日韩一区二区三区在线| 在线成人av影院| 欧美影视一区二区三区| 日本丶国产丶欧美色综合| 成人app软件下载大全免费| 岛国精品在线播放| 国产不卡在线播放| 国产ts人妖一区二区| 国产乱妇无码大片在线观看| 加勒比av一区二区| 国精产品一区一区三区mba视频| 老司机免费视频一区二区三区| 三级在线观看一区二区 | 精品在线观看视频| 美女脱光内衣内裤视频久久影院| 日韩国产精品91| 蜜桃传媒麻豆第一区在线观看| 秋霞午夜av一区二区三区| 乱中年女人伦av一区二区| 琪琪一区二区三区| 国产精品一区二区视频| 懂色中文一区二区在线播放| 99久久精品免费看国产免费软件| 成人av在线影院| 欧美视频一区二区三区四区 | 偷拍亚洲欧洲综合| 日韩av中文字幕一区二区 | 欧美一级精品在线| 精品人伦一区二区色婷婷| 国产视频视频一区| 成人欧美一区二区三区在线播放| 亚洲色图在线播放| 婷婷国产v国产偷v亚洲高清| 免费观看在线综合| 成人精品视频一区| 欧美主播一区二区三区| 精品久久久久久无| 国产午夜亚洲精品午夜鲁丝片| 国产精品国模大尺度视频| 亚洲黄色性网站| 麻豆久久久久久久| 91在线云播放| 69堂成人精品免费视频| 久久精品男人天堂av| 亚洲一区二三区| 国产麻豆9l精品三级站| 色婷婷综合视频在线观看| 日韩欧美成人午夜| 中文字幕一区二区三| 日本视频免费一区| 99re66热这里只有精品3直播| 在线成人av影院| 中文字幕一区二区三区四区不卡 | 日本精品一级二级| 欧美va在线播放| 一区二区三区影院| 国产一区三区三区| 欧美日韩国产高清一区二区 | 日韩无一区二区| 亚洲黄色尤物视频| 国产精一区二区三区| 欧美日韩高清一区二区| 国产精品福利一区二区三区| 九一久久久久久| 欧美体内she精高潮| 中文字幕成人网| 精品在线一区二区三区| 欧美日韩国产高清一区二区三区| 国产日韩欧美亚洲| 理论片日本一区| 在线播放国产精品二区一二区四区| 国产精品毛片无遮挡高清| 激情文学综合网| 在线播放视频一区| 一区二区三区欧美日| 暴力调教一区二区三区| 欧美精品一区二区久久婷婷| 亚洲国产日产av| 91黄色免费版| 中文字幕亚洲区| www.亚洲国产| 国产精品视频在线看| 国产成人午夜精品影院观看视频| 日韩一区二区三区视频| 亚洲二区在线视频| 色呦呦国产精品| 亚洲精品水蜜桃| 色综合视频在线观看| 亚洲欧洲av色图| 91网址在线看| 亚洲老司机在线| 欧洲精品中文字幕| 亚洲一区二区三区四区五区中文| 色呦呦日韩精品| 亚洲成av人片|