📄 capi3ref.tcl
字号:
api {} { int sqlite3_changes(sqlite3*);} { This function returns the number of database rows that were changed (or inserted or deleted) by the most recently completed INSERT, UPDATE, or DELETE statement. Only changes that are directly specified by the INSERT, UPDATE, or DELETE statement are counted. Auxiliary changes caused by triggers are not counted. Use the sqlite3_total_changes() function to find the total number of changes including changes caused by triggers. Within the body of a trigger, the sqlite3_changes() function does work to report the number of rows that were changed for the most recently completed INSERT, UPDATE, or DELETE statement within the trigger body. SQLite implements the command "DELETE FROM table" without a WHERE clause by dropping and recreating the table. (This is much faster than going through and deleting individual elements from the table.) Because of this optimization, the change count for "DELETE FROM table" will be zero regardless of the number of elements that were originally in the table. To get an accurate count of the number of rows deleted, use "DELETE FROM table WHERE 1" instead.}api {} { int sqlite3_total_changes(sqlite3*);} { This function returns the total number of database rows that have be modified, inserted, or deleted since the database connection was created using sqlite3_open(). All changes are counted, including changes by triggers and changes to TEMP and auxiliary databases. Except, changes to the SQLITE_MASTER table (caused by statements such as CREATE TABLE) are not counted. Nor are changes counted when an entire table is deleted using DROP TABLE. See also the sqlite3_changes() API. SQLite implements the command "DELETE FROM table" without a WHERE clause by dropping and recreating the table. (This is much faster than going through and deleting individual elements form the table.) Because of this optimization, the change count for "DELETE FROM table" will be zero regardless of the number of elements that were originally in the table. To get an accurate count of the number of rows deleted, use "DELETE FROM table WHERE 1" instead.}api {} { int sqlite3_close(sqlite3*);} { Call this function with a pointer to a structure that was previously returned from sqlite3_open() or sqlite3_open16() and the corresponding database will by closed. SQLITE_OK is returned if the close is successful. If there are prepared statements that have not been finalized, then SQLITE_BUSY is returned. SQLITE_ERROR might be returned if the argument is not a valid connection pointer returned by sqlite3_open() or if the connection pointer has been closed previously.}api {} {const void *sqlite3_column_blob(sqlite3_stmt*, int iCol);int sqlite3_column_bytes(sqlite3_stmt*, int iCol);int sqlite3_column_bytes16(sqlite3_stmt*, int iCol);double sqlite3_column_double(sqlite3_stmt*, int iCol);int sqlite3_column_int(sqlite3_stmt*, int iCol);long long int sqlite3_column_int64(sqlite3_stmt*, int iCol);const unsigned char *sqlite3_column_text(sqlite3_stmt*, int iCol);const void *sqlite3_column_text16(sqlite3_stmt*, int iCol);int sqlite3_column_type(sqlite3_stmt*, int iCol);#define SQLITE_INTEGER 1#define SQLITE_FLOAT 2#define SQLITE_TEXT 3#define SQLITE_BLOB 4#define SQLITE_NULL 5} { These routines return information about the information in a single column of the current result row of a query. In every case the first argument is a pointer to the SQL statement that is being executed (the sqlite_stmt* that was returned from sqlite3_prepare()) and the second argument is the index of the column for which information should be returned. iCol is zero-indexed. The left-most column has an index of 0. If the SQL statement is not currently point to a valid row, or if the the column index is out of range, the result is undefined. If the result is a BLOB then the sqlite3_column_bytes() routine returns the number of bytes in that BLOB. No type conversions occur. If the result is a string (or a number since a number can be converted into a string) then sqlite3_column_bytes() converts the value into a UTF-8 string and returns the number of bytes in the resulting string. The value returned does not include the \\000 terminator at the end of the string. The sqlite3_column_bytes16() routine converts the value into a UTF-16 encoding and returns the number of bytes (not characters) in the resulting string. The \\u0000 terminator is not included in this count. These routines attempt to convert the value where appropriate. For example, if the internal representation is FLOAT and a text result is requested, sprintf() is used internally to do the conversion automatically. The following table details the conversions that are applied:<blockquote><table border="1"><tr><th>Internal Type</th><th>Requested Type</th><th>Conversion</th></tr><tr><td> NULL </td><td> INTEGER</td><td>Result is 0</td></tr><tr><td> NULL </td><td> FLOAT </td><td> Result is 0.0</td></tr><tr><td> NULL </td><td> TEXT </td><td> Result is NULL pointer</td></tr><tr><td> NULL </td><td> BLOB </td><td> Result is NULL pointer</td></tr><tr><td> INTEGER </td><td> FLOAT </td><td> Convert from integer to float</td></tr><tr><td> INTEGER </td><td> TEXT </td><td> ASCII rendering of the integer</td></tr><tr><td> INTEGER </td><td> BLOB </td><td> Same as for INTEGER->TEXT</td></tr><tr><td> FLOAT </td><td> INTEGER</td><td>Convert from float to integer</td></tr><tr><td> FLOAT </td><td> TEXT </td><td> ASCII rendering of the float</td></tr><tr><td> FLOAT </td><td> BLOB </td><td> Same as FLOAT->TEXT</td></tr><tr><td> TEXT </td><td> INTEGER</td><td>Use atoi()</td></tr><tr><td> TEXT </td><td> FLOAT </td><td> Use atof()</td></tr><tr><td> TEXT </td><td> BLOB </td><td> No change</td></tr><tr><td> BLOB </td><td> INTEGER</td><td>Convert to TEXT then use atoi()</td></tr><tr><td> BLOB </td><td> FLOAT </td><td> Convert to TEXT then use atof()</td></tr><tr><td> BLOB </td><td> TEXT </td><td> Add a \\000 terminator if needed</td></tr></table></blockquote>}api {} {int sqlite3_column_count(sqlite3_stmt *pStmt);} { Return the number of columns in the result set returned by the prepared SQL statement. This routine returns 0 if pStmt is an SQL statement that does not return data (for example an UPDATE). See also sqlite3_data_count().}api {} {const char *sqlite3_column_decltype(sqlite3_stmt *, int i);const void *sqlite3_column_decltype16(sqlite3_stmt*,int);} { The first argument is a prepared SQL statement. If this statement is a SELECT statement, the Nth column of the returned result set of the SELECT is a table column then the declared type of the table column is returned. If the Nth column of the result set is not a table column, then a NULL pointer is returned. The returned string is UTF-8 encoded for sqlite3_column_decltype() and UTF-16 encoded for sqlite3_column_decltype16(). For example, in the database schema: <blockquote><pre> CREATE TABLE t1(c1 INTEGER); </pre></blockquote> And the following statement compiled: <blockquote><pre> SELECT c1 + 1, c1 FROM t1; </pre></blockquote> Then this routine would return the string "INTEGER" for the second result column (i==1), and a NULL pointer for the first result column (i==0). If the following statements were compiled then this routine would return "INTEGER" for the first (only) result column. <blockquote><pre> SELECT (SELECT c1) FROM t1; SELECT (SELECT c1 FROM t1); SELECT c1 FROM (SELECT c1 FROM t1); SELECT * FROM (SELECT c1 FROM t1); SELECT * FROM (SELECT * FROM t1); </pre></blockquote>}api {} { int 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 */ );} { This routine is used to obtain meta information about a specific column of a specific database table accessible using the connection handle passed as the first function argument. The column is identified by the second, third and fourth parameters to this function. The second parameter is either the name of the database (i.e. "main", "temp" or an attached database) containing the specified table or NULL. If it is NULL, then all attached databases are searched for the table using the same algorithm as the database engine uses to resolve unqualified table references. The third and fourth parameters to this function are the table and column name of the desired column, respectively. Neither of these parameters may be NULL. Meta information is returned by writing to the memory locations passed as the 5th and subsequent parameters to this function. Any of these arguments may be NULL, in which case the corresponding element of meta information is ommitted.<pre> Parameter Output Type Description ----------------------------------- 5th const char* Declared data type 6th const char* Name of the columns default collation sequence 7th int True if the column has a NOT NULL constraint 8th int True if the column is part of the PRIMARY KEY 9th int True if the column is AUTOINCREMENT</pre> The memory pointed to by the character pointers returned for the declaration type and collation sequence is valid only until the next call to any sqlite API function. This function may load one or more schemas from database files. If an error occurs during this process, or if the requested table or column cannot be found, an SQLITE error code is returned and an error message left in the database handle (to be retrieved using sqlite3_errmsg()). Specifying an SQL view instead of a table as the third argument is also considered an error. If the specified column is "rowid", "oid" or "_rowid_" and an INTEGER PRIMARY KEY column has been explicitly declared, then the output parameters are set for the explicitly declared column. If there is no explicitly declared IPK column, then the data-type is "INTEGER", the collation sequence "BINARY" and the primary-key flag is set. Both the not-null and auto-increment flags are clear. This API is only available if the library was compiled with the SQLITE_ENABLE_COLUMN_METADATA preprocessor symbol defined.}api {} {const char *sqlite3_column_database_name(sqlite3_stmt *pStmt, int N);const void *sqlite3_column_database_name16(sqlite3_stmt *pStmt, int N);} {If the Nth column returned by statement pStmt is a column reference,these functions may be used to access the name of the database (either "main", "temp" or the name of an attached database) that containsthe column. If the Nth column is not a column reference, NULL isreturned.See the description of function sqlite3_column_decltype() for adescription of exactly which expressions are considered column references.Function sqlite3_column_database_name() returns a pointer to a UTF-8encoded string. sqlite3_column_database_name16() returns a pointerto a UTF-16 encoded string. }api {} {const char *sqlite3_column_origin_name(sqlite3_stmt *pStmt, int N);const void *sqlite3_column_origin_name16(sqlite3_stmt *pStmt, int N);} {If the Nth column returned by statement pStmt is a column reference,these functions may be used to access the schema name of the referenced column in the database schema. If the Nth column is not a column reference, NULL is returned.See the description of function sqlite3_column_decltype() for adescription of exactly which expressions are considered column references.Function sqlite3_column_origin_name() returns a pointer to a UTF-8encoded string. sqlite3_column_origin_name16() returns a pointerto a UTF-16 encoded string. }api {} {const char *sqlite3_column_table_name(sqlite3_stmt *pStmt, int N);const void *sqlite3_column_table_name16(sqlite3_stmt *pStmt, int N);} {If the Nth column returned by statement pStmt is a column reference, these functions may be used to access the name of the table that contains the column. If the Nth column is not a column reference, NULL is returned.See the description of function sqlite3_column_decltype() for adescription of exactly which expressions are considered column references.Function sqlite3_column_table_name() returns a pointer to a UTF-8encoded string. sqlite3_column_table_name16() returns a pointerto a UTF-16 encoded string. }api {} {const char *sqlite3_column_name(sqlite3_stmt*,int);const void *sqlite3_column_name16(sqlite3_stmt*,int);} { The first argument is a prepared SQL statement. This function returns the column heading for the Nth column of that statement, where N is the second function argument. The string returned is UTF-8 for sqlite3_column_name() and UTF-16 for sqlite3_column_name16().}api {} {void *sqlite3_commit_hook(sqlite3*, int(*xCallback)(void*), void *pArg);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -