Included modules
Constants
LAST_INSERT_ID | = | "SELECT LAST_INSERT_ID()".freeze | ||
ROW_COUNT | = | "SELECT ROW_COUNT()".freeze |
Public Instance methods
connect
(server)
[show source]
# File lib/sequel/adapters/cubrid.rb, line 20 def connect(server) opts = server_opts(server) conn = ::Cubrid.connect( opts[:database], opts[:host] || 'localhost', opts[:port] || 30000, opts[:user] || 'public', opts[:password] || '' ) conn.auto_commit = true conn end
execute
(sql, opts=OPTS)
[show source]
# File lib/sequel/adapters/cubrid.rb, line 37 def execute(sql, opts=OPTS) synchronize(opts[:server]) do |conn| r = log_yield(sql) do begin conn.query(sql) rescue => e raise_error(e) end end if block_given? yield(r) else begin case opts[:type] when :dui # This is cubrid's API, but it appears to be completely broken, # giving StandardError: ERROR: CCI, -18, Invalid request handle #r.affected_rows # Work around bugs by using the ROW_COUNT function. begin r2 = conn.query(ROW_COUNT) r2.each{|a| return a.first.to_i} ensure r2.close if r2 end when :insert begin r2 = conn.query(LAST_INSERT_ID) r2.each{|a| return a.first.to_i} ensure r2.close if r2 end end ensure r.close end end end end
execute_ddl
(sql, opts=OPTS)
[show source]
# File lib/sequel/adapters/cubrid.rb, line 78 def execute_ddl(sql, opts=OPTS) execute(sql, opts.merge(:type=>:ddl)) end
execute_dui
(sql, opts=OPTS)
[show source]
# File lib/sequel/adapters/cubrid.rb, line 82 def execute_dui(sql, opts=OPTS) execute(sql, opts.merge(:type=>:dui)) end
execute_insert
(sql, opts=OPTS)
[show source]
# File lib/sequel/adapters/cubrid.rb, line 86 def execute_insert(sql, opts=OPTS) execute(sql, opts.merge(:type=>:insert)) end
server_version
()
[show source]
# File lib/sequel/adapters/cubrid.rb, line 33 def server_version @server_version ||= synchronize{|c| c.server_version} end