Esempio n. 1
0
                sql_value to_value(const shared_ptr<sqlite3_stmt> &stmt, int column)
                {
                    if (stmt == nullptr || column < 0 || column >= sqlite3_column_count(stmt.get())) {
                        return sql_value();
                    }

                    switch (sqlite3_column_type(stmt.get(), column)) {
                        case SQLITE_INTEGER:
                            return sql_number(sqlite3_column_int64(stmt.get(), column));
                        case SQLITE3_TEXT:
                        default: {
                            const unsigned char *textValue = sqlite3_column_text(stmt.get(), column);
                            if (textValue != NULL) {
                                return sql_string(reinterpret_cast<const char *>(textValue));
                            }
                            return sql_value();
                        }
                        case SQLITE_FLOAT:
                            return sql_number(sqlite3_column_double(stmt.get(), column));
                        case SQLITE_BLOB: {
                            const unsigned char *blob =
                                reinterpret_cast<const unsigned char *>(sqlite3_column_blob(stmt.get(), column));
                            return sql_blob(blob, blob + sqlite3_column_bytes(stmt.get(), column));
                        }
                    }
                }
Esempio n. 2
0
 sql_value::operator sql_number() const
 {
     try {
         return as<sql_number>();
     } catch (const value_conversion_error &e) {
         return sql_number();
     }
 }
Esempio n. 3
0
 sql_number operator()(const sql_null_type &value) const
 {
     return sql_number(value);
 }
Esempio n. 4
0
 sql_number operator()(const sql_wstring &value) const
 {
     return sql_number(value);
 }
Esempio n. 5
0
 sql_value::sql_value(const long double &value) : value_(sql_number(value))
 {
 }
Esempio n. 6
0
 sql_value::sql_value(const float &value) : value_(sql_number(value))
 {
 }
Esempio n. 7
0
 sql_value::sql_value(const unsigned long long &value) : value_(sql_number(value))
 {
 }
Esempio n. 8
0
 sql_value::sql_value(const long long &value) : value_(sql_number(value))
 {
 }
Esempio n. 9
0
 sql_value::sql_value(const unsigned int &value) : value_(sql_number(value))
 {
 }
Esempio n. 10
0
 sql_value::sql_value(const int &value) : value_(sql_number(value))
 {
 }
Esempio n. 11
0
 sql_value::sql_value(const short &value) : value_(sql_number(value))
 {
 }
Esempio n. 12
0
 sql_value::sql_value(const wchar_t &value) : value_(sql_number(value))
 {
 }
Esempio n. 13
0
 sql_value::sql_value(const char &value) : value_(sql_number(value))
 {
 }
Esempio n. 14
0
 sql_value::sql_value(const bool &value) : value_(sql_number(value))
 {
 }