PRB: Using SELECT SQL INTO CURSOR with Same Filename

ID: Q114672

2.00 2.50 2.50a 2.50b 2.60 | 2.50 2.50a 2.50b 2.60 3.00

MS-DOS                     | WINDOWS
  kbprb kbdocerr

The information in this article applies to:
  • Microsoft Visual FoxPro for Windows, version 3.0
  • Microsoft FoxPro for MS-DOS, versions 2.0, 2.5, 2.5a, 2.5b, 2.6
  • Microsoft FoxPro for Windows, versions 2.5, 2.5a, 2.5b, 2.6

SYMPTOMS

The error message "Alias Name Already in Use" or "Alias Name Is Already in Use"appears when a SELECT ...INTO CURSOR command is executed.

CAUSE

According to page L3-866 in the FoxPro version 2.5 "Language Reference" and page C3-704 in the FoxPro version 2.0 for MS-DOS "Commands & Functions" manual, if you issue an SQL SELECT INTO CURSOR command, where the cursor name is the same as the name of the table that records are being selected from, FoxPro will close the source file and create a cursor with the same name. This information is incorrect.

In actuality, when a cursor is created with an SQL SELECT statement, the original table is not closed when the same name is used for the cursor. FoxPro attempts to create the cursor with the same name although the table/.DBF is still open, which causes the above error message. For example, the following SELECT statement recreates the error:

   SELECT *;
     FROM Customer;
     INTO CURSOR Customer

RESOLUTION

Using a different name for the cursor resolves the problem. By using a different cursor name in the INTO clause of the SELECT command, the cursor is created without error, as the following code example illustrates:

   SELECT *;
     FROM Customer;
     INTO CURSOR ABC

Additional reference words: VFoxWin 3.00 FoxDos FoxWin 2.00 2.50 2.50a 2.50b 2.60 Alias use error errmsg err msg docerr
KBCategory:   kbprb kbdocerr
KBSubcategory: FxprgSql
Keywords          : kberrmsg FxprgSql 
Version           : 2.00 2.50 2.50a 2.50b 2.60 | 2.5
Platform          : MS-DOS WINDOWS


Last Reviewed: May 22, 1998
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.