LOGICAL ( expression , char-expression-format )An expression in the data type that you want to convert to logical.A character expression that evaluates to a valid logical format, such as "si/no", or "da/nyet". This argument is ignored unless expression is of CHARACTER type. Also, this argument is only needed if expression evaluates to something other than the usual TRUE or FALSE, or YES or NO values.
DEFINE VARIABLE mychar AS CHARACTER NO-UNDO.DEFINE VARIABLE v-log AS LOGICAL NO-UNDO.mychar = "si".v-log = LOGICAL(mychar, "si/no")/* v-log is TRUE */
If the value of expression is the Unknown value (?), the LOGICAL function returns the Unknown value (?).
If expression is of type DECIMAL, INTEGER, INT64, DATE, DATETIME, DATTIME-TZ, or HANDLE, the function returns TRUE if the value of expression is nonzero. If the value of expression is 0, it returns FALSE. The second argument is ignored if present.
If expression is of type LONGCHAR or CHARACTER, it returns TRUE or FALSE depending on the value in the expression and the format used. Whether or not char-expression-format is given, the case-insensitive values TRUE, FALSE, YES, NO, abbreviated to 1 character, are always accepted. For example, a "Y" is interpreted as TRUE.
If char-expression-format is given, it is validated. If it is not valid, an error message appears and the Unknown value (?) is returned. Otherwise, the format is used to interpret the character string if it is not one of the following: TRUE, FALSE, YES, or NO. For example, LOGICAL ("si", "si/no" ) returns TRUE.
Data types such as RAW, MEMPTR, LVARBINARY, and so on return the Unknown value (?), but this is not considered an error.
© 2013 Progress Software Corporation and/or its subsidiaries or affiliates. |