require 'digest/md5' class BtrieveRecord include Btrieve attr_reader :data_buffer, :btrieve_table def initialize(btrieve_table, data_buffer = nil ) @btrieve_table = btrieve_table @data_buffer = data_buffer.nil? ? Btrieve.create_string_buffer(@btrieve_table.schema[:record_size]) : data_buffer @session = @btrieve_table.session end def insert btr_op(@session, INSERT, @btrieve_table.pos_buffer, @data_buffer, NULL_BUFFER, NO_CURRENCY_CHANGE) end def update btr_op(@session, UPDATE, @btrieve_table.pos_buffer, @data_buffer, NULL_BUFFER, NO_CURRENCY_CHANGE) end def delete btr_op(@session, DELETE, @btrieve_table.pos_buffer, NULL_BUFFER, NULL_BUFFER, NULL_KEY) end def get_attributes(keys) keys.inject({}){|vals, key| vals[key]=self[key]; vals} end def get_all_attributes() get_attributes(self.btrieve_table.schema[:columns].keys.sort.inject([]){|array,column|array<