What are basic data types ?

Types of FIELD variables are defined in STRUCTURE of tables (.dbf files).

For other type (memory) variables, Clipper isn’t a “strong typing” language. Programmers not obliged to define variables with type before referenced (used); variables are typed “on the fly” that is by assigning value.

Notes :

  • “M” (memo) type is usable only in .dbf files, there isn’t “M” type variable. In terms of operation, “M” data is similar  to character type.
  • Harbour has 6 scalar types : Nil, String, Date, Logical, Number, Pointer, and 4 complex types: Array, Object, CodeBlock, and Hash. Types cited here are BASIC type: String, Number, Logical and Date.
  • For more info about data types please refer here.
  • Harbour supports also “extended” field types; see here.
  • There is also NIL type that has only one allowable value: NIL. NIL is not “undefined”, simply “nothing”.
  • This program also use “ALTERNATE” writing feature for display program output. This is handy for especially debugging and logging purposes.


A little test program to explore basic data types in Clipper.


#include <hmg.ch>


   * Some global settings
   SET( _SET_EOF, .F. )                // Don't put EOF marker to end of files built
   SET CENTURY ON                      // Display Century portion of dates type data
   * Set test file name
   cTestFNam := "DataTypes.txt"        // Name of test file
   * Set and open alternate file
   SET ALTERNATE TO (cTestFNam)        // Redirect screen (console) output 
                                       // (results of ? commands) to that file  
   SET ALTERNATE ON                    // Open alternate writing  
   * Assign values to variables
   cCharVar := "This is a character data"   // Assign astring value to this variable 
   nNumrVar := 123.456                // Assign this numeric value to this variable 
   lLogiVar := .T.                    // Assign this logical value to this variable    
   dDateVar := DATE()                 // Assign this date type value (date of day) 
                                      // to this variable  
   * Write variable names and value
   ? "cCharVar :", TYPE( "cCharVar" ), cCharVar
   ? "nNumrVar :", TYPE( "nNumrVar" ), nNumrVar
   ? "lLogiVar :", TYPE( "lLogiVar" ), lLogiVar
   ? "dDateVar :", TYPE( "dDateVar" ), dDateVar
   * Close alternate writing and file
   SET ALTE OFF                             // Close alternate writing 
   SET ALTE TO                              // Close alternate file 
   * Run Notepad of Windows and send to it my test file


One response to “What are basic data types ?

  1. Pingback: What is / What Are … | Viva Clipper !

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s