Methods
Public Instance
Included modules
Attributes
conversion_procs | [R] |
Hash of connection procs for converting |
convert_smallint_to_bool | [RW] |
Whether to convert smallint values to bool for this |
Public Instance methods
connect(server)
Create a new connection object for the given server.
[show source]
# File lib/sequel/adapters/ibmdb.rb 189 def connect(server) 190 opts = server_opts(server) 191 192 connection_params = if opts[:host].nil? && opts[:port].nil? && opts[:database] 193 # use a cataloged connection 194 opts.values_at(:database, :user, :password) 195 else 196 # use uncataloged connection so that host and port can be supported 197 'Driver={IBM DB2 ODBC DRIVER};' \ 198 "Database=#{opts[:database]};" \ 199 "Hostname=#{opts[:host]};" \ 200 "Port=#{opts[:port] || 50000};" \ 201 'Protocol=TCPIP;' \ 202 "Uid=#{opts[:user]};" \ 203 "Pwd=#{opts[:password]};" \ 204 end 205 206 Connection.new(connection_params) 207 end
execute(sql, opts=OPTS, &block)
[show source]
# File lib/sequel/adapters/ibmdb.rb 209 def execute(sql, opts=OPTS, &block) 210 if sql.is_a?(Symbol) 211 execute_prepared_statement(sql, opts, &block) 212 else 213 synchronize(opts[:server]){|c| _execute(c, sql, opts, &block)} 214 end 215 rescue Connection::Error => e 216 raise_error(e) 217 end
execute_insert(sql, opts=OPTS)
[show source]
# File lib/sequel/adapters/ibmdb.rb 219 def execute_insert(sql, opts=OPTS) 220 synchronize(opts[:server]) do |c| 221 if sql.is_a?(Symbol) 222 execute_prepared_statement(sql, opts) 223 else 224 _execute(c, sql, opts) 225 end 226 _execute(c, "SELECT IDENTITY_VAL_LOCAL() FROM SYSIBM.SYSDUMMY1", opts){|stmt| i = stmt.fetch_array.first.to_i; i} 227 end 228 rescue Connection::Error => e 229 raise_error(e) 230 end
execute_prepared_statement(ps_name, opts)
Execute a prepared statement named by name on the database.
[show source]
# File lib/sequel/adapters/ibmdb.rb 233 def execute_prepared_statement(ps_name, opts) 234 args = opts[:arguments] 235 ps = prepared_statement(ps_name) 236 sql = ps.prepared_sql 237 synchronize(opts[:server]) do |conn| 238 unless conn.prepared_statements.fetch(ps_name, []).first == sql 239 log_connection_yield("PREPARE #{ps_name}: #{sql}", conn){conn.prepare(sql, ps_name)} 240 end 241 args = args.map{|v| v.nil? ? nil : prepared_statement_arg(v)} 242 log_sql = "EXECUTE #{ps_name}" 243 if ps.log_sql 244 log_sql += " (" 245 log_sql << sql 246 log_sql << ")" 247 end 248 begin 249 stmt = log_connection_yield(log_sql, conn, args){conn.execute_prepared(ps_name, *args)} 250 if defined?(yield) 251 yield(stmt) 252 else 253 stmt.affected 254 end 255 ensure 256 stmt.free_result if stmt 257 end 258 end 259 end
freeze()
[show source]
# File lib/sequel/adapters/ibmdb.rb 261 def freeze 262 @conversion_procs.freeze 263 super 264 end