Class: DataObject::Sqlite3::Command
- Inherits:
-
Command
- Object
- Command
- DataObject::Sqlite3::Command
- Defined in:
- lib/do_sqlite3.rb
Instance Method Summary collapse
- #execute_non_query(*args) ⇒ Object
- #execute_reader(*args) ⇒ Object
- #quote_boolean(value) ⇒ Object
- #quote_symbol(value) ⇒ Object
Instance Method Details
#execute_non_query(*args) ⇒ Object
136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 |
# File 'lib/do_sqlite3.rb', line 136 def execute_non_query(*args) super sql = escape_sql(args) @connection.logger.debug { sql } result, reader = Sqlite3_c.sqlite3_prepare_v2(@connection.db, sql, -1) unless result == Sqlite3_c::SQLITE_OK Sqlite3_c.sqlite3_finalize(reader) raise QueryError, "Your query failed.\n#{Sqlite3_c.sqlite3_errmsg(@connection.db)}\nQUERY: \"#{sql}\"" else exec_result = Sqlite3_c.sqlite3_step(reader) Sqlite3_c.sqlite3_finalize(reader) if exec_result == Sqlite3_c::SQLITE_DONE ResultData.new(@connection, Sqlite3_c.sqlite3_changes(@connection.db), Sqlite3_c.sqlite3_last_insert_rowid(@connection.db)) else raise QueryError, "Your query failed or you tried to execute a SELECT query through execute_non_reader\n#{Sqlite3_c.sqlite3_errmsg(@connection.db)}\nQUERY: \"#{@text}\"" end end end |
#execute_reader(*args) ⇒ Object
116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 |
# File 'lib/do_sqlite3.rb', line 116 def execute_reader(*args) super sql = escape_sql(args) @connection.logger.debug { sql } result, ptr = Sqlite3_c.sqlite3_prepare_v2(@connection.db, sql, sql.size + 1) unless result == Sqlite3_c::SQLITE_OK raise QueryError, "Your query failed.\n#{Sqlite3_c.sqlite3_errmsg(@connection.db)}\nQUERY: \"#{sql}\"" else reader = Reader.new(@connection.db, ptr) if block_given? return_value = yield(reader) reader.close return_value else reader end end end |
#quote_boolean(value) ⇒ Object
159 160 161 |
# File 'lib/do_sqlite3.rb', line 159 def quote_boolean(value) value ? '1' : '0' end |
#quote_symbol(value) ⇒ Object
155 156 157 |
# File 'lib/do_sqlite3.rb', line 155 def quote_symbol(value) value.to_s end |