What's New in ReStore 1.20?

We are pleased to announce that ReStore 1.20 is now available - this is fully Dolphin 5.0 XP compatible. 
Below is a summary of new features - please see the Developer's Manual for further details. 

Remote Collections

You may now address a large collection, referenced by a persistent object, in the same way as an 'instancesOf:' collection - this can make your applications more efficient by reducing the amount of data transferred from the database into memory. Two new methods - remote and orRemote control this behaviour, e.g.

"Look for a customer's specific order without bringing every order into memory"
customer orders remote detect: [ :each | each orderRef = 'OR123']

 "Use the in-memory orders collection if already referenced, otherwise query the database"
customer orders orRemote size

Developers Manual


Query by Example

ReStore 1.20 adds a powerful new querying mechanism. In addition to block-based instancesOf: querying, you can additionally query by building up a template object and requesting similar instances. The following are equivalent:

(aReStore instancesOf: Person) select: 
[ :each | (each surname = 'Smith') & (each address postcode = 'NW1 1AA'
]

p := Person new.
p surname: 'Smith'.
p address: (Address new postcode: 'NW1 1AA'; yourself).
p similarInstancesIn: aReStore

Developers Manual

Manual Transaction Management

ReStore's begin/commit transaction mechanism offers useful support for modal-style screens. However having a single 'active' transaction is not usually compatible with a set of diverse mode-less screens. ReStore now offers the facility to manually select which objects to commit, better supporting mode-less screens, through the new messages commitObjects: and rollbackObjects: 

Developers Manual


Sorting

Support for sorting has been improved. When defining a SortedCollection you can now directly use regular Smalltalk-style query blocks. Additionally, instancesOf: collections can be automatically transformed to a SortedCollection. In both cases, the sorting is done directly by the database 

define: #orders as: ((SortedCollection sortBlock: [ :a :b | a orderDate > b orderDate]) of: Order)

(aReStore instancesOf: Person) asSortedCollection: [ :a :b | a surname <= b surname]

Developers Manual

 


Tracing

The SQL generated by ReStore can now be automatically logged to the Transcript, or any other Stream-like object (e.g. a File)

Developers Manual

 

Other Changes

A number of smaller enhancements and bug fixes are included in the release. Full details

 

2003 Solutions Software Ltd.

ReStore | Order ReStore | FAQ | Manual