Virtual Fields

If a virtual field is indexed on the server, it is a good idea to define the field as a real field in the application. On the Zim application side, any reference to a virtual field in a table managed by a server is always exploded into the complete expression that defines the virtual field. This must be done either because the server does not support virtual fields (only Zim does) or because the virtual field is not defined on the server side. Unfortunately, this means that the virtual field index is never used on the server. By defining the field as a real field in the application, you ensure that the field name is passed "as is" to the server. Note, however, that if you write code in your application that explicitly assigns to such fields, the assignments are ignored.

With the Integrated Server mode of execution available in version 5.6 of Zim Integrated Server, there is usually no need to alter the definition of virtual fields on the Zim application side. In integrated server mode, the Zim command is passed "as is" to the server if it references only server EntitySets or relationships managed by the same Zim server.

In an application, you define EntitySets or relationships that you want to be managed by a server by setting either EntType (in EntitySets) or RelType (in Relationships) to indicate the appropriate server. This value must be set before you CREATE the object. The standard name for tables to be managed by Zim Integrated Server is zimserv.