| 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"]]