
 |
Field-Level Calculations,
Constants, and Validations
User-defined functions at the field level are the ultimate
in flexibility and power for a database, but this degree of
flexibility is not possible in the ODBC driver. To provide
this level of functionality, the file format would have to
be changed to tell the ODBC driver where to find the necessary
code fragment being used for the calculation and the entire
Superbase language parser would have to be added to the driver.
Also, the user-defined function may depend on other functions
being present, or on global variables having been defined
and initialised by the user's program. At some point it would
cease to be an engine and merely be most of Superbase. As
such, some limitations had to be placed on what the Superbase
ODBC driver could reasonably support at the field level.
Validations are also supported, but only those which are
of the simplest variety. Something like:
MyField.MYFILE > 255
will also work in the driver, but crossfile lookup validations
which include the REQUEST keyword are not supported and if
present will result in the file being opened read-only. If
you need to write to the file, do not put validations which
use the REQUEST keyword in the field description, put them
into your code. Then put the same (modified as necessary for
language, etc.) validations into the non-Superbase program
which will also be writing to the file. If a file has validation,
calculation, or constant formulae which use user-defined functions
or unsupported SBL key words, or references files in those
validations, calculations, or constants which are not already
open, then the file will be opened in read-only mode, regardless
of the mode requested.
|