const  LastErrorGCode = 30508
;

const

  ErrorGNotImplementedYet = 'Not implemented yet';


  // TABSMemoryManager
  ErrorGInvalidPointer = 'Invalid pointer';
  ErrorGMemoryOverrunDetected = 'Memory overrun detected';
  ErrorGMemoryLeakFound = 'Memory Leak Found. Lost %d byte(s)';
  ErrorGMemoryLimitExceeded = 'Memory limit exceeded (Limit = %d bytes)';
  ErrorGGetMemError = 'GetMem error: %s';
  ErrorGReallocMemError = 'ReallocMem error: %s';
  ErrorGFreeMemError = 'FreeAndNillMem error: %s';
  ErrorGCannotAllocateZeroBytes = 'Cannot allocate 0 bytes';
  ErrorGUnknownGetMemType = 'Unknown GetMem method type: %d';

  ErrorGUnsupportedDataType = 'Unsupported data type ''%s''';
  ErrorGSequenceOverflow = 'Sequence ''%s'' overflow';
  ErrorGSequenceIdNotFound = 'Sequence #%d not found';
  ErrorGSequenceLastValueFailed = 'No SequenceLastValue in session for sequence ''%s''. Call GetNextVal first';
  ErrorGWrongDataType = 'Wrong DataType. Expecting ''%s'' but found ''%s''';
  ErrorGValueIsNull = 'Value is Null';
  ErrorGConstraintViolated = 'Constraint Error: %s';
  ErrorGFieldWithObjectIdNotFound = 'Field #%d not found';
  ErrorGFieldWithNameNotFound = 'Field ''%s'' not found';
  ErrorGConstraintNotNull = 'Constraint ''%s'' violated. Value in field ''%s'' cannot be null';
  ErrorGConstraintCheckMinViolated = 'Constraint ''%s'' violated. Value in field ''%s'' cannot be lower than ''%s''';
  ErrorGConstraintCheckMaxViolated = 'Constraint ''%s'' violated. Value in field ''%s'' cannot be greater than ''%s''';
  ErrorGConstraintPrimaryKeyViolated = 'Primary Key constraint ''%s'' violated. Duplicate found.';
  ErrorGConstraintUniqueViolated = 'Constraint unique ''%s'' violated. Duplicate found.';
  ErrorGCatnnotCompareIncompatibleDataTypes = 'Cannot compare Incompatible DataTypes: ''%s'' and ''%s''';
  ErrorGUnknownReturnCode = 'Unknown return code: %d';
  ErrorGUnknownDataType = 'Unknown DataType: ''%s''';
  ErrorGCastError = 'Cannot cast from ''%s'' to ''%s''';
  ErrorGCannotCopyDataIntoNewMemory = 'Cannot copy data into new memory';
  ErrorGMissingRightParenthesis = 'Missing symbol '')'' at line %d, column %d';
  ErrorGUnexpectedRightParenthesis = 'Unexpected symbol '')'' found at line %d, column %d';
  ErrorGUnterminatedString = 'Unterminated string at line %d, column %d';
  ErrorGInvalidNumericSymbol = 'Invalid numeric symbol ''%s'' at line %d, column %d';
  ErrorGUnexpectedToken = 'Unexpected token ''%s'' found at line %d, column %d';
  ErrorGUnexpectedEndOfCommand = 'Unexpected end of SQL command found at line %d, column %d';
  ErrorGBooleanExpressionExpected = 'Boolean expression expected, but ''%s'' found at line %d, column %d';
  ErrorGOtherTokenExpected = 'Token ''%s'' expected, but ''%s'' found at line %d, column %d';
  ErrorGArgumentExpected = 'Argument expected for function ''%s'' at line %d, column %d';
  ErrorGNotApplicableCastType = 'Cannot convert an expression to specified type: ''%s''';
  ErrorGTableNameExpected = 'Table name expected, but ''%s'' found at line %d, column %d';
  ErrorGQuotedPasswordDataExpected = 'Quoted password expected (for PASSWORD "passwordData"), but ''%s'' found at line %d, column %d';
  ErrorGStringArgumentExpected = 'String argument expected for function ''%s'', but ''%s'' found at line %d, column %d';
  ErrorGConstDateFormatExpected = 'Const DateFormat string expected, but ''%s'' found at line %d, column %d';
  ErrorGNotEqualCountsOfFieldNamesAndKeyValues = 'Count of FieldNames (%d) does not equal counts of KeyValues (%d)';
  ErrorGUnsupportedVariantType = 'Unsupported Variant Type %s';
  ErrorGUnknownOperator = 'Unknown operator: ''%s''';
  ErrorGBlankSqlCommand = 'Blank SQL command';
  ErrorGNotStringArgument = 'Non-string argument in function ''%s''';
  ErrorGNotNumericDataType = 'Non-numeric argument in numeric operator ''%s''';
  ErrorGCannotInvertValue = 'Cannot invert value with non-numeric type ''%s''';
  ErrorGDivisionError = 'Division error: %s';
  ErrorGAmPmExpected = 'AM/PM word expected, but ''%s'' found';

  ErorrGDataSetOpen = 'Cannot perform this operation on an open dataset';
  ErorrGEmptySQLStatement = 'No SQL statement available';
  ErorrGNotApplicableCondition = 'Search condition is not applicable';
  ErorrGObjectTypeKeywordExpected = 'Object type keyword expected, but ''%s'' found at line %d, column %d';
  ErrorGSQLCommandExpected = 'SQL token expected, but ''%s'' found at line %d, column %d';
  ErrorGIntegerExpected = 'Integer expected, but ''%s'' found at line %d, column %d';
  ErrorGExpressionExpected = 'Expression expected, but ''%s'' found at line %d, column %d';
  ErrorGFieldPseudonymExpected = 'Field pseudonym expected, but ''%s'' found at line %d, column %d';
  ErrorGFieldNameExpected = 'Field name expected, but ''%s'' found at line %d, column %d';
  ErrorGFieldListExpected = 'Field list expected, but ''%s'' found at line %d, column %d';
  ErrorGSortSpecificationExpected = 'Sort specification expected, but ''%s'' found at line %d, column %d';
  ErrorGColumnFromOrderByNotFound = 'Column ''%s'' from ORDER BY clause not found';
  ErrorGDatasetAndAONotAssigned = 'Dataset and AO not assigned';
  ErrorGCannotFindField = 'Field ''%s'' not found';
  ErrorGFieldAlreadyExists = 'A field with the name ''%s'' already exists';
  ErrorGNodeIsNotField = 'Node is not a field';
  ErrorGRightParenthesisOrCommaExpected = ''')'' or '','' symbol expected, but ''%s'' found at line %d, column %d';
  ErrorGLeftParenthesisExpected = '''('' symbol expected, but ''%s'' found at line %d, column %d';
  ErrorGFieldTypeExpected = 'Field type expected, but ''%s'' found at line %d, column %d';
  ErrorGUnknownFieldType = 'Unknown field type ''%s'' at line %d, column %d';
  ErrorGDecimalConstantExpected = 'Decimal constant expected, but ''%s'' found at line %d, column %d';
  ErrorGNullKeywordExpected = '''NULL'' expected (for NOT NULL), but ''%s'' found at line %d, column %d';
  ErrorGBlobCompressionLevelValueExpected = 'Blob Compression Level value expected, but ''%s'' found at line %d, column %d';
  ErrorGTableAlreadyExists = 'Cannot create table. Table ''%s'' already exists';
  ErrorGErrorCreatingTable = 'Error creating table: ''%s''';
  ErrorGDroppingTable = 'Error dropping table: ''%s''';
  ErrorGErrorAlteringTable = 'Error altering table: ''%s''';
  ErrorGTruncatingTable = 'Error truncating table: ''%s''';
  ErrorGAddOrDropOrModifyKeywordExpected = 'ADD, DROP or MODIFY keyword expected, but ''%s'' found at line %d, column %d';
  ErrorGIndexKeywordExpected = '''INDEX'' keyword expected, but ''%s'' found at line %d, column %d';
  ErrorGIndexNameExpected = 'index name expected, but ''%s'' found at line %d, column %d';
  ErrorGOnKeywordExpected = '''ON'' keyword expected, but ''%s'' found at line %d, column %d';
  ErrorGCannotDetermineExpressionType = 'Cannot determine expression type';
  ErrorGUnsupportedAutoincDataType = 'Unsupported Autoinc DataType (%s) found at line %d, column %d';
  ErrorGDefaultValueReDeclared = 'Default value for column ''%s'' declared twice';
  ErrorGUnknownConstrainType = 'Unknown Constraint Type: ''%d''';
  ErrorGIndexNameNotFound = 'Index ''%s'' not found';
  ErrorGMethodNotOverrided = 'The method ''%s'' is not overrided in class ''%s''';
  ErrorGCannotRenameField = 'Cannot rename field ''%s''. Field ''%s'' already exists';

  ErrorGrestructureTableError = 'Restructure table error: ''%s''';
  ErrorGParameterValueUndefined = 'Parameter Value undefined (FieldName=''%s'', Type=''%s'')';
  ErrorGParseParameterError = 'Error parsing parameter ''%s'' at line %d, column %d';
  ErrorGParameterValueNotFound = 'Value for parameter ''%s'' not found';

  // TABSDatabaseFile
  ErrorGFileIsClosed = 'Cannot perform this operation (%s) on a closed file';
  ErrorGFileIsOpened = 'Cannot perform this operation (%s) on a opened file';
  ErrorGCreateOpenedFile = 'Cannot create file because file already opened';
  ErrorGCreateFileError = 'Cannot create file: ''%s'' Error code: %d. ErrorMessage: %s';
  ErrorGDeleteFileError = 'Cannot delete file: ''%s'' Error code: %d. ErrorMessage: %s';
  ErrorGRenameFileError = 'Cannot rename file ''%s'' to ''%s'' ErrorCode:%d. ErrorMessage: %s';
  ErrorGOpenFileError = 'Cannot open file:''%s'' Error code: %d. ErrorMessage: %s';
  ErrorGCloseFileError = 'Cannot close file:''%s'' Error code: %d. ErrorMessage: %s';
  ErrorGFileAlreadyOpened = 'File ''%s'' already opened';
  ErrorGFileAlreadyClosed = 'File ''%s'' already closed';
  ErrorGUnknownAccessMode = 'Unknown Access mode: ''%d''';
  ErrorGUnknownShareMode = 'Unknown Share mode: ''%d''';
  ErrorGCannotSetFilePosition = 'Cannot Set File Position to %d. FileName=''%s''. FilePosition = %d, FileSize = %d';
  ErrorGCannotGetFilePosition = 'Cannot Get File Position. FileName=''%s'' ErrorCode:%d. ErrorMessage: %s';
  ErrorGReadFileError = 'Cannot Read from file: ''%s'' Position = %d, Count = %d, FilePosition = %d, FileSize = %d, ErrorCode:%d. ErrorMessage: %s';
  ErrorGWriteFileError = 'Cannot Write to file: ''%s'' Position = %d, Count = %d, FilePosition = %d, FileSize = %d, ErrorCode:%d. ErrorMessage: %s';
  ErrorGCannotTruncateFile = 'Cannot Truncate File ''%s'' to %d bytes. ErrorCode:%d. ErrorMessage: %s';
  ErrorGCannotGetFileSize = 'Cannot Get File Size for file: ''%s''. ErrorCode:%d. ErrorMessage: %s';
  ErrorGBlankFileName = 'Cannot create file with blank FileName';
  ErrorGFlushFileBufferError = 'Cannot flush file buffers for file: ''%s''. ErrorCode:%d. ErrorMessage: %s';
  ErrorGCannotGetNextObjectID = 'Cannot get NextObjectID. File area is Locked.';

  ErrorGIncorrectSystemDirectoryPageNo = 'Incorrect SystemDirectoryPageNo (DirPageNo=%d, DirPage.PageNo=%d)';

  // Pages
  ErrorGUnknownPageType = 'Unknown Page Type: (%d)';
  ErrorGWrongPageType = 'Wrong page type. Found ''%s'', but expecting: ''%s''';
  ErrorGInvalidPageType = 'Invalid PageType found: %d but expecting: %d';
  ErrorGPageAlreadyUsed = 'Page: %d already used';
  ErrorGPageAlreadyFree = 'Page: %d already free';
  ErrorGPageCannotBeAddressed = 'Page: %d cannot be addressed. TotalPageCount=%d';
  ErrorGCannotDeletePFSOrEAMPage = 'Cannot delete PFS or EAM page. PageNo=%d';

  ErrorGIFCannotRecreateFile = 'Cannot create internal file. File already exists. StartPageNo=%d';
  ErrorGIFCannotOpenFile = 'Cannot open file. StartPageNo is not set';
  ErrorGIFCannotRead = 'Cannot read internal file. FileSize=%d. ReadSize=%d';
  ErrorGIFCannotReadNBytes = 'Cannot read % bytes from internal file. FileSize=%d. ReadSize=%d, Count=%d';
  ErrorGIFClosed = 'Cannot perform this operation (%s) on closed internal file';
  ErrorGIFCannotWriteAfterEOF = 'Cannot write after end of file. FileSize=%d. Position=%d, Count=%d';
  ErrorGIFCannotSeekAfterEOF = 'Seek position bigger than file size. FileSize=%d. Position=%d';

  ErrorGSystemDirInvalidFirstPageNo = 'Error creating SystemDirectory. SystemDirectoryPageNo=%d. Real PageNo=%d.';

  ErrorGTableListFileAlreadyOpened = 'Table list file already opened.';
  ErrorGTableNotExists = 'Table ''%s'' does not exist.';

  ErrorGExtentIsFull = 'EAM and PFS are unsynchronized. Non-full extent really is full. ExtentNo=%d';

  ErrorGWrongPassword = 'Cannot open database - incorrect password';
  ErrorGCheckPageCRCError = 'Decrypt page error. Check CRC failed. PageNo: %d';

  ErrorGCannotCopyTableIntoItSelf = 'Cannot copy table ''%s.%s'' into it self';
  ErrorGBDTableAlreadyExists = 'Table ''%s.%s'' already exists';
  ErrorGCreateDataBaseError = 'Create database error: ''%s''';
  ErrorGCreateTable = 'Create table ''%s.%s'' error: ''%s''';
  ErrorGCannotRenameTableIntoItSelf = 'Cannot rename table ''%s'' into itself';

  ErrorGCannotCreateTableWithField = 'Cannot create table ''%s'' with field: %s %s(%d)';

  ErrorGRequestedPageCountBigger ='Requested page count(%d) bigger than Page_PagesAddressed(%d)';

  ErrorGOperationFailed = 'Operation %s failed: %s';

  ErrorGCaseNoInputExpression = 'Input expression for CASE function expected, but ''%s'' found at line %d, column %d';
  ErrorGCaseNoWhenExpression = 'When Expression for CASE function expected, but ''%s'' found at line %d, column %d';
  ErrorGCaseNoElseExpression = '''Else Result Expression'' for CASE function expected, but ''%s'' found at line %d, column %d';
  ErrorGCaseNoSearchCondition= 'Search Condition for CASE function expected, but ''%s'' found at line %d, column %d';
  ErrorGInvalidDefaultValue = 'Invalid default value "%s"';

