VFP2. Límites de tablas, campos, variables, arrays, programas e informes

Posted on mayo 13, 2010


Different parts of Visual FoxPro have system capacity limits. The following tables list these limits.

Some capacities might be limited by available memory and disk space.

Table and Index Files

Feature Capacity
Maximum # of records per table file. 1 billion
Maximum size of a table file. 2 gigabytes
Maximum size of an FPT file. 2 gigabytes
Maximum # of characters per record. 65,500
Maximum # of fields per record1. 255
Maximum # of tables open at one time2. 65,535
Maximum # of characters per table field. 254
Maximum # of bytes per index key in a non-compact index3. 100
Maximum # of bytes per index key in a compact index3. 240
Maximum # of open index files per table2. Limited by available memory
Maximum # of open indexes in all work areas2. Limited by available memory
Maximum # of relations. Limited by available memory
Maximum length of relational expressions. Limited by available memory


Feature Capacity
Maximum size of character fields. 254
Maximum size of numeric and float fields. 20
Maximum number of characters in field names in a free table. 10
Maximum number of characters in field names for a table contained in a database. 128
Minimum value of an integer. -2,147,483,647
Maximum value of an integer. 2,147,483,647
Digits of precision in numeric computations. Visual FoxPro can handle numbers up to 9007199254740992 (2^53) in exact computations. 16

64 bits = 8 bytes

Largest number = 10 ^ 308 = 2 ^ 1023

-> 10 bits per exponent + 1 for exponent sign plus 1 for number sign => 12 bits

Leaving 52 bits for the mantissa + 1 for implied normalized bit -> 53 bits

LOG10(2^53) = 15.95 decimal digits accuracy


Variables and Arrays

Feature Capacity
Default # of variables. 16,384
Maximum # of variables. 65,000
Maximum # of arrays. 65,000
Maximum # of elements per array. Normal: 2 gigabytes

Member array: 2 gigabytes

Array of member objects: 65,000

Program and Procedure Files

Feature Capacity
Maximum # of lines in source program files. Limited by available memory
Maximum size of compiled program modules4. Limited by available memory
Maximum # of procedures per file. 65,535
Maximum # of nested DO calls.

You can change the default level of nesting by using a configuration file that includes the STACKSIZE setting. For more information, see Special Terms for Configuration Files.
128 (Default)
Maximum # of READ nesting levels. 5
Maximum # of nested structured programming commands. 384
Maximum # of passed parameters. 26
Maximum # of transactions. 5
Maximum # of compiler levels for #INCLUDE. 4


Feature Capacity
Maximum # of objects in a report definition. Limited by available memory
Maximum height of a single report band. 20 inches | 50.8 cm | 1920 pixels
Maximum # of data grouping levels. 74
Maximum length of character report variable names or a report expression. 255
Maximum # of Detail bands. 20
Maximum # of pages in a report at run time. 65534

In object-assisted preview, limited by available GDI+ resources


Feature Capacity
Maximum # of open windows (all types)2. Limited by available memory
Maximum # of open Browse windows. 255
Maximum # of characters per character string or memory variable. 16,777,184
Maximum # of characters per command line. 8,192
Maximum # of characters per label control on a report. 252
Maximum # of characters per macro substituted line. 8,192
Maximum # of open files. Operating system limit
Maximum keystrokes in keyboard macro. 1,024
Maximum fields that can be selected by a SQL SELECT statement. 255
Maximum length of a string literal. 255
Maximum file size accessible via low level file functions 2 gigabytes

1 If one or more fields allow null values, the limit is reduced by one to 254 fields.

2 Limited by memory and available file handles. .cdx files use only one file handle.

3 If the collating sequence is set to MACHINE, each character uses one byte. If the collating sequence is not set to MACHINE, each character uses two bytes. If the indexed field supports null values, one additional byte is used in the index key. Note that non-machine indexes are always compact.

4 A program module is one procedure. A program or application can contain an unlimited number of program modules.

Posted in: Foxpro