No compiler validation for container objects
When you use dot notation to refer to a DataWindow object in a DataWindow control or DataStore, the compiler does not check the validity of the expression:
dw_data.Object.column.property
Everything you specify after the Object property passes the compiler and is checked during execution.
The same applies to external OLE objects. No checking occurs until execution:
ole_1.Object.qualifier.qualifier.property.Value
Establishing partial references
Because of the runtime syntax checking, using many expressions like these can impact performance. To improve efficiency when you refer repeatedly to the same DataWindow component object or external object, you can define a variable of the appropriate type and assign a partial reference to the variable. The script evaluates most of the reference only once and reuses it.
The datatype of a DataWindow component object is DWObject:
DWObject dwo_column dwo_column = dw_data.Object.column dwo_column.SlideLeft = ... dwo_column.SlideUp = ...
The datatype of a partially resolved automation expression is OLEObject:
OLEObject ole_wordbasic ole_wordbasic = ole_1.Object.application.wordbasic ole_wordbasic.propertyname1 = value ole_wordbasic.propertyname2 = value
Handling errors
The Error and (for automation) ExternalException events are triggered when errors occur in evaluating the DataWindow and OLE expressions. If you write a script for these events, you can catch an error before it triggers the SystemError event. These events allow you to ignore an error or substitute an appropriate value. However, you must be careful to avoid setting up conditions that cause another error. You can also use try-catch blocks to handle exceptions as described in Exception handling in PowerBuilder.
For information
For information about DataWindow data expressions and property expressions and DWObject variables, see the section called “About DataWindow data expressions” in DataWindow Reference, the section called “PowerBuilder: DataWindow property expressions” in DataWindow Reference, and the section called “Using the DWObject variable in PowerBuilder” in DataWindow Reference. For information about using OLEObject variables in automation, see Using OLE in an Application.