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. ]