ECode CStmt::Column( /* [in] */ Int32 col, /* [out] */ IInterface** obj) { VALIDATE_NOT_NULL(obj); Int32 type = 0; ColumnType(col,&type); switch (type) { case SQLITE_INTEGER: { Int64 value = 0; ColumnLong(col,&value); *obj = (IInterface *)&value; // android-changed: performance } break; case SQLITE_FLOAT: { Double value = 0.0; ColumnDouble(col,&value); *obj = (IInterface *)&value; } break; case SQLITE_BLOB: { AutoPtr<ArrayOf<Byte> > value; ColumnBytes(col,(ArrayOf<unsigned char>**)&value); *obj = (IInterface *)&value; } break; case SQLITE3_TEXT: { String value; ColumnString(col,&value); *obj = (IInterface *)&value; } break; } REFCOUNT_ADD(*obj); return NOERROR; }
double Query::SingleDouble() { return Next() ? ColumnDouble(0) : 0; }