usage.txt

Path: usage.txt
Last Update: Wed May 26 14:22:06 GMT Daylight Time 2004

Assuming the table: CREATE TABLE FOO (ID VARCHAR(32) PRIMARY KEY, DESCRIPTION VARCHAR(1000))

Require the library for your DBD driver

  require 'highcrest/persistence/oci8'
    ==>true

Declare a persistent class

  class Foo
    include Highcrest::Persistence
    attr_accessor :id, :description
  end
    ==>nil

Create and insert a new object with generated key

  begin
    foo = Foo.new
    foo.description = 'I am a Foo'
    foo.replace!
    Foo.dbh.commit
    foo
  rescue Exception => ex
    Foo.dbh.rollback
    raise ex
  end
    ==>#<Foo:0x31ad5a8 @description="I am a Foo", @id=105681042.0, @optimistic_values={"ID"=>105681042.0, "DESCRIPTION"=>"I am a Foo"}>

Create and insert a new object with assigned key

  begin
    foo2 = Foo.new
    foo2.id = 'key'
    foo2.description = 'I am a Foo'
    foo2.insert!
    Foo.dbh.commit
    foo2
  rescue Exception => ex
    Foo.dbh.rollback
    raise ex
  end
    ==>#<Foo:0x31a1d40 @description="I am a Foo", @id="key", @optimistic_values={"ID"=>"key", "DESCRIPTION"=>"I am a Foo"}>

Retrieve and update existing object

  begin
    foo2 = Foo.read 'key'
    foo2.description = 'I am a Foo too'
    foo2.replace!
    Foo.dbh.commit
    foo
  rescue Exception => ex
    Foo.dbh.rollback
    raise ex
  end
    ==>#<Foo:0x31ad5a8 @description="I am a Foo", @id=105681042.0, @optimistic_values={"ID"=>105681042.0, "DESCRIPTION"=>"I am a Foo"}>

Delete an object

  begin
    foo.delete!
    Foo.dbh.commit
    foo
  rescue Exception => ex
    Foo.dbh.rollback
    raise ex
  end
    ==>#<Foo:0x31ad5a8 @description="I am a Foo", @id=105681042.0, @optimistic_values=nil>

Search for lightweight DBI rows with partial match

  begin
    rows = Foo.search 'description'=>'I am a Foo'
  rescue Exception => ex
    Foo.dbh.rollback
    raise ex
  end
    ==>[["key", "I am a Foo too"]]

[Validate]