Start Menu -> Pervasive SQL.... -> Documentation - > Pervasive SQL....
Открываем раздел Status Codes and Messages -> Messages -> MKDE
и на MKDE-103 видим
MKDE-103: System Error
The MicroKernel Database Engine returns this message when a system error occurs. See MKDE–2039: System Error: nn.nn.nn for more information.
MKDE–2039: System Error: nn.nn.nn
The MicroKernel returns this message when a system error occurs.
The MKDE uses the System Error messages to record unexpected errors resulting from an operating system call made by the MKDE. For example, if an error is returned when the MKDE makes a file
I/O call to the operating system, that error is recorded in the PVSW.LOG as a System Error.
The format of a system error is id.op.rc where:
Table 2-3 System Error Explanation
id Unique System Error identifier
op Btrieve operation being performed at the time
rc any unexpected return code from the operating system.
The id corresponds to a section of code in the MKDE where the OS call took place. There are different id ranges depending on which MKDE is being used:
Table 2-4 System Error Code Area
100-299 Common source base
300-399 NetWare
400-499 OS/2 (no longer supported)
500-599 Windows 16-bit (Win16 engine longer supported)
600-699 Windows NT/2000
700-799 Windows 95/NT
The common code base contains all the file I/O requests, variable allocations, caching, and so on. The platform specific ranges cover other file open, close, read, and lock requests. These codes can guide us to the portion of the MKDE code that was executing when the System Error occurred. For example, ids ranging from 110 - 124 correspond to the I/O Subsystem of the MicroKernel where disk I/O calls are made, and system errors with these ids usually correspond to file corruption problems. A list of ids is not available publicly because a list without the specific MKDE and knowledge of the code would not have much value.
The second piece of the system error is the operation code. This corresponds to the Btrieve request that was being processed when the error occurred. For example, a 5 is a GetEqual operation. Refer to the Pervasive.SQL Programmer's Reference for more information about Btrieve operation codes. If the system error occurs while the MKDE is performing some task that is not specifically associated with a Btrieve operation, the op will be set to -1.
The third piece of the system error is the OS return code. The meaning of the values reported here varies depending on the OS call made and the type of failure that occurred. A return code value of 0 for different IDs is likely to have different meanings, but in each case the OS did not return an actual error code. An example of a System Error where the OS return code is zero is when the OS call returns successfully, but the data returned by the call is not what was expected. In many cases, the appearance of an occasional System Error does not indicate a problem. It is likely that the operation being performed was retried without an error and processing continued normally.
If there is a problem that would cause an interruption in normal operation, the System Error would correspond to a Pervasive status code returned to the application. For example, attempting to access a physically corrupt file will produce a system error such as 116.5.0 and the application will receive a Status Code 2.
If you experience repeated occurrences of a specific system error, along with abnormal behavior of your application, and you do not find any documentation in our knowledge base about the error, you should contact Pervasive with a description of the system error and the symptoms of failure in the application, and we will provide more details about the system error in question.
The list of Win32 error codes is available on Microsoft's website at
http://msdn.microsoft.com/library/en-us ... _codes.asp.
The main list of OS error codes is contained in the Microsoft file, winerror.h.
--------------------------------------------------------------------------------
Note
One common System Error on NetWare 4.x is a known problem in NetWare's Turbo FAT feature. This problem often manifests as error "MKDE-103 System Error 116.2.0." For more information on this particular topic, please see the following Pervasive Knowledge Base article:
http://support.pervasive.com/eSupport/p ... 508b5d6b61
--------------------------------------------------------------------------------
Из этого видно, что выполняется операция 23 - Get Direct/Chunk - обычная операция, но ее вполне можно заглючить и передать неверные параметры, она довольно хитрая. А раньше вполне возможно это не контролировалось. Также возможен мусор в параметрах запроса, который раньше не влиял, а теперь влияет. Кстати в API для ДОС, которое идет с SDK есть ошибка, которая проявляется иногда только под 2000 и XP.
При каком-то содержимом области параметров для DPMI вызова, которое по документации не используется идет жуткий сбой с идиотским сообщением от винды. Предварительная чистка области памяти решила проблему. Вполне возможно, что и ваша прикладная программа передает какой-то мусор в области памяти, который раньше спокойно пережевывался 6.15.