
Function pxerrmsg$ (ByVal Error_Code As Integer)
   Select Case Error_Code
      Case 0
         pxerrmsg$ = "Success"                                    'PXSUCCESS
      Case 1
         pxerrmsg$ = "Drive not ready"                            'PXERR_DRIVENOTREADY
      Case 2
         pxerrmsg$ = "Directory not found"                        'PXERR_DIRNOTFOUND
      Case 3
         pxerrmsg$ = "File is busy       "                        'PXERR_FILEBUSY
      Case 4
         pxerrmsg$ = "File is locked     "                        'PXERR_FILELOCKED
      Case 5
         pxerrmsg$ = "Could not find file"                        'PXERR_FILENOTFOUND
      Case 6
         pxerrmsg$ = "Table is corrupted "                        'PXERR_TABLECORRUPTED
      Case 7
         pxerrmsg$ = "Primary index is corrupted  "               'PXERR_XCORRUPTED
      Case 8
         pxerrmsg$ = "Primary index is out of date"               'PXERR_XOUTOFDATE
      Case 9
         pxerrmsg$ = "Record is locked       "                    'PXERR_RECLOCKED
      Case 10
         pxerrmsg$ = "Sharing violation      "                    'PXERR_DIRBUSY
      Case 11
         pxerrmsg$ = "Sharing violation      "                    'PXERR_DIRLOCKED
      Case 12
         pxerrmsg$ = "No access to directory      "               'PXERR_DIRNOACCESS
      Case 13
         pxerrmsg$ = "Sort for index different from table "       'PXERR_XSORTVERSION
      Case 14
         pxerrmsg$ = "Single user, but directory is shared"       'PXERR_DIRNOTPRIVATE
      Case 15
         pxerrmsg$ = "multiple PARADOX.NET files"                 'PXERR_NETMULTIPLE
      Case 21
         pxerrmsg$ = "Insufficient password rights"               'PXERR_INSUFRIGHTS
      Case 22
         pxerrmsg$ = "Table is write protected    "               'PXERR_TABLEWRITEPRO
      Case 30
         pxerrmsg$ = "Data type mismatch"                         'PXERR_TYPEMISMATCH
      Case 31
         pxerrmsg$ = "Argument out of range"                      'PXERR_OUTOFRANGE
      Case 33
         pxerrmsg$ = "Invalid argument"                           'PXERR_INVPARAMETER
      Case 40
         pxerrmsg$ = "Not enough memory to complete operation"    'PXERR_OUTOFMEM
      Case 41
         pxerrmsg$ = "Not enough disk space to complete operation"'PXERR_OUTOFDISK
      Case 50
         pxerrmsg$ = "Another user deleted record  "              'PXERR_RECDELETED
      Case 70
         pxerrmsg$ = "No more file handles available"             'PXERR_OUTOFFILEHANDLES
      Case 72
         pxerrmsg$ = "No more table handles available"            'PXERR_OUTOFTABLEHANDLES
      Case 73
         pxerrmsg$ = "Invalid date given    "                     'PXERR_INVDATE
      Case 74
         pxerrmsg$ = "Invalid field name    "                     'PXERR_INVFIELDNAME
      Case 75
         pxerrmsg$ = "Invalid field handle  "                     'PXERR_INVFIELDHANDLE
      Case 76
         pxerrmsg$ = "Invalid table handle  "                     'PXERR_INVTABLEHANDLE
      Case 78
         pxerrmsg$ = "Engine not initialized"                     'PXERR_NOTINITERR
      Case 79
         pxerrmsg$ = "Previous fatal error; cannot proceed"       'PXERR_INVENGINESTATE
      Case 81
         pxerrmsg$ = "Table structures are different"             'PXERR_STRUCTDIFFER
      Case 82
         pxerrmsg$ = "Engine already initialized"                 'PXERR_ALREADYINIT
      Case 83
         pxerrmsg$ = "Unable to perform operation on open table"  'PXERR_TABLEOPEN
      Case 86
         pxerrmsg$ = "No more temporary names available"          'PXERR_NOMORETMPNAMES
      Case 89
         pxerrmsg$ = "Record was not found"                       'PXERR_RECNOTFOUND
      Case 94
         pxerrmsg$ = "Table is indexed    "                       'PXERR_TABLEINDEXED
      Case 95
         pxerrmsg$ = "Table is not indexed"                       'PXERR_TABLENOTINDEXED
      Case 96
         pxerrmsg$ = "Secondary index is out of date"             'PXERR_SXOUTOFDATE
      Case 97
         pxerrmsg$ = "Key violation"                              'PXERR_KEYVIOL
      Case 98
         pxerrmsg$ = "Could not login on network (to PARADOX.NET)"'PXERR_NOTLOGGEDIN
      Case 99
         pxerrmsg$ = "Invalid table name"                         'PXERR_INVTABLENAME
      Case 101
         pxerrmsg$ = "End of table"                               'PXERR_ENDOFTABLE
      Case 102
         pxerrmsg$ = "Start of table"                             'PXERR_STARTOFTABLE
      Case 103
         pxerrmsg$ = "No more record handles available"           'PXERR_OUTOFRECHANDLES
      Case 104
         pxerrmsg$ = "Invalid record handle"                      'PXERR_INVRECHANDLE
      Case 105
         pxerrmsg$ = "Operation on empty table"                   'PXERR_TABLEEMPTY
      Case 106
         pxerrmsg$ = "Invalid lock code"                          'PXERR_INVLOCKCODE
      Case 107
         pxerrmsg$ = "Engine not initialized with PXNetInit"      'PXERR_NONETINIT
      Case 108
         pxerrmsg$ = "Invalid file name"                          'PXERR_INVFILENAME
      Case 109
         pxerrmsg$ = "Invalid unlock"                             'PXERR_INVUNLOCK
      Case 110
         pxerrmsg$ = "Invalid lock handle"                        'PXERR_INVLOCKHANDLE
      Case 111
         pxerrmsg$ = "Too many locks on table"                    'PXERR_OUTOFLOCKHANDLES
      Case 112
         pxerrmsg$ = "Invalid sort order table"                   'PXERR_INVSORTORDER
      Case 113
         pxerrmsg$ = "Invalid net type (PXNetInit)"               'PXERR_INVNETTYPE
      Case 114
         pxerrmsg$ = "Invalid directory name"                     'PXERR_INVDIRNAME
      Case 115
         pxerrmsg$ = "Too many passwords specified"               'PXERR_TOOMANYPASSW
      Case 116
         pxerrmsg$ = "Invalid password"                           'PXERR_INVPASSW
      Case 117
         pxerrmsg$ = "Buffer too small for result"                'PXERR_BUFTOOSMALL
      Case 118
         pxerrmsg$ = "Table is busy"                              'PXERR_TABLEBUSY
      Case 119
         pxerrmsg$ = "Table is locked"                            'PXERR_TABLELOCKED
      Case 120
         pxerrmsg$ = "Table was not found"                        'PXERR_TABLENOTFOUND
      Case 121
         pxerrmsg$ = "Secondary index was not found"              'PXERR_SXNOTFOUND
      Case 122
         pxerrmsg$ = "Secondary index is corrupted"               'PXERR_SXCORRUPTED
      Case 123
         pxerrmsg$ = "Secondary index is already open"            'PXERR_SXOPEN
      Case 124
         pxerrmsg$ = "Disk is write protected"                    'PXERR_DISKWRITEPRO
      Case 125
         pxerrmsg$ = "Record too big for index"                   'PXERR_RECTOOBIG
      Case 126
         pxerrmsg$ = "General hardware error"                     'PXERR_GENERALFAILURE
      Case 127
         pxerrmsg$ = "Not enough stack space to complete operation"'PXERR_OUTOFSTACK
      Case 128
         pxerrmsg$ = "Table is full"                              'PXERR_TABLEFULL
      Case 129
         pxerrmsg$ = "Not enough swap buffer space to completeoperation" 'PXERR_OUTOFSWAPBUF
      Case 130
         pxerrmsg$ = "Table is SQL replica"                       'PXERR_TABLESQL
      Case 131
         pxerrmsg$ = "Too many clients"                           'PXERR_TOOMANYCLIENTS
      Case 132
         pxerrmsg$ = "Exceeds configured limits"                  'PXERR_EXCEEDSCONFIGLIMITS
      Case 133
         pxerrmsg$ = "Can not remap file handle"                  'PXERR_CANTREMAPFILEHANDLE
      Case 134
         pxerrmsg$ = "can't lock PARADOX.NET -- is SHARE.EXE loaded?"'PXERR_CANTSHAREPDOXNET
      Case 135
         pxerrmsg$ = "can't run Engine in Windows real mode"      'PXERR_WINDOWSREALMODE
      Case 136
         pxerrmsg$ = "Can't update table open on non-maintainedsecondary" 'PXERR_SXCANTUPDATE
      Case Else
         pxerrmsg$ = "Undefined Paradox Engine Error Code: " + Format$(Error_Code)
   End Select
End Function

Sub setMousePointer (MousePointer%)
    Screen.MousePointer = MousePointer%
End Sub

