Data Types

4D - Documentation   Français   English   German   4th Dimension 2004, Command Theme List   4th Dimension 2004, Command Alphabetical List   4th Dimension 2004, Constant Theme List   Back   Previous   Next

version 6.7 (Modified)


4th Dimension fields, variables, and expressions can be of the following data types:

Data TypeFieldVariableExpression
String (see note 1)YesYesYes
Number (see note 2)YesYesYes
DateYesYesYes
TimeYesYesYes
BooleanYesYesYes
PictureYesYesYes
PointerNoYesYes
BLOB (see note 3)YesYesNo
Array (see note 4)NoYesNo
SubtableYesNoNo
UndefinedNoYesYes

Notes

1. String includes alphanumeric field, fixed length variable, and text field or variable.

2. Number includes Real, Integer, and Long Integer field and variable.

3. BLOB is an acronym for Binary Large OBject. For more information about BLOBs, see the section BLOB Commands.

4. Array includes all types of arrays. For more information, see the section Arrays.

String


String is a generic term that stands for:

Alphanumeric field

Fixed length variable

Text field or variable

Any string or text expression

A string is composed of characters. Each character can be any of the 256 ASCII codes. For more information about ASCII codes and how 4D handles them in a cross-platform environment, see the section ASCII Codes.

An Alphanumeric field may contain from 0 to 80 characters (limit depends on the field definition).

A Fixed length variable may contain from 0 to 255 (limit depends on the variable declaration).

A Text field, variable, or expression may contain from 0 to 32,000 characters.

You can assign a string to a text field and vice-versa; 4D does the conversion, truncating if necessary. You can mix string and text in an expression.

Note: In the 4D Language Reference, both string and text parameters in command descriptions are denoted as String, except when marked otherwise.

Number


Number is a generic term that stands for:

Real Field, variable or expression

Integer field, variable or expression

Long Integer field, variable or expression

The range for the Real data type is ±1.7e±308 (15 digits)

The range for the Integer data type (2-byte Integer) is -32,768..32,767 (2^15..(2^15)-1)

The range for the Long Integer data type (4-byte Integer) is -2^31..(2^31)-1

You can assign any Number data type to another; 4D does the conversion, truncating or rounding if necessary. However, when values are out of range, the conversion will not return a valid value. You can mix Number data types in expressions.

Note: In the 4D Language Reference, no matter the actual data type, the Real, Integer, and Long Integer parameters in command descriptions are denoted as Number, except when marked otherwise.

Date


A Date field, variable or expression can be in the range of 1/1/100 to 12/31/32,767.

Using the US English version of 4D, a date is ordered month/day/year.

If a year is given as two digits, it is assumed to be in the 1900's if the value is greater than or equal to 30, and the 2000's if the value is less than 30 (this default can be changed using the SET DEFAULT CENTURY command).

Note: In the 4D Language Reference, Date parameters in command descriptions are denoted as Date, except when marked otherwise.

Time


A Time field, variable or expression can be in the range of 00:00:00 to 596,000:00:00.

Using the US English version of 4D, time is ordered hour:minute:second.

Times are in 24-hour format.

A time value can be treated as a number. The number returned from a time is the number of seconds that time represents. For more information, see the section Time Operators.

Note: In the 4D Language Reference, Time parameters in command descriptions are denoted as Time, except when marked otherwise.

Boolean


A Boolean field, variable or expression can be either TRUE or FALSE.

Note: In the 4D Language Reference, Boolean parameters in command descriptions are denoted as Boolean, except when marked otherwise.

Picture


A Picture field, variable or expression can be any Windows or Macintosh picture. In general, this includes any picture that can be put on the Clipboard or read from the disk using 4D or Plug-In commands.

Note: In the 4D Language Reference, Picture parameters in command descriptions are denoted as Picture, except when marked otherwise.

Pointer


A Pointer variable or expression is a reference to another variable (including arrays and array elements), table, or field. There is no field of type Pointer.

For more information about Pointers, see the section Pointers.

Note: In the 4D Language Reference, Pointer parameters in command descriptions are denoted as Pointer except when marked otherwise.

BLOB


A BLOB field or variable is a series of bytes (from 0 to 2 GB in length) that you can address individually or by using the BLOB Commands. There is no expression of type BLOB.

Note: In the 4D Language Reference, BLOB parameters in command descriptions are denoted as BLOB.

Array


Array is not actually a data type. The various types of arrays (such as Integer Array, Text Array, and so on) are grouped under this title. Arrays are variables—there is no field of type Array, and there is no expression of type Array. For more information about arrays, see the section Arrays.

Note: In the 4D Language Reference, Array parameters in command descriptions are denoted as Array, except when marked otherwise (i.e., String Array, Numeric Array, ...).

Subtable


Subtable is not actually a data type. Only fields can be of type Subtable. There is no variable or expression of type Subtable. For more information about subtables, see the 4th Dimension Design Reference manual as well as the commands regrouped under the Subrecords theme.

Undefined


Undefined is not actually a data type. It denotes a variable that has not yet been defined. A function (a project method that returns a result) can return an undefined value if, within the method, the function result ($0) is assigned an undefined expression (an expression calculated with at least one undefined variable). A field cannot be undefined.

Converting Data Types


The 4D language contains operators and commands to convert between data types, where such conversions are meaningful. The 4D language enforces data type checking. For example, you cannot write: "abc"+0.5+!12/25/96!-?00:30:45?. This will generate syntax errors.

The following table lists the basic data types, the data types to which they can be converted, and the commands used to do so:

Data TypeConvert toConvert toConvert toConvert to
StringNumberDateTime
StringNumDateTime
Number (*)String
DateString
TimeString
BooleanNum

(*) Time values can be be treated as numbers.

Note: In addition to the data conversions listed inthis table, more sophisticated data conversions can be obtained by combining operators and other commands.

See Also

Arrays, Constants, Control Flow, Identifiers, Methods, Operators, Pointers, Type, Variables.


4D - Documentation   Français   English   German   4th Dimension 2004, Command Theme List   4th Dimension 2004, Command Alphabetical List   4th Dimension 2004, Constant Theme List   Back   Previous   Next