Beispiel #1
0
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;
}
Beispiel #2
0
 double Query::SingleDouble() {
     return Next() ? ColumnDouble(0) : 0;
 }