lib/og/adapters/oracle.rb in og-0.15.0 vs lib/og/adapters/oracle.rb in og-0.16.0

- old
+ new

@@ -1,20 +1,18 @@ # * Matt Bowen <matt.bowen@farweststeel.com> # * George Moschovitis <gm@navel.gr> # (c) 2004-2005 Navel, all rights reserved. -# $Id: oracle.rb 337 2005-03-31 16:20:40Z gmosx $ +# $Id: oracle.rb 17 2005-04-14 16:03:40Z gmosx $ begin require 'oracle' rescue Logger.error 'Ruby-Oracle bindings are not installed!' Logger.error ex end -require 'og/adapter' -require 'og/connection' -require 'glue/attribute' +require 'og/adapters/base' module Og # The Oracle adapter. This adapter communicates with # an Oracle rdbms. For extra documentation see @@ -84,23 +82,21 @@ # FIXME: what is appropriate for oracle? # `dropdb #{database} -U #{user}` super end - def insert_code(klass, db, pre_cb, post_cb) + def insert_code(klass, db) props = props_for_insert(klass) values = props.collect { |p| write_prop(p) }.join(',') sql = "INSERT INTO #{klass::DBTABLE} (#{props.collect {|p| p.name}.join(',')}) VALUES (#{values})" %{ - #{pre_cb} res = conn.store.exec("SELECT #{klass::DBSEQ}.nextval FROM DUAL") @oid = res.fetch[0].to_i res.close conn.exec "#{sql}" - #{post_cb} } end def new_connection(db) return OracleConnection.new(db) @@ -335,11 +331,11 @@ return nil unless valid_res?(res) row = res.fetch return nil unless row - obj = klass.new + obj = klass.allocate obj.og_read(row) res.close return obj end @@ -347,10 +343,10 @@ def read_all(res, klass) return [] unless valid_res?(res) objects = [] while row = res.fetch - obj = klass.new + obj = klass.allocate obj.og_read(row) objects << obj end res.close