Hi,
MicroKernel Database Engine Status Codes
2: The application encountered an I/O error
This status code typically indicates a corrupt file, an error while reading from or writing to the disk. One of the following has occurred:
The file is damaged, and you must recover it. Refer to the Pervasive.SQL Advanced Operations Guide for more information on recovering files.
In NetWare, at least one MicroKernel data file is flagged as Shareable. All MicroKernel data files should be flagged as Non-Shareable. The MicroKernel is the only user that accesses the files (on behalf of many users). As the only user, the MicroKernel can control the integrity of the data files. If you flag your MicroKernel data files as Shareable, data corruption can occur.
For pre-v6.0 data files, there is a large pre-image file inside a transaction, and there is not enough disk space for a write to the pre-image file.
For pre-v6.0 data files, there is one pre-image file for multiple data files. For example, if you name the data files CUSTOMER.ONE and CUSTOMER.TWO, both files have pre-image files named CUSTOMER.PRE.
For pre-v6.0 data files that are larger than 768 MB, there is a conflict among locking mechanisms. The file has not been corrupted. Your application can retry the operation until the conflict is resolved (when the competing application releases the lock your application requires).
A pre-v6.0 Btrieve engine attempted to open a v6.x or later MicroKernel file.
With Btrieve for Windows NT Server Edition v6.15.445, 32 bit Windows application may return Status 2 or "MKDE Terminated with Service Specific Error 0" after running an application for an extended period of time.
There was a conflict with the assignment of token handles and permissions. You may receive status 2 or corruption on very busy SMP boxes, when a user is deleted from the Btrieve Monitor and the user immediately reopens the files. There is an FTF for Pervasive.SQL v.7.0 Windows NT and Service Pack 3 for Pervasive.SQL 2000i Windows NT.
Hope that helps a bit,.
Regards
e