Ejemplo n.º 1
0
Variant c_SQLite3::t_querysingle(CStrRef sql, bool entire_row /* = false */) {
  INSTANCE_METHOD_INJECTION_BUILTIN(SQLite3, SQLite3::querysingle);
  validate();
  if (!sql.empty()) {
    Variant stmt = t_prepare(sql);
    if (!same(stmt, false)) {
      sqlite3_stmt *pstmt =
        stmt.toObject().getTyped<c_SQLite3Stmt>()->m_raw_stmt;
      switch (sqlite3_step(pstmt)) {
      case SQLITE_ROW: /* Valid Row */
        if (entire_row) {
          Array ret = Array::Create();
          for (int i = 0; i < sqlite3_data_count(pstmt); i++) {
            ret.set(String((char*)sqlite3_column_name(pstmt, i), CopyString),
                    get_column_value(pstmt, i));
          }
          return ret;
        }
        return get_column_value(pstmt, 0);
      case SQLITE_DONE: /* Valid but no results */
        if (entire_row) {
          return Array::Create();
        } else {
          return null;
        }
      default:
        raise_warning("Unable to execute statement: %s",
                      sqlite3_errmsg(m_raw_db));
      }
    }
  }
  return false;
}
Ejemplo n.º 2
0
Variant c_SQLite3::t_query(const String& sql) {
  validate();
  if (!sql.empty()) {
    Variant stmt = t_prepare(sql);
    if (!same(stmt, false)) {
      return stmt.toObject().getTyped<c_SQLite3Stmt>()->t_execute();
    }
  }
  return false;
}
Ejemplo n.º 3
0
Variant c_SQLite3::t_query(CStrRef sql) {
  INSTANCE_METHOD_INJECTION_BUILTIN(SQLite3, SQLite3::query);
  validate();
  if (!sql.empty()) {
    Variant stmt = t_prepare(sql);
    if (!same(stmt, false)) {
      return stmt.toObject().getTyped<c_SQLite3Stmt>()->t_execute();
    }
  }
  return false;
}