Method: Sequel::IBMDB::Database#execute_prepared_statement
- Defined in:
- lib/sequel/adapters/ibmdb.rb
#execute_prepared_statement(ps_name, opts) ⇒ Object
Execute a prepared statement named by name on the database.
233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 |
# File 'lib/sequel/adapters/ibmdb.rb', line 233 def execute_prepared_statement(ps_name, opts) args = opts[:arguments] ps = prepared_statement(ps_name) sql = ps.prepared_sql synchronize(opts[:server]) do |conn| unless conn.prepared_statements.fetch(ps_name, []).first == sql log_connection_yield("PREPARE #{ps_name}: #{sql}", conn){conn.prepare(sql, ps_name)} end args = args.map{|v| v.nil? ? nil : prepared_statement_arg(v)} log_sql = "EXECUTE #{ps_name}" if ps.log_sql log_sql += " (" log_sql << sql log_sql << ")" end begin stmt = log_connection_yield(log_sql, conn, args){conn.execute_prepared(ps_name, *args)} if defined?(yield) yield(stmt) else stmt.affected end ensure stmt.free_result if stmt end end end |