NOTE: The following information applies only to a databases running in interpreted mode, and does not apply to compiled mode. For more information see "Interpreted Mode Versus Compiled Mode" in Chapter 1 of the 4D Compiler Reference Manual.
When you create a variable without assigning an initial value to it, you'll find that the variable is in an undefined state. An attempt to read its value will result in a syntax error.
If (Var="") ` Check to see if the Text Variable is empty
` Do something
If Var has never had a value assigned to it in this process, the "If" statement will generate a syntax error.
To avoid this problem, you must either assign all variables a value or declare them with a Compiler Command before referencing them for the first time. The Compiler Commands will automatically create an initial value for the variable.
C_TEXT(Var) => Var = ""
C_STRING(Var) => Var = ""
C_BOOLEAN(Var) => Var = False
C_INTEGER(Var) => Var = 0
C_PICTURE(Var) => Var = 0 bytes
Once the variable has been declared with a Compiler Command, the variable will exist until the application is terminated (interprocess variables), the process ends (process variables), or until the variable is erased with the command CLEAR VARIABLE.
You can also use the command Undefined to check if the variable has been defined. Note that in a compiled database, Undefined will never return true.
If (Undefined(Var)) ` Check to see if the variable has been initialized
` Initialize the variable
` Do something
For both interpreted and compiled databases, the best practice is to declare and initialize all variables before they are used. This will avoid a host of runtime and compilation errors both syntactical and logical in nature.
For more information see "Why Compile Your Database?" in Chapter 1 of the 4D Compiler Reference Manual.