Foxbase+/FoxPro Information Sheet

Foxbase+ was last released in August 1988. The last release of the FoxPro 2.x series was in August 1994. While these products are still very usable, they were never written for the latest computers and operating systems. This sheet attempts to point out some of the problems that has risen in the last few years and possible solutions.

FYI: If this sheet doesn't answer your question, check my Frequently Asked Questions papers, FoxPro 2.6 for Mac, FoxPro 2.6 for Unix, or Visual FoxPro 6.0. You could check other web sites, such as Universal Thread, Wiki-FoxForumWiki, or the web site FoxPro Resources. You could post your problem on the Internet newsgroup news://microsoft.public.fox.programmer.exchange. For FoxPro 2.6 problems, you could try the online book Painless Legacy FoxPro Applications on Modern Networks.

Table of Contents

Disclaimer
Error: Can't Read Drive D (I/O Operations failure)
Error: Divide by Zero
Error: Fatal Exception C0000005
Error: Fatal Exception C0000090
Error: Fatal Exception C00000FD
Error: File Access Denied
Error: FoxPro for Unix/Linux, File/Directory problem
Error: FoxPro for Windows Installation (DSHELL)
Error: I/O Operations Fails When Starting FoxPro
Error: Insufficient memory
Error: Internal Consistency Error
Error: Invalid/Missing Memo file
Error: Invalid Seek Offset Error 1103
Error: Not a Database File
Error: Not enough memory
Error: Not enough memory to allocate name table
Error: Object compiled w/ different version of FoxPro
Error: Picture too Big
Error: Sharing Violation Error
Error: Watcom win386 [read error]
Foxbase/FoxPro: Year 2000 bug
Foxbase/FoxPro: Year 2000 Solutions
FoxPro Y1900.PRG
FoxPro 2.6a Upgrade
FoxPro 2.6 for DOS: Windows 98
FoxPro 2.6 for DOS: Windows 2000/NT
FoxPro 2.6 for DOS: Windows 2000/NT/XP Command Prompt
FoxPro 2.6 for DOS: Windows 2000/NT CPU
FoxPro 2.6 for Mac
FoxPro 2.6 for Unix
FoxPro 2.6 for Unix terminfo files
FoxPro 2.6 for Windows: Fast Computers
FoxPro 2.6 for Windows: Fonts
FoxPro 2.6: List Box on Pentium 150Mhz+ machines
FoxPro 2.6 for Windows: Memory
FoxPro 2.6 for Windows: Printing to XP
FoxPro 2.6 for Windows: Report FRX Files
FoxPro 2.6 for Windows: Transporting FoxPro for DOS Reports
FoxPro 2.6 for Windows: Windows 2000
Runtime: Create your own runtime
Runtime: Launcher
Visual FoxPro 6.0
Where to Purchase FoxPro 2.6

Disclaimer

All information contained on this sheet is provided as is. There are no warranties, expressed or implied. The author and contributors may not be held liable for any damages, including any lost profits or other incidental or consequential damages arising out of or inability to use this information. Use of this information constitutes acceptance of this disclaimer. You should always double check any information before acting upon it.

This sheet contains references and/or links to other sites or to third party suppliers of goods and/or services. Such references or links should not be considered as an endorsement by the sponsors of this web site.


Error: Cannot read drive D: (I/O Operation Failure)

If a FoxPro application was compiled on drive D (be it EXE, APP, or FXP), when the application is executed it will search for it's source code on drive D. Many computers have their CD-ROM or Zip disk as a drive D. So if the CD-ROM is empty, FoxPro will report 'Cannot read drive D:'. If your CD-ROM is not connected, or don't have a drive D, FoxPro may report 'I/O operation failure'.

Note: This problem is not unique to drive D. It can happen on any higher drive. Say the project was compiled on drive F and the client site has a CD-ROM drive F.

There are a couple of solutions. One solution is to move your project to drive C. My personal favorite is to add a 'SUBST K: D:\' to the AUTOEXEC.BAT file. Then store and compile all your FoxPro applications on drive K. This is a simple solution, since not many people will have a CD-ROM drive K.

If you can't recompile your applications, there is a fixdrive utility available on the Abri Technologies web page. You can also read the Microsoft KB article on I/O failure.


Error: Divide by Zero

When FoxPro for Windows is launched, a timing loop is executed. On fast computers (Pentium 333Mhz+ machines), the timing count can become huge, resulting in a 'divide by zero' error. Thus preventing you from running FoxPro for Windows. Microsoft offers a free utility to patch FoxPro 2.6a for Windows and it's associated runtime.

To patch FoxPro 2.6a for Windows, click here for the file PATCH_26.EXE (IPATCHFP.EXE for any version of FoxPro 2.x for Windows). If this hyperlink doesn't work, do a www.goggle.com search for "Fixes Divide by Zero Error on Fast Computers". The first line should be the support.microsoft.com site.

For additional solutions, see FoxPro for Windows: Fast Computers.


Error: Fatal Exception Code=C0000005

As I understand it, the C5 error has been around since Visual FoxPro was created. I've never seen this error, but most of my procedures are still written in FoxPro 2.x code. It can be caused by a variety of problems. Here's what I've learned thus far:

• The problem is often times the result of a corrupted resource file, otherwise known as a foxuser.dbf file. If your application doesn't need a resource file, then turn it off in your config.fpw file: RESOURCE=OFF. If that doesn't fix the problem, try removing or replacing the suspected foxuser.dbf and foxuser.fpt files.

• Someone suggested the error has to do with docking a toolbar restoring and maximizing the desktop. Again, the foxuser.dbf file might be corrupted and should be replaced.

• The problem might be the result of a HP Printer driver. The standard Windows HP IV printer driver doesn't cause this problem. If your client is using a HP 4300, don't use the 4300 printer driver, use the HP IV driver to run the HP 4300 printer and set the workstation's default printer to an HP printer using the HP IV driver.

• The problem might be a third party print driver. You might have to remove/reinstall each third party driver in your printer folder until you find the bad one. A faulty print driver should be removed from your workstation, even if the driver is not being used by the default printer. Sometimes a faulty print driver has additional software, which also needs to be removed (check add/remove programs). If you suspect the server has a faulty print driver, don't use NDPS as it sends the driver to the workstation during printing. Use the legacy queue based printing in Novell.

• Fatal exception errors can be caused by third party video drivers. It is worth checking those things to make sure they are either Windows standard drivers (first choice) or the latest vendor provided drivers available. Some people get C5 errors running VFP with the video set to 256 colors and 1024 x 768 resolution. Try changing the video settings.

• Another person reported a C5 error opening a form. I heard the problem was resolved by reindexing every table used by the form. (open the table, then "REINDEX").

If you still having C5 problems, see Wiki-FoxForumWiki has more information.


Error: Fatal Exception Code=C0000090

People reported this random problem on Win2000 and WinNT machines. Turned out it was caused by a divide by zero condition in code and somehow the VFP error handler was not triggered - it passed back to the OS as an exception error.


Error: Fatal Exception Code=C00000FD

People reported this problem when they move files between computers with different types of FAT (File Allocation Table). For example, Windows 98 to/from Windows NT/2000.

As I understand it, this problem is the result of a corrupted dbf file. Try to REINDEX and/or PACK your file. Might have to perform a COPY TO WITH CDX.


Error: File Access Denied

When using a shared a runtime unit, you might encounter a boot error such as 'file access denied'. On networks I've seen this happen when the CONFIG.FPW has RESOURCE = ON and the foxuser.dbf file doesn't exist. FoxPro tries to create a temporary foxuser.dbf file, but cannot. Either the directory doesn't exist or the user has no read/write privileges.

I've also seen this boot error on older networks. Sometimes sharing a runtime unit requires all *.ESL, *.ESO, and *.EXE files to be marked as read-only. Really old versions of DOS might require SHARE.EXE to be loaded.


Error: FoxPro for Unix/Linux File/Directory problem

INODE number > 65,535 Problem: When it starts, the FoxPro application might think it is in a different directory. Or the application will destroy opened files in a random way: data for one file is written into another, wrong files got deleted from time to time, etc. The problem has to do with drives > 30Gig. Since FoxPro is a SCO binary, it uses the inode-number of open files to keep track of which files are already open. But it only sees the last 16 bit of the 32bit inode number. From time to time it opens a file with an inode-number that has the same 16-bit-value as another open file. One solution is to move your application to a directory with an INODE number < 65,535 (ls -i). Also make sure any directory referenced by FoxPro also has a low INODE number. There is a patch, but it's only in the alpha stage. To read further on this problem, see the thread on sourceforge.net linux-abi project.


Error: FoxPro for Windows Installation (DSHELL)

I heard of this problem on the newsgroup microsoft.public.fox.programmer.exchange. Someone tried to install FoxPro for Windows on a Windows XP machine and got an error message: "An error has occurred in your application / If you choose Ignore you should save your work in a new file / If you choose close, your application will terminate.". The error window within the FoxPro install window is titled "DSHELL".

As I understand it, the problem is caused by a menu option in the Start Menu folder with a name greater than 49 characters in length (FoxPro 2.6 has made before long file names came out). If you want to install FoxPro for Windows, you must decrease the length of the name.


Error: Input/Output Operation Fails When Starting FoxPro

Visual FoxPro (or FoxPro for Windows) was installed from the CD-ROM disc without installing the help files, and the CD-ROM disc is not in the drive. Just make sure you have a CD in the client's CD drive.  See Error: Can't Read Drive D.


Error: Insufficient memory

If you get "insufficient memory" errors from FoxPro for DOS, try launching it with the +X option. Otherwise, try increasing the following settings in your config.fp, config.fpm, config.fpw, or config.fpu


MVARSIZE: Set the maximum size of any given memory variable. I don't know the default, but start with 50 (50K).

MVCOUNT: Sets the maximum number of memory variables that FoxPro can maintain. This value can range from 128 to 65,000, default is 256 in FoxPro for DOS, 1024 in FoxPro for Windows.

MEMLIMIT: The syntax for this statement is MEMLIMIT=%,min,max where % is a calculated amount based on available memory and min and max represent actual minimum and maximum allocations.

For example, specifying MEMLIMIT=40,1024,4096 allocates 40 percent of your system's available memory to FoxPro with a minimum allocation of 1024K and a maximum of 4096K.


Error: Internal Consistency Error

The most common causes of this error is either bad indices or low resources (not emough memory and/or hard drive space). If you open a dbf file and get this error, try to remove/replace the index file. Otherwise, right-mouseclick mycomputer-> properties-> performance. If you see a low percentage number, you might have to reduce the number of background applications. Either that or add more RAM to your computer.

You also get "Resource Manager - Internal Consistency Error" with FoxPro 2.6a for Windows, transporting FoxPro for DOS reports. If you try to change font or font pitch during transport, FPW 2.6a will crash. I heard this problem has to do with FPW 2.6a and FONTMETRIC(). The solution is to change fonts only after transport.

FYI: I have been able to use courier 10 pitch during transport. Better than the default arial 10 pitch. Select the tranporter fonts, then just press [ok].


Error: Invalid/Missing Memo File

When you try to open a DBF file, you may see the error message "invalid/missing memo file". In the freeware section of this web site is a utility called Data Wire Four. DW4 has the ability to repair a corrupted memo file header. Other repair utilties are available from Abri Technologies.

Note: A corrupted memo file may appear normal, except when you try to PACK a couple of times. If you suffer from a PACK problem, create a brand new DBF file and append your data from the corrupted DBF file. DW4 does it this way.


Error: Invalid Seek Offset Error 1103

There is index corruption, likely caused by those network disconnects. The operating system and/or network hardware is your primary suspect. For more information, see http://fox.wikis.com/wc.dll?Wiki~InvalidSeekOffsetError1103~VFP


Error: Not a database File

When you try to open a FoxPro 2.6 DBF table/file, you may see the error message "not a database table/file".The most common cause for this error is a bad record count. In the freeware section of this web site is a utility called Data Wire Four. DW4 has the ability to repair a bad record count. Other repair utilties are available from Abri Technologies.

Using FoxPro 2.6 to open a Visual FoxPro DBF file will also cause this error. To avoid this error, keep your DBF files in the FoxPro 2.x format (COPY TYPE FOX2X).

A Plockyn (a.plockynigg.co.uk) had a mangled DBF and couldn't get DW4 to work. He used "simple code" which just added a blank record:

* Before trying this code, make a backup of your tables!
wait window "If you get a 'Not a database file' click ignore" nowait
use MyTable                  && replace with dbf name
wait window "ESC to cancel or any key to continue adding blank record"
fh = FOPEN("MyTable.dbf", 2) && replace with dbf name
=FSEEK(fh, 0, 2)             && go to EOF               
=FWRITE(fh, SPACE(123))      && at least add the count of one record length
=FCLOSE(fh)                  && corrected original with (fh) and FOFEN !!
wait window "If you can see the data then the fix was successful"
use MyTable exclusive        && replace with dbf name
go bottom
BROWSE LAST nowait
reindex


Error: Not enough memory

The error "there is not enough memory to complete this operation" on a multiple application, multiple workstation system is probably the result of a blown index. Try rebuilding your index (you might have to delete your cdx file, then rebuild it).


Error: Not enough memory to allocate name table

You are trying to run FoxPro 2.6 for Unix with an outdated Linux-abi patch. For these and other related FPU installation problems, see the FoxPro 2.6 for Unix FAQ Sheet.


Error: Object file was compiled in a different/previous version of FoxPro

Try to run a FoxPro 2.6 FXP file with a Visual FoxPro runtime, and you get "Object file was compiled in a previous version of FoxPro". In my applications, there should be a V*.APP file, compiled in Visual FoxPro 6.0. If not, you may have to install a FoxPro 2.6 runtime. FoxPro 2.6 runtimes are available in the freeware section of this web site.

In this last release, I've recompiled all my V*.APP files in Visual FoxPro 6.0. Try to run a Visual FoxPro APP file with a Visual FoxPro 5.0 runtime, and you get "Object file was compiled in a different version of FoxPro". Download a Visual FoxPro 6.0 runtime, available in the freeware section of this web site.


Error: Picture too Big

The "Picture too big" type error has usually been related to compressed BMP images.

FoxPro for Windows does not handle large bitmaps (pixels) or bitmaps with more than 16 colors very well. Try to avoid them. If you wish to use a repetitive or tiling bitmap, use a 50x50 one.


Error: Sharing Violation

The most common cause of this error is to open a file exclusively (USE tmp.dbf EXCLUSIVE or APPEND FROM tmp.dbf), with tmp.dbf already opened. Another cause is having tmp.dbf set to read-only. This error happens at the OS level, before FoxPro can trigger error handling. My only suggestion is to try a nFILE = FOPEN('tmp.dbf',2). If nFILE > 0, the file can be opened exclusively (after you FCLOSE(nFILE)).


Error: Watcom win386 [read error]

You might see this error running FoxPro 2.6 for Windows on Novell 4.1 with Client32 version 2.2. I've been told this error is caused by other applications (Lotus Notes) hogging memory. Even when closed, they do not release all of the memory. The only way free up the memory is to restart the machine.

To reduce the occurrence of this error, teach the users to open FPW applications first. Also advised them to leave the FPW applications open all day, rather than going in and out of them.

One person actually solved this problem by uninstalling netware client 2.2 and installing client 3.0.

Note: To be a good "sharing" application, you should limit how much memory your FPW allocates by including a MEMLIMIT statement in the CONFIG.FPW file. For example, specifying 'MEMLIMIT = 60, 4096, 10000' allocates 60 percent of your system's available memory to FoxPro with a minimum allocation of 4096K and a maximum of 10000K.


Foxbase+/FoxPro: Year 2000 bug

Since the early days of dBase, most xBASE dialects have been able to retrieve and store year 2000 dates. But to save space on crowded data entry screens, and to maintain customer comfort levels, many applications prompt with eight-digit dates (mm/dd/yy), two-digit years.

When you cannot enter the century, the language must use a default. The "bug" in Foxbase+/FoxPro is that the century default will always be "19". Thus, typing a date of "01/01/00" will translate to "01/01/1900". Always.

Oh, some people say there is also a problem the leap day February 29, 2000. But this problem is the result of the century default. Typing "02/29/00" will translate to "02/29/1900", which is not a valid leap day.


Foxbase+/FoxPro: Year 2000 solutions

In my applications, I use SET CENTURY ON. Users will be prompted with ten-digit dates (mm/dd/yyyy), four-digit years. The century default is still "19", and typing "01/01/00" will still translate to "01/01/1900", but at least you can type "01/01/2000" to input the correct date.

For people who need a century default of "20", there are other solutions. For one, you can use the Visual FoxPro version of my applications. The Visual FoxPro version will look and feel like FoxPro for Windows. The Visual FoxPro code, however, includes the command: SET CENTURY ROLLOVER 50. This command gives you century rollover. That is, typing "01/01/20", will translate to "01/01/2020", while typing "01/01/60" will translate to "01/01/1960".

The other solution is to purchase a product called Y2KFOX from Communication Horizons. They have developed a front-end launcher for Foxbase+/FoxPro to enable century rollover. It also handles the Feb. 29, 2000 leap day. Simple to install. You don't need to change code. Very nice.


Foxbase+/FoxPro: Year 2000 solution - Y1900.PRG

Ok, let's suppose you continued to use the old Foxbase version of one of my applications after January 1, 2000. Or suppose you forgot that typing "01/01/00" in Foxbase+/FoxPro 2.x translates into "01/01/1900". Well, that's why I wrote Y1900.PRG.

Y1900.PRG is a simple Y2K program. It will check all the DBF files in the current directory. Any date field, in the specified date range, will be incremented 1200 months. 01/01/1900, for example, will be incremented to 01/01/2000.

Note that Y1900.PRG won't touch dates stored in character fields (C(8)). Also remember to backup your data files before using such a program.


FoxPro 2.6a Upgrade

For FoxPro 2.6 people wishing to apply the 2.6a upgrade patch, click here.


FoxPro 2.6 for DOS: Windows 98

FoxPro 2.6 for DOS should still work on most Window platforms. On my Windows 98 SE machine, however, FoxPro for DOS is not as stable. I can startup the MS-DOS prompt, run and exit the FoxPro executable, no problem. If I restart the executable more than a couple of times, however, I risk memory corruption. If you need to restart FoxPro, I suggest launching a new copy of the MS-DOS prompt.


FoxPro 2.6 for DOS: Windows 2000/NT

Couple of people had problems with slow execution under Windows 2000. One person had mapped drives and fixed the slow-down by switching to the old DOS SUBST command.

According to the other person's hardware guy, the problem was the program ntvdm.exe. This program executes under Windows 2000 as a process and is in charge of the DOS applications. For some reason, it couldn't handle the load of 20 users. The hardware guy fixed the problem by installing a program called Tame.

Just a couple of suggestions. Check to see if your CONFIG.NT or CONFIG.SYS has at least FILES=240. You might also want to add this command (or equivalent) to your CONFIG.SYS:

SHELL=%SYSTEMROOT%\SYSTEM32\COMMAND.COM /E:2048


FoxPro 2.6 for DOS: Windows 2000/NT/XP Command Prompt

If FoxPro for DOS seems to be getting smaller you may have to adjust your Command Prompt. Under Start->All Programs->Accessories, right-click the Command Prompt, Send To->Desktop (create shortcut). Now right-click the Command Prompt icon, select properties. Under the Shortcut tab, run Maximized. Under the Options tab, run full screen. Under the Layout tab, set the screen buffer size to 80 width by 25 height. Oh, make sure you invoke FoxPro for DOS with the +X option. Otherwise, you might be short of memory.

 

FoxPro 2.6 for DOS: Windows 2000/NT CPU

As I understand it, FoxPro for DOS will use almost 100% of the available CPU time on a NT 4.0 or Windows 2000 machine. There have been several reported ways to solve this problem. If you have NT 4.0 SP4, upgrading to SP5 might solve the problem. Another way is to type the following from the DOS prompt:

start /low foxprox.exe -cconfig.fp myapp.app

...the /low tells NT to give this application low priority when running in the background.

Another solution is to have the application SET CLOCK OFF. In my applications, you can use the DOS environment variable SET STATUS = OFF to turn off the clock (see configuration manual).

Here's a solution from Tomáš Chvátal:

"I wrote little program that solve this problem. If you want, you can download it from www.ezop.cz/sw/foxfree.com. This software you can start before FoxPro. Software "monitoring" activity of FoxPro and Fox will take only 0.1 % while waiting on keyboard/mouse. This software is free. I have also version in BIN file, callable from inside FoxPro program."


FoxPro 2.6a for Macintosh

On one project, I upgraded most of my software to be FoxPro 2.6a for Macintosh compatible. Still a work in progress. I'd like to thank everyone on the CompuServe Macintosh and MS Developer forums, plus all the people on the Internet newsgroup news://microsoft.public.fox.programmer.exchange.

To help other people, I created a FoxPro 2.6a for Macintosh FAQ sheet. It should answer some of your installation and compatibility questions. In addition, the FoxPro 2.6a for Macintosh runtime is available on the freeware section of this web site.


FoxPro 2.6 for Unix

For my latest project, I upgraded most of my software to be FoxPro 2.6 for Unix/Linux compatible. A work in progress, but a start. I'd like to thank everyone on the CompuServe Unix and MS Developer forums, plus all the people on the Internet newsgroup news://microsoft.public.fox.programmer.exchange. Special thanks to John Sandell and George Carden for all their help.

If you're installing FoxPro 2.6 for Unix on a non-SCO version of Unix, like Linux or FreeBSD, you need to watch out for a couple of things. If you start up FoxPro and get a 'floating point exception' error message, might not have your iBCS component installed. I've also seen this message using an incompatible terminfo file. If you start up FoxPro and get 'Not enough memory to allocate name table', you have an outdated linux-abi patch. If you start FoxPro and get 'cannot find terminfo database', your system probably stores the terminfo database in /usr/share/terminfo (FoxPro searches for /usr/lib/terminfo).

For these and other related FPU installation problems, see the FoxPro 2.6 for Unix FAQ Sheet.

FYI: Click here to find out where to purchase a copy of FoxPro for Unix. If you cannot obtain your own copy, remember that a FoxPro 2.6 for DOS/Windows compiled FXP or APP file will run on any OS platform. As long as you have the correct runtime. Runtimes are available in the freeware section of this web site.


FoxPro 2.6 for Unix: terminfo files

The following is a list of customized terminfo source files:

Each terminfo source file might have one or more terminfo definitions. Check the file itself to determine how to define the FOXTERM environment variable (see the FoxPro 2.6 for Unix FAQ Sheet). To help you customize, I created terminfo.prg, a simple FoxPro program that will compare two terminfo source files.


FoxPro 2.6 for Windows: Fast Computers

When FoxPro for Windows is launched, a timing loop is executed. On fast computers (Pentium 333Mhz+ machines), the timing count can become huge, resulting in a 'divide by zero' error. Thus preventing you from running FoxPro for Windows. There are a couple of solutions. For example, you can switch to Visual FoxPro. Visual FoxPro is an application designed for fast Pentium machines.

To patch FoxPro 2.6a for Windows, click here for the file PATCH_26.EXE (IPATCHFP.EXE for any version of FoxPro 2.x for Windows). If this hyperlink doesn't work, do a www.goggle.com search for "Fixes Divide by Zero Error on Fast Computers". The first line should be the support.microsoft.com site.

Before Microsoft created an official patch, there was Andrew Forber's DZPATCH. I used DZPATCH.PRG on my FoxPro 2.6a for Windows. Seemed to work fine. Even ran a file comparison with the Microsoft patched files. Saw no difference. Now DZPATCH works with any version of FoxPro 2.x for Windows. But, of course, there are no warranties. If you can't get a copy of DZPATCH from Andrew Forber, try Abri Technologies.

The latest super fast Pentiums may have reintroduced timing problems. The now defunct Visual Software Solutions created a front-end launcher, originally called foxstart, now called slowstart. It "slows down" the launching of a specified 16-bit program, such as FoxPro for Windows. Data Customs, Inc. also offers a copy of foxstart. If you haven't patched your FoxPro 2.6a for Windows, or are still experiencing timing problems on the latest Pentiums, you may want to check them out.


FoxPro 2.6 for Windows: Fonts

Had a situation where a client could not read a Word 97 document unless FoxPro for Windows was running. Come to find out, the document had FoxPro for Window reports in it. These reports use the font FOXPRINT.

When you create FoxPro for Windows runtime distribution disk(s), fonts are stored in the Windows 95 system directory. What the Word 97 document needs is the FOXPRINT.TTF font file in the Windows 95 fonts directory. To correct the problem, simply copy the file C:\WINDOWS\SYSTEM\FOXPRINT.TTF into the C:\WINDOWS\FONTS directory. You might also need the file C:\WINDOWS\SYSTEM\FOXPRINT.FOT.

With the FoxPro for Windows and Visual FoxPro setup wizards, you have the ability to add your own installation commands. Although I haven't done it, it should be possible to create distribution disk(s) that copy font files to the Windows 95 font directory.


FoxPro 2.6 for Windows: List boxes on Pentium 150MHZ+ machines

In FoxPro for Windows, on fast Pentium machines, list boxes displaying database fields and having more than about 600 records often run into the "Insufficient Memory" error message.

There are a couple of solutions. You can switch to Visual FoxPro. Visual FoxPro was made for faster computers.

Another suggestion is to increase the MEMLIMIT command in your CONFIG.FPW file. For example, specifying 'MEMLIMIT = 60, 4096, 10000' allocates 60 percent of your system's available memory to FoxPro with a minimum allocation of 4096K and a maximum of 10000K.

Another solution is to slow things down by padding your list boxes. I don't use screen sets much, so I can't give any more advice. I suggest you go to the Abri Technologies web page for more help.


FoxPro 2.6 for Windows: Memory

A patched FoxPro 2.6a for Windows should be pretty stable, but can be a memory hog at high resolution. If you're video resolution, for example, is at 800x600x16million colors, lower it 800x600x256color. See if that helps.

If you are unable to run FoxPro for windows, due to insufficient memory, add a MEMLIMIT statement to your CONFIG.FPW file. The syntax for this statement is MEMLIMIT=%,min,max where % is a calculated amount based on available memory and min and max represent actualminimum and maximum allocations. For example, specifying MEMLIMIT=40,1024,4096 allocates 40 percent of your system's available memory to FoxPro with a minimum allocation of 1024K and a maximum of 4096K.

FYI: SYS(2019) tells you exactly where your CONFIG.FPW is located. And remember that changes to the CONFIG.FPW don't go into effect into the next time you launch FoxPro.

If you still have problems, I suggest posting your problem on the Internet newsgroup news://microsoft.public.fox.programmer.exchange.


FoxPro 2.6 for Windows: Printing to Windows XP

Many people report problems with FoxPro 2.6 for Windows, printing to Windows XP. On my machine, I get a "General Protection Fault". Other people will experience "Unsupported Protocol".

In my case, my application was sending raw out directly to the printer (using ???). One solution is not to send raw output to the printer. If you have a more recent HP print driver, try switching to an older (more seasoned) driver.

Andrew Howell of microsoft.public.fox.programmer.exchange help me create an actual workaround to this bug. For code and details, click here.

If you crash using a FRX report, but you might want to remove the printer definition (see next section).


FoxPro 2.6 for Windows: Report FRX files

A lot of people have problems with report FRX files. Mostly because FoxPro for Windows/Visual FoxPro FRX files store their own printer information. After you complete a MODIFY REPORT, the current printer is stored in the FRX file. When you print a report, the FRX file will send output to the stored printer. If that printer doesn't exist, however, results might be unpredictable. Could even cause a computer crash.

There is a couple of ways to handle this situation. You could remove the printer definition stored in the FRX report (open the FRX file as a table and look at the EXPR, TAG and TAG2 fields in the first record). To remove this printer definition, go to the Microsoft KB article "How To Use the Default Windows Printer in Visual FoxPro".

You could also that prompt the user for a printer. The selected printer can then be installed on a temporary copy of the report FRX file, which is used to print the report. To see how this works in code, view my Visual FoxPro 6.0 FAQ sheet, the section on "Programming Changes: REPORT FORM".

One other suggestion. If you're crashing on your REPORT FORM command, add a FLUSH command before it. Less chance of losing data that way.


FoxPro 2.6 for Windows: Transporting FoxPro for DOS Reports

When transporting FoxPro for DOS reports into FoxPro for Windows, you might run into a couple of problems. If you try to change font or font pitch during transport, FPW 2.6a will crash (see error: Resource Manager - Internal Consistency Error). The solution is to change fonts only after transport.

The other issue is about text that will no longer print. All you get is solid black type, either in print or MODIFY REPORT. The solution is to do a [Ctrl]-[A], select all. Then object->mode and change the mode from opague to transparent.


FoxPro 2.6 for Windows: Windows 2000

Got this e-mail short time ago: >> I came across your website today looking for a solution to a problem I have running FoxPro. I'm wondering if you could help me out. I'm trying to run FoxPro 2.6a for windows on Win2K, and every time I start the program the startup screen is displayed momentarily and then the program exits. I've applied the patch from Microsoft to slow down the processor speed and also all the 2.6a patches available from Microsoft. Do you know if FoxPro 2.6 can run on Win2K? I had no problems running it on Win98. I'd really appreciate it if you had any advice for me on this. thanks.<<

I worked with this person for the longest time. Tried everything. Finally did a hard drive wipe and reinstalled Windows 2000. A real pain, having to reinstall all those applications, but it worked! I still suspect a bad register entry, but could never pin it down.

Note: Installing Windows from scratch is a last step resort. Be sure to perform (and verify) a complete backup first.


Runtime: Create Your Own Runtime

Suppose you have a FoxPro application on a network file server. Your network has fifty workstations. With FoxPro for DOS or FoxPro for Windows, it is possible to include the runtime files with the application. With Visual FoxPro, however, you most likely need to reinstall the application on each workstation.

One solution is to create your own Visual FoxPro runtime. Download FOXRW.PRG. Compile FOXRW.PRG as a stand-alone executable launcher called VFPR.EXE. Use the setup wizard to create your installation disk(s).

You can now install a runtime on each workstation. For each application, create a shortcut icon. Have the shortcut icon launch VFPR.EXE. Have VFPR.EXE execute your application's main APP or FXP file. Oh, don't forget to set the icon's "start-in/working directory" to the application directory.

Note: You can apply this same technique to create FoxPro 2.6 runtimes. For more information about runtimes, see in the freeware section of this web site.


Runtime: Launcher

FoxPro 2.6a for DOS/Windows runtimes are simple 16-bit applications. Visual FoxPro 6.0 runtime requires Windows 95/NT. If you obtained a FoxPro runtime elsewhere, you might still need an executable launcher. A launcher is a simple EXE program that will execute your main menu APP or FXP file. The following launchers were compiled from FOXRW.PRG:


Visual FoxPro 6.0

On an early project, I upgraded all my FoxPro 2.6 software to be Visual FoxPro 6.0 compatible. Upgraded, not converted. My software still runs on FoxPro 2.6 as well as Visual FoxPro 6.0. I'd like to thank everyone on the CompuServe MS Developer forum, plus all the people on the Internet newsgroup news://microsoft.public.fox.programmer.exchange.

To help other people to upgrade, I created a Visual FoxPro 6.0 FAQ sheet. It should answer some of your compatibility questions. In addition, the Visual FoxPro 6.0 runtime is now available in the freeware section of this web site.


Where to purchase FoxPro 2.6

People always ask me where to purchase a copy of FoxPro 2.6. I know you can't get any floppy disks from Microsoft anymore. You might try ebay.com. Keep checking them. Copies float on and off that site all the time. Also try one of the following:

EMS Professional Software

Retro Tools CC Systems, a Florida consulting firm: (727) 596-1460. FoxPro for Unix.

Internet newsgroup news://microsoft.public.fox.programmer.exchange.

In the event you can't find a development copy for your operating system, don't despair. A FoxPro 2.6 for DOS/Windows compiled FXP or APP file will work just fine in FoxPro 2.6 for DOS, FoxPro 2.6 for Windows, FoxPro 2.6 for Macintosh, or FoxPro 2.6 for Unix. All you need is a runtime, which you can find in the freeware section of this web site.

Return to Home

Copyright © 2005 Dennis Allen. My email address is: dennisdennisallen.com.

This web page was last updated 04/03/08