Indy.Data encourages the use of sequences (sometimes referred to as
generators) for keys instead of autoinc / identity fields. Indy.Data does
not require their use, but using sequences will simplify your code and make
it more easily portable to other databases.
In your systems you may choose to implement your keys in this manner, however
in my opinion it is better to explicitly obtain keys and insert the key values
as part of the record. With identity fields, the values are not available until
after the row has been inserted, and can make related row inserts more
While identity fields are not available in all databases, they may be
simulated with triggers. The reverse is also true, sequences are not available
in all databases. Of the two, sequences are easier to simulate than identity
fields. If sequences are used, the library assumes a specific default
implementation is present.