Microsoft KB Archive/193628

= FIX: APPEND FROM with Certain File Types Crashes VFP =

Article ID: 193628

Article Last Modified on 10/15/2002

-

APPLIES TO


 * Microsoft Visual FoxPro 6.0 Professional Edition

-



This article was previously published under Q193628



SYMPTOMS
The following error occurs when you use the APPEND FROM command with certain file types:

Fatal error: Exception code=C0000005

After you click OK, Visual FoxPro exits.



CAUSE
This occurs when you use the following APPEND FROM syntax to append from the following file types: APPEND FROM .xls TYPE XLS && Excel 2.1, 3.0 and 4.0 file types APPEND FROM .wk1 TYPE WK1 && Lotus 1-2-3 version 2.x APPEND FROM .wk3 TYPE WK3 && Lotus 1-2-3 version 3.x APPEND FROM .mod TYPE MOD && Microsoft Multiplan 4.01 APPEND FROM .wks TYPE WKS && Lotus 1-2-3 version 1-A Appending from other file types can also cause the crash although text files and .dbf files do not seem to have any problems.

NOTE: Using the COPY TO command in Visual FoxPro to copy a table out to one of the file types in the preceding list and then appending back into the table from that file does not appear to cause the crash.



RESOLUTION
The IMPORT command can import the file types in the preceding list into a new table. With a little work, you can append this imported table into an existing table. You can use the following sample code instead of the program in the "Steps to Reproduce Behavior" section in order to append the records successfully.

Sample Code
CLOSE DATABASE ALL CLEAR ALL CLEAR

SET SAFETY OFF CREATE TABLE fruit ; (fruit c(12), color c(15), treeorvine c(10), number n(8,2))

INSERT INTO fruit VALUES ("Apple", "Red", "Tree", 5) INSERT INTO fruit VALUES ("Orange", "Orange","Tree", 18) INSERT INTO fruit VALUES ("Grape", "Purple", "Vine", 42) INSERT INTO fruit VALUES ("Blueberry", "Blue", "Bush", 78) INSERT INTO fruit VALUES ("Grapefruit", "Pink", "Tree", 62) INSERT INTO fruit VALUES ("Banana", "Yellow", "Tree", 37) SELECT fruit

WAIT WINDOW "Choose an Excel 2.1, 3 or 4 file" x=GETFILE("xls") SELECT 0 IMPORT FROM (x) TYPE XLS SET SAFETY ON SET DELETED ON DELETE FOR RECNO=1 && To eliminate field name headers in Excel sheet. y=ALIAS

For i=1 TO FCOUNT ALTER TABLE (y) RENAME COLUMN (LOWER(FIELD(i))) TO (FIELD(i,"fruit")) ENDFOR
 * Need to change the field names to match the target table.

SELECT fruit APPEND FROM (y) SELECT (y) USE ERASE (y) SELECT fruit

BROWSE NOWAIT



STATUS
Microsoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article.

This bug was corrected in Visual Studio 6.0 Service Pack 3.

For more information about Visual Studio service packs, please see the following articles in the Microsoft Knowledge Base:

194022 INFO: Visual Studio 6.0 Service Packs, What, Where, Why

194295 HOWTO: Tell That Visual Studio 6.0 Service Packs Are Installed



MORE INFORMATION
This problem occurs more frequently when the table used to append the records into is not empty.

Steps to Reproduce Behavior
WARNING: The following steps cause Visual FoxPro to crash. Please make sure that you save all important data or code before following the steps. It is also a good idea to save all information in any other running applications before you use these steps.   Create a new Excel sheet with the following layout in Sheet1: NOTE: Excel 97 was used to recreate these steps at Microsoft.

     Cell          Data to Enter ---     A1            Fruit B1           Color C1           TreeorVine D1           Number A2           Apple B2           Red C2           Tree D2           50.25 A3           Banana B3           Yellow C3           Tree D3           17.45  In Excel, from the File menu, choose Save As. In the Save As Type drop-down list box, select Microsoft Excel 4.0 Worksheet (*.xls). Name the file fruit4.xls.  In Visual FoxPro 6.0, place the following code in a new program file, save it and then run the program: CLOSE DATABASE ALL CLEAR ALL CLEAR

SET SAFETY OFF CREATE TABLE fruit ; (fruit c(12), color c(15), treeorvine c(10), number n(8,2)) SET SAFETY ON SELECT fruit INSERT INTO fruit VALUES ("Apple", "Red", "Tree", 5) INSERT INTO fruit VALUES ("Orange", "Orange","Tree", 18) INSERT INTO fruit VALUES ("Grape", "Purple", "Vine", 42) INSERT INTO fruit VALUES ("Blueberry", "Blue", "Bush", 78) INSERT INTO fruit VALUES ("Grapefruit", "Pink", "Tree", 62) INSERT INTO fruit VALUES ("Banana", "Yellow", "Tree", 37)

APPEND FROM fruit4.xls TYPE XLS   && This causes the crash. BROWSE NOWAIT 

Keywords: kbbug kbfix kbinterop kbxbase kbvs600sp3fix KB193628

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.