Subject Re: [Firebird-Architect] transient data sets and procedures
Author Alexandre Benson Smith

Anyone here have used ZIM ? (from Zanthe Information, from Canada, then
bougth by Sterling Software then Bought by CA)

Zim uses the E-R model instead of the Relational Model.

Zim had a concept os set

The syntax are like this:

find all employee where Depto = 'Development' -> sDevelopers

the "->" operator spounds like to me the yelding you are refering

The above command creates a set named sEmployee that could be used just
like the entities (the way ZIM called tables)

Sou you could perform things like this:

find all sDevelopers where Age > 30 ->sOlder

find all sDevelopers where City = 'Santo Andre' -> s2

find all sDevelopers minus sOlder -> s3

find all sOlder intersect s2

order sOlder by City

and so on...

the programs made on ZIM extensivelly use this feature, one could write
a program (create set inside it) and all another program (taht massage
the data present on that set) and call another program that makes a
report for example. One can't "compile" the second or the third program
without "compiling" the first one first.

When you compile the first one, in some way ZIM knows how will be
produced the sEmployee set (FB Transient Data Sets), and the others
(Program2 and Program 3) will be compiled using the structure produced
by the first one.

in the case you change the structure of the set on the first program,
and don't compile the dependents when you call them you got a kind of
Run-time error, because the structure changes.

In fact ZIM always work on the "current working set".

You can choose between the various sets with this:
set current working set sOlder
find all current where bla bla bla
list all

set current working set sDevelopers
list 10
and so on...

The semantics of the ZIM's sets sounds like to me what Ann has proposed
as Transient Data Set, and I think is a very usefull feature, one that I
missed a lot... The scope of the ZIM's sets are per connection, so when
one declares a set it could be used on how many procedures you want,
they just live forever, but if you make a diferent select but uses the
same set name, the structure of the former will be overriden by the later.

I don't remember right, but I think that there is someway to destroy a
set, but can remeber if it really exists and how it works, I remember
that the sets has the duration of the connection.

here is a review that I found on a quick search on google.

here is the official site (I think)

If someone has some interest on it, I could read my old manuals for some

ZIM has died, but the "set" feature could be very good to FB.

see you !


Alexandre Benson Smith
THOR Software e Comercial Ltda.
Santo Andre - Sao Paulo - Brazil