描述
以四进制形式返回列值。
C / C ++语法
sqlite3_int64 sqlite3_column_int64(sqlite3_stmt*, int iCol); |
PB语法
FUNCTION sqlite3_column_int64 ( _ BYVAL hStmt AS DWORD, _ BYVAL nCol AS LONG _ ) AS QUAD |
参数
pStmt
[in]语句句柄。
nCol
[in]应返回信息的列的索引。结果集的最左列有索引0。结果中的列数可以使用sqlite3_column_count确定。
返回值
列值作为四元组。
备注
如果SQL语句当前没有指向有效的行,或者如果列索引超出范围,则结果是未定义的。这些函数只能在最近调用sqlite3_step已返回SQLITE_ROW时调用,并且之后不再调用sqlite3_reset或sqlite3_finalize.如果这些功能中的任何一个在sqlite3_reset或sqlite3_finalize之后或sqlite3_step已返回非SQLITE_ROW之后调用,则结果未定义。sqlite3_reset或sqlite3_reset或sqlite3_finalize在sqlite3_column_int64待处理之前从另一个线程调用,则结果未定义。
sqlite3_column_int64尝试在适当的时候转换值。下表详细说明了所应用的转化:
内部类型 |
请求类型 |
转变 |
NULL |
INTEGER |
结果为0 |
FLOAT |
INTEGER |
从浮点数转换为整数 |
TEXT |
INTEGER |
使用atoi() |
BLOB |
INTEGER |
转换为TEXT然后使用atoi() |
上面的表格参考了标准C库函数atoi()和atof()。SQLite并没有真正使用这些功能。它具有自己的等效内部功能。为了简洁起见,在表中使用了atoi()和atof()名称,因为它们是大多数C程序员熟悉的。
如果在评估任何这些功能时发生内存分配错误,则返回默认值。默认值为整数0,浮点数0.0或空指针。对sqlite3_errcode的后续调用将返回SQLITE_NOMEM。
C ++实现代码
SQLITE_API sqlite_int64 sqlite3_column_int64(sqlite3_stmt *pStmt, int i){
sqlite_int64 val = sqlite3_value_int64( columnMem(pStmt,i) );
columnMallocFailure(pStmt);
return val;
}