*** DRAFT ***

SQLite C Interface

Declared Datatype Of A Query Result

const char *sqlite3_column_decltype(sqlite3_stmt*,int);
const void *sqlite3_column_decltype16(sqlite3_stmt*,int);

R-15818-17128:[The first parameter is a prepared statement. If this statement is a SELECT statement and the Nth column of the returned result set of that SELECT is a table column (not an expression or subquery) then the declared type of the table column is returned. ] R-53473-04519:[If the Nth column of the result set is an expression or subquery, then a NULL pointer is returned. ] R-61435-31567:[The returned string is always UTF-8 encoded. ]

R-51255-43746:[For example, given the database schema:

CREATE TABLE t1(c1 VARIANT);

and the following statement to be compiled:

SELECT c1 + 1, c1 FROM t1;

this routine would return the string "VARIANT" for the second result column (i==1), and a NULL pointer for the first result column (i==0). ]

R-04905-26881:[SQLite uses dynamic run-time typing. ] R-15572-63310:[So just because a column is declared to contain a particular type does not mean that the data stored in that column is of the declared type. ] SQLite is strongly typed, but the typing is dynamic not static. R-29629-55858:[Type is associated with individual values, not with the containers used to hold those values. ]

See also lists of Objects, Constants, and Functions.

*** DRAFT ***