Creating an array with SQL

It's easy to create an array with SQL in FoxPro by using the INTO ARRAY clause in an SQL SELECT statement. This example creates an array of customer details:

SELECT Cust_ID ;
   FROM Customer ;
   INTO ARRAY laCust ;
   WHERE Country = 'England'

The SQL statement will create an array of the right size and shape to hold the records retrieved. There are some records for customers from England in this table so this particular example will create an array holding their names.

In the real world you will not know whether or not any records are going to meet the criterion of the WHERE clause and if no records match then nothing will be returned and the array will not be created. Any later attempt to refer to this non-existent array will cause an error.

The solution is to use the _TALLY memory variable to test whether any records have been returned:

IF _TALLY = 0
   *-- The array has not been created by the SQL.
   *-- Create a single-element array and store ' '
   *-- in the only element.

   DIMENSION laCust[1]
   laCust[1] = SPACE (1)
ENDIF

You don't get this problem when using SQL to create a cursor or table. FoxPro can create an empty cursor or table if no records are selected but it cannot create an array of length zero.

FoxPro maintains the value in _TALLY automatically and updates it whenever any of the following commands are used:

  • APPEND FROM
  • AVERAGE
  • CALCULATE
  • COPY TO
  • COUNT
  • DELETE
  • INDEX
  • PACK
  • REINDEX
  • REPLACE
  • SELECT - SQL
  • SORT
  • SUM
  • TOTAL
  • UPDATE

Strangely enough, you can alter the value held in the _TALLY memory variable:

_TALLY =1

Access Tips

FoxPro Tips

General Tips

 

Related Items

Alvechurch Data - Microsoft FoxPro and Access Database Development and Training

Alvechurch Data provide training and development support for businesses using Microsoft FoxPro, Visual FoxPro and Access databases.

Read More

Autocomplete in Visual Fox Pro

Autocomplete in Visual Fox Pro

The textbox class in Visual FoxPro 9 has a new Autocomplete property which shows the user the previous values that have been entered in that textbox.

Read More

FoxPro Functions

FoxPro has always had functions to read and write files at a low level.

Read More

Development Services

Alvechurch Data have fifteen years experience developing databases for small business use.

Read More

Training Services

Details of the training courses offered by Alvechurch Data.

Read More