class Sequel::IBMDB::Connection

  1. lib/sequel/adapters/ibmdb.rb
Superclass: Object

Wraps an underlying connection to DB2 using IBM_DB, to provide a more rubyish API.

Classes and Modules

  1. Sequel::IBMDB::Connection::Error

Attributes

prepared_statements [R]

A hash with prepared statement name symbol keys, where each value is a two element array with an sql string and cached Statement value.

Public Class methods

new(connection_param)

Create the underlying IBM_DB connection.

[show source]
   # File lib/sequel/adapters/ibmdb.rb
42 def initialize(connection_param)
43   @conn = if connection_param.class == String
44     IBM_DB.connect(connection_param, '', '')
45   else  # connect using catalog
46     IBM_DB.connect(*connection_param)
47   end
48 
49   self.autocommit = true
50   @prepared_statements = {}
51 end

Public Instance methods

autocommit()

Check whether the connection is in autocommit state or not.

[show source]
   # File lib/sequel/adapters/ibmdb.rb
54 def autocommit
55   IBM_DB.autocommit(@conn) == 1
56 end
autocommit=(value)

Turn autocommit on or off for the connection.

[show source]
   # File lib/sequel/adapters/ibmdb.rb
59 def autocommit=(value)
60   IBM_DB.autocommit(@conn, value ? IBM_DB::SQL_AUTOCOMMIT_ON : IBM_DB::SQL_AUTOCOMMIT_OFF)
61 end
close()

Close the connection, disconnecting from DB2.

[show source]
   # File lib/sequel/adapters/ibmdb.rb
64 def close
65   IBM_DB.close(@conn)
66 end
commit()

Commit the currently outstanding transaction on this connection.

[show source]
   # File lib/sequel/adapters/ibmdb.rb
69 def commit
70   IBM_DB.commit(@conn)
71 end
error_msg()

Return the related error message for the connection.

[show source]
   # File lib/sequel/adapters/ibmdb.rb
74 def error_msg
75   IBM_DB.getErrormsg(@conn, IBM_DB::DB_CONN)
76 end
error_sqlstate()

Return the related error message for the connection.

[show source]
   # File lib/sequel/adapters/ibmdb.rb
79 def error_sqlstate
80   IBM_DB.getErrorstate(@conn, IBM_DB::DB_CONN)
81 end
execute(sql)

Execute the given SQL on the database, and return a Statement instance holding the results.

[show source]
   # File lib/sequel/adapters/ibmdb.rb
85 def execute(sql)
86   stmt = IBM_DB.exec(@conn, sql)
87   raise Error.new(error_msg, error_sqlstate) unless stmt
88   Statement.new(stmt)
89 end
execute_prepared(ps_name, *values)

Execute the related prepared statement on the database with the given arguments.

[show source]
    # File lib/sequel/adapters/ibmdb.rb
 93 def execute_prepared(ps_name, *values)
 94   stmt = @prepared_statements[ps_name].last
 95   res = stmt.execute(*values)
 96   unless res
 97     raise Error.new("Error executing statement #{ps_name}: #{error_msg}", error_sqlstate)
 98   end
 99   stmt
100 end
prepare(sql, ps_name)

Prepare a statement with the given sql on the database, and cache the prepared statement value by name.

[show source]
    # File lib/sequel/adapters/ibmdb.rb
104 def prepare(sql, ps_name)
105   if stmt = IBM_DB.prepare(@conn, sql)
106     ps_name = ps_name.to_sym
107     stmt = Statement.new(stmt)
108     @prepared_statements[ps_name] = [sql, stmt]
109   else
110     err = error_msg
111     err = "Error preparing #{ps_name} with SQL: #{sql}" if error_msg.nil? || error_msg.empty?
112     raise Error.new(err, error_sqlstate)
113   end
114 end
rollback()

Rollback the currently outstanding transaction on this connection.

[show source]
    # File lib/sequel/adapters/ibmdb.rb
117 def rollback
118   IBM_DB.rollback(@conn)
119 end