summaryrefslogtreecommitdiff
path: root/storage/connect
diff options
context:
space:
mode:
authorOlivier Bertrand <bertrandop@gmail.com>2014-11-15 18:28:24 +0100
committerOlivier Bertrand <bertrandop@gmail.com>2014-11-15 18:28:24 +0100
commit5d8311960a8f993591075b3da6106559922183b4 (patch)
tree1efe45e1188606c895a4069c05a2501826e1f293 /storage/connect
parent9ade2d088d12f6a2a6f901148ed72a45dd15e9ff (diff)
downloadmariadb-git-5d8311960a8f993591075b3da6106559922183b4.tar.gz
- Implement the NEWMSG and XMSG methods
They are still experimental and should not be used in production. added: storage/connect/encas.h storage/connect/english.msg storage/connect/enids.h storage/connect/frcas.h storage/connect/french.msg storage/connect/frids.h storage/connect/frmsg.h modified: storage/connect/connect.cc storage/connect/engmsg.h storage/connect/filamdbf.cpp storage/connect/global.h storage/connect/ha_connect.cc storage/connect/msgid.h storage/connect/plgdbutl.cpp storage/connect/plugutil.c storage/connect/rcmsg.c storage/connect/resource.h storage/connect/tabfmt.h - Fix global variable not being properly initialized (MDEV-6690, MDEV-7094) modified: storage/connect/ha_connect.cc storage/connect/plugutil.c storage/connect/user_connect.cc storage/connect/xindex.cpp - Implement Rewind for ODBC tables (MDEV-7097) modified: storage/connect/odbconn.cpp storage/connect/odbconn.h storage/connect/tabmysql.cpp storage/connect/tabodbc.cpp - Reset N when reopening MYSQL tables modified: storage/connect/tabmysql.cpp
Diffstat (limited to 'storage/connect')
-rw-r--r--storage/connect/connect.cc8
-rw-r--r--storage/connect/encas.h320
-rw-r--r--storage/connect/english.msg366
-rw-r--r--storage/connect/engmsg.h701
-rw-r--r--storage/connect/enids.h46
-rw-r--r--storage/connect/filamdbf.cpp5
-rw-r--r--storage/connect/frcas.h320
-rw-r--r--storage/connect/french.msg366
-rw-r--r--storage/connect/frids.h46
-rw-r--r--storage/connect/frmsg.h320
-rw-r--r--storage/connect/global.h4
-rw-r--r--storage/connect/ha_connect.cc140
-rw-r--r--storage/connect/msgid.h1333
-rw-r--r--storage/connect/odbconn.cpp84
-rw-r--r--storage/connect/odbconn.h4
-rw-r--r--storage/connect/plgdbutl.cpp31
-rw-r--r--storage/connect/plugutil.c39
-rw-r--r--storage/connect/rcmsg.c294
-rw-r--r--storage/connect/resource.h193
-rw-r--r--storage/connect/tabfmt.h2
-rw-r--r--storage/connect/tabmysql.cpp1
-rw-r--r--storage/connect/tabodbc.cpp16
-rw-r--r--storage/connect/tabodbc.h2
-rw-r--r--storage/connect/user_connect.cc13
-rwxr-xr-xstorage/connect/xindex.cpp2
25 files changed, 2464 insertions, 2192 deletions
diff --git a/storage/connect/connect.cc b/storage/connect/connect.cc
index db47a3e48e8..87c782ba953 100644
--- a/storage/connect/connect.cc
+++ b/storage/connect/connect.cc
@@ -281,7 +281,7 @@ bool CntOpenTable(PGLOBAL g, PTDB tdbp, MODE mode, char *c1, char *c2,
if (!colp && !(mode == MODE_INSERT && tdbp->IsSpecial(p))) {
if (g->Message[0] == 0)
- sprintf(g->Message, "Column %s not found in %s", p, tdbp->GetName());
+ sprintf(g->Message, MSG(COL_ISNOT_TABLE), p, tdbp->GetName());
goto err;
} // endif colp
@@ -651,7 +651,7 @@ int CntIndexInit(PGLOBAL g, PTDB ptdb, int id, bool sorted)
if (!ptdb)
return -1;
else if (!((PTDBASE)ptdb)->GetDef()->Indexable()) {
- sprintf(g->Message, "CntIndexInit: Table %s is not indexable", ptdb->GetName());
+ sprintf(g->Message, MSG(TABLE_NO_INDEX), ptdb->GetName());
return 0;
} else if (((PTDBASE)ptdb)->GetDef()->Indexable() == 3) {
return 1;
@@ -724,7 +724,7 @@ RCODE CntIndexRead(PGLOBAL g, PTDB ptdb, OPVAL op,
x= ((PTDBASE)ptdb)->GetDef()->Indexable();
if (!x) {
- sprintf(g->Message, "CntIndexRead: Table %s is not indexable", ptdb->GetName());
+ sprintf(g->Message, MSG(TABLE_NO_INDEX), ptdb->GetName());
return RC_FX;
} else if (x == 2) {
// Remote index
@@ -838,7 +838,7 @@ int CntIndexRange(PGLOBAL g, PTDB ptdb, const uchar* *key, uint *len,
x= ((PTDBASE)ptdb)->GetDef()->Indexable();
if (!x) {
- sprintf(g->Message, "CntIndexRange: Table %s is not indexable", ptdb->GetName());
+ sprintf(g->Message, MSG(TABLE_NO_INDEX), ptdb->GetName());
DBUG_PRINT("Range", ("%s", g->Message));
return -1;
} else if (x == 2) {
diff --git a/storage/connect/encas.h b/storage/connect/encas.h
new file mode 100644
index 00000000000..10f05bc05f2
--- /dev/null
+++ b/storage/connect/encas.h
@@ -0,0 +1,320 @@
+ case MSG_ACCESS_VIOLATN: p = "Access violation"; break;
+ case MSG_ADD_BAD_TYPE: p = "Array add value type mismatch (%s -> %s)"; break;
+ case MSG_ALLOC_ERROR: p = "Error allocating %s"; break;
+ case MSG_ANSWER_TYPE: p = "Answer of type"; break;
+ case MSG_API_CONF_ERROR: p = "SQL Error: API_CONFORMANCE"; break;
+ case MSG_APPL_NOT_INIT: p = "Application not initialized"; break;
+ case MSG_ARRAY_BNDS_EXCD: p = "Array bounds exceeded"; break;
+ case MSG_BAD_ARRAY_OPER: p = "Arrays must be used with the IN operator"; break;
+ case MSG_BAD_ARRAY_TYPE: p = "Illegal array type %d"; break;
+ case MSG_BAD_ARRAY_VAL: p = "Arrays must have the same number of values"; break;
+ case MSG_BAD_BIN_FMT: p = "Invalid format %c for the %s BIN column"; break;
+ case MSG_BAD_BLK_ESTIM: p = "Number of blocks exceeds estimate"; break;
+ case MSG_BAD_BLK_SIZE: p = "No match in block %d size"; break;
+ case MSG_BAD_BYTE_NUM: p = "bad number of bytes written"; break;
+ case MSG_BAD_BYTE_READ: p = "bad number of bytes read"; break;
+ case MSG_BAD_COL_TYPE: p = "Invalid type %s for column %s"; break;
+ case MSG_BAD_COL_XPATH: p = "Invalid Xpath in column %s for HTML table %s"; break;
+ case MSG_BAD_CONST_TYPE: p = "Bad constant type=%d"; break;
+ case MSG_BAD_CONV_TYPE: p = "Invalid convert type %d"; break;
+ case MSG_BAD_DATETIME: p = "Invalid datetime value"; break;
+ case MSG_BAD_DBF_FILE: p = "DBF file %s is corrupted"; break;
+ case MSG_BAD_DBF_REC: p = "DBF file %s corrupted at record %d"; break;
+ case MSG_BAD_DBF_TYPE: p = "Unsupported DBF type %c for column %s"; break;
+ case MSG_BAD_DIRECTORY: p = "Bad directory %s: %s"; break;
+ case MSG_BAD_FIELD_RANK: p = "Invalid field rank %d for column %s"; break;
+ case MSG_BAD_FIELD_TYPE: p = "Bad type field %s"; break;
+ case MSG_BAD_FILE_HANDLE: p = "Invalid File Handle: %s"; break;
+ case MSG_BAD_FILTER: p = "Bad filter: Opc=%d B_T=%d %d Type=%d %d"; break;
+ case MSG_BAD_FILTER_CONV: p = "Bad filter conversion, B_T=%d,%d"; break;
+ case MSG_BAD_FILTER_OP: p = "Invalid filter operator %d"; break;
+ case MSG_BAD_FLD_FORMAT: p = "Bad format for field %d of %s"; break;
+ case MSG_BAD_FLD_LENGTH: p = "Field %s too long (%s --> %d) line %d of %s"; break;
+ case MSG_BAD_FREQ_SET: p = "Bad frequency setting for column %s"; break;
+ case MSG_BAD_FUNC_MODE: p = "%s: invalid mode %d"; break;
+ case MSG_BAD_HANDLE_VAL: p = "Invalid handle value"; break;
+ case MSG_BAD_HEADER: p = "File %s: Header corrupted"; break;
+ case MSG_BAD_HEAD_END: p = "Can't read end of header"; break;
+ case MSG_BAD_INDEX_FILE: p = "Wrong index file %s"; break;
+ case MSG_BAD_LINEFLD_FMT: p = "Bad format line %d field %d of %s"; break;
+ case MSG_BAD_LINE_LEN: p = "Line length not equal to Lrecl"; break;
+ case MSG_BAD_LRECL: p = "Table/File lrecl mismatch (%d,%hd)"; break;
+ case MSG_BAD_NODE_TYPE: p = "Bad type %d for table node"; break;
+ case MSG_BAD_OFFSET_VAL: p = "Invalid null offset value for a CSV table"; break;
+ case MSG_BAD_OPEN_MODE: p = "Invalid open mode %d"; break;
+ case MSG_BAD_PARAM_TYPE: p = "%.8s: Bad parameter type=%d"; break;
+ case MSG_BAD_PARM_COUNT: p = "Parameter count mismatch"; break;
+ case MSG_BAD_QUOTE_FIELD: p = "Missing ending quote in %s field %d line %d"; break;
+ case MSG_BAD_READ_NUMBER: p = "Wrong number %d of values read from %s"; break;
+ case MSG_BAD_RECFM: p = "Invalid recfm type %d for DOSCOL"; break;
+ case MSG_BAD_RECFM_VAL: p = "Bad Recfm value %d"; break;
+ case MSG_BAD_SET_CASE: p = "Cannot set sensitive an insensitive array"; break;
+ case MSG_BAD_SET_STRING: p = "Invalid SetValue from string"; break;
+ case MSG_BAD_SPECIAL_COL: p = "Bad special column %s"; break;
+ case MSG_BAD_SPEC_COLUMN: p = "Special column invalid for this table type"; break;
+ case MSG_BAD_TABLE_TYPE: p = "Bad type %s for table %s"; break;
+ case MSG_BAD_TYPE_LIKE: p = "Bad operand(%d) type=%d for LIKE"; break;
+ case MSG_BAD_VALBLK_INDX: p = "Out of range valblock index value"; break;
+ case MSG_BAD_VALBLK_TYPE: p = "Invalid value block type %d"; break;
+ case MSG_BAD_VALNODE: p = "Bad type %d for column %s value node"; break;
+ case MSG_BAD_VALUE_TYPE: p = "Invalid value type %d"; break;
+ case MSG_BAD_VAL_UPDATE: p = "Don't know which %s value to update"; break;
+ case MSG_BAS_NS_LIST: p = "Invalid namespaces list format"; break;
+ case MSG_BIN_F_TOO_LONG: p = "Value too long for field %s (%d --> %d)"; break;
+ case MSG_BIN_MODE_FAIL: p = "Set binary mode failed: %s"; break;
+ case MSG_BLKTYPLEN_MISM: p = "Non matching block types/lengths in SetValue"; break;
+ case MSG_BLK_IS_NULL: p = "Blk is NULL"; break;
+ case MSG_BREAKPOINT: p = "Breakpoint"; break;
+ case MSG_BUILD_INDEX: p = "Building index %s on %s"; break;
+ case MSG_CANNOT_OPEN: p = "Cannot open %s"; break;
+ case MSG_CHSIZE_ERROR: p = "chsize error: %s"; break;
+ case MSG_COL_ALLOC_ERR: p = "Cannot allocate column node"; break;
+ case MSG_COL_ISNOT_TABLE: p = "Column %s is not in table %s"; break;
+ case MSG_COL_NOT_SORTED: p = "Column %s of table %s is not sorted"; break;
+ case MSG_COL_NUM_MISM: p = "Number of columns mismatch"; break;
+ case MSG_COM_ERROR: p = "Com error"; break;
+ case MSG_CONCAT_SUBNODE: p = "Cannot concatenate sub-nodes"; break;
+ case MSG_CONNECT_CANCEL: p = "Connection cancelled by user"; break;
+ case MSG_CONTROL_C_EXIT: p = "Control C exit"; break;
+ case MSG_DATABASE_LOADED: p = "Database %s loaded"; break;
+ case MSG_DATA_MISALIGN: p = "Datatype misalignment"; break;
+ case MSG_DBASE_FILE: p = "dBASE dbf file: "; break;
+ case MSG_DEF_ALLOC_ERROR: p = "Error allocating %s DEF class"; break;
+ case MSG_DEL_FILE_ERR: p = "Error deleting %s"; break;
+ case MSG_DEL_READ_ERROR: p = "Delete: read error req=%d len=%d"; break;
+ case MSG_DEL_WRITE_ERROR: p = "Delete: write error: %s"; break;
+ case MSG_DEPREC_FLAG: p = "Deprecated option Flag, use Coltype"; break;
+ case MSG_DLL_LOAD_ERROR: p = "Error %d loading module %s"; break;
+ case MSG_DOM_NOT_SUPP: p = "MS-DOM not supported by this version"; break;
+ case MSG_DVAL_NOTIN_LIST: p = "Value %s not found in distinct values list of column %s"; break;
+ case MSG_EMPTY_DOC: p = "Empty document"; break;
+ case MSG_EMPTY_FILE: p = "%s empty file %s: "; break;
+ case MSG_EOF_AFTER_LINE: p = "EOF after line %d"; break;
+ case MSG_EOF_INDEX_FILE: p = "EOF while reading index file"; break;
+ case MSG_ERROR_IN_LSK: p = "Error %d in lseek64"; break;
+ case MSG_ERROR_IN_SFP: p = "Error %d in SetFilePointer"; break;
+ case MSG_ERR_READING_REC: p = "Error reading record %d of %s"; break;
+ case MSG_FAIL_ADD_NODE: p = "Failed to add %s table node"; break;
+ case MSG_FETCH_NO_RES: p = "Fetch: No Result Set"; break;
+ case MSG_FIELD_TOO_LONG: p = "Value too long for field %d line %d"; break;
+ case MSG_FILELEN_ERROR: p = "Error in %s for %s"; break;
+ case MSG_FILE_IS_EMPTY: p = "File %s is empty"; break;
+ case MSG_FILE_MAP_ERR: p = "File mapping error"; break;
+ case MSG_FILE_MAP_ERROR: p = "CreateFileMapping %s error rc=%d"; break;
+ case MSG_FILE_OPEN_YET: p = "File %s already open"; break;
+ case MSG_FILE_UNFOUND: p = "File %s not found"; break;
+ case MSG_FLD_TOO_LNG_FOR: p = "Field %d too long for %s line %d of %s"; break;
+ case MSG_FLT_BAD_RESULT: p = "Float inexact result"; break;
+ case MSG_FLT_DENORMAL_OP: p = "Float denormal operand"; break;
+ case MSG_FLT_INVALID_OP: p = "Float invalid operation"; break;
+ case MSG_FLT_OVERFLOW: p = "Float overflow"; break;
+ case MSG_FLT_STACK_CHECK: p = "Float stack check"; break;
+ case MSG_FLT_UNDERFLOW: p = "Float underflow"; break;
+ case MSG_FLT_ZERO_DIVIDE: p = "Float divide by zero"; break;
+ case MSG_FMT_WRITE_NIY: p = "Writing %s files is not implemented yet"; break;
+ case MSG_FOXPRO_FILE: p = "FoxPro file: "; break;
+ case MSG_FPUTS_ERROR: p = "fputs error: %s"; break;
+ case MSG_FSEEK_ERROR: p = "fseek error: %s"; break;
+ case MSG_FSETPOS_ERROR: p = "fseek error for i=%d"; break;
+ case MSG_FTELL_ERROR: p = "ftell error for recd=%d: %s"; break;
+ case MSG_FUNCTION_ERROR: p = "%s error: %d"; break;
+ case MSG_FUNC_ERRNO: p = "Error %d in %s"; break;
+ case MSG_FUNC_ERROR: p = "Error in %s"; break;
+ case MSG_FUNC_ERR_S: p = "%s error: %s"; break;
+ case MSG_FWRITE_ERROR: p = "fwrite error: %s"; break;
+ case MSG_GET_DIST_VALS: p = "Retrieving distinct values from "; break;
+ case MSG_GET_FUNC_ERR: p = "Error getting function %s: %s"; break;
+ case MSG_GLOBAL_ERROR: p = "Cannot allocate Global (size=%d)\n"; break;
+ case MSG_GUARD_PAGE: p = "Guard page violation"; break;
+ case MSG_GZOPEN_ERROR: p = "gzopen %s error %d on %s"; break;
+ case MSG_ILLEGAL_INSTR: p = "Illegal instruction"; break;
+ case MSG_ILL_FILTER_CONV: p = "Filtering implies an illegal conversion"; break;
+ case MSG_INDEX_NOT_UNIQ: p = "Index is not unique"; break;
+ case MSG_INDEX_YET_ON: p = "Index %s already exists on %s"; break;
+ case MSG_INDX_COL_NOTIN: p = "Index column %s is not in table %s"; break;
+ case MSG_INDX_EXIST_YET: p = "Index entry already exists"; break;
+ case MSG_INIT_FAILED: p = "Failed to initialize %s processing"; break;
+ case MSG_INT_COL_ERROR: p = "Internal error for index column %s"; break;
+ case MSG_INT_OVERFLOW: p = "Integer overflow"; break;
+ case MSG_INT_ZERO_DIVIDE: p = "Integer divide by zero"; break;
+ case MSG_INVALID_DISP: p = "Invalid disposition"; break;
+ case MSG_INVALID_FTYPE: p = "SBV: invalid Ftype %d"; break;
+ case MSG_INVALID_HANDLE: p = "Invalid handle"; break;
+ case MSG_INVALID_OPER: p = "Invalid operator %d for %s"; break;
+ case MSG_INV_COLUMN_TYPE: p = "Invalid type %d for column %s"; break;
+ case MSG_INV_COL_TYPE: p = "Invalid column type %s"; break;
+ case MSG_INV_DEF_READ: p = "Invalid deferred Read rc=%d"; break;
+ case MSG_INV_DIRCOL_OFST: p = "Invalid DIRCOL offset %d"; break;
+ case MSG_INV_MAP_POS: p = "Invalid map position"; break;
+ case MSG_INV_RAND_ACC: p = "Invalid random access to non optimized table"; break;
+ case MSG_INV_REC_POS: p = "Invalid record position"; break;
+ case MSG_INV_RESULT_TYPE: p = "Invalid result type %s"; break;
+ case MSG_INV_UPDT_TABLE: p = "Table %s invalid for update"; break;
+ case MSG_IN_WITHOUT_SUB: p = "IN or EXISTS without array or subquery"; break;
+ case MSG_KEY_ALLOC_ERR: p = "Error allocating Key offset block"; break;
+ case MSG_KEY_ALLOC_ERROR: p = "Memory allocation error, Klen=%d n=%d"; break;
+ case MSG_LINE_TOO_LONG: p = "New line is too long"; break;
+ case MSG_LIST: p = "--List--"; break;
+ case MSG_LOADING_FAILED: p = "Loading of %s failed"; break;
+ case MSG_LRECL_TOO_SMALL: p = "Lrecl too small (headlen = %d)"; break;
+ case MSG_MAKE_EMPTY_FILE: p = "Making empty file %s: %s"; break;
+ case MSG_MAKING: p = "Making"; break;
+ case MSG_MALLOC_ERROR: p = "Memory allocation failed: %s returned Null"; break;
+ case MSG_MAP_VIEW_ERROR: p = "MapViewOfFile %s error rc=%d"; break;
+ case MSG_MAXSIZE_ERROR: p = "Cannot calculate max size on open table"; break;
+ case MSG_MEM_ALLOC_ERR: p = "Memory allocation error, %s size=%d"; break;
+ case MSG_MEM_ALLOC_ERROR: p = "Memory allocation error"; break;
+ case MSG_MISPLACED_QUOTE: p = "Misplaced quote in line %d"; break;
+ case MSG_MISSING_ARG: p = "Missing argument for operator %d"; break;
+ case MSG_MISSING_FIELD: p = "Missing field %d in %s line %d"; break;
+ case MSG_MISSING_FNAME: p = "Missing file name"; break;
+ case MSG_MISSING_NODE: p = "Missing %s node in %s"; break;
+ case MSG_MISSING_ROWNODE: p = "Can't find RowNode for row %d"; break;
+ case MSG_MIS_TAG_LIST: p = "Missing column tag list"; break;
+ case MSG_MUL_MAKECOL_ERR: p = "Tabmul MakeCol logical error"; break;
+ case MSG_NAME_CONV_ERR: p = "Error converting node name"; break;
+ case MSG_NEW_DOC_FAILED: p = "Cannot create new document"; break;
+ case MSG_NEW_RETURN_NULL: p = "New returned Null in PlugEvalLike"; break;
+ case MSG_NEXT_FILE_ERROR: p = "Couldn't find next file. rc=%d"; break;
+ case MSG_NONCONT_EXCEPT: p = "Noncontinuable exception"; break;
+ case MSG_NOP_ZLIB_INDEX: p = "Cannot do indexing on non optimized zlib table"; break;
+ case MSG_NOT_A_DBF_FILE: p = "Not a dBASE dbf file "; break;
+ case MSG_NOT_FIXED_LEN: p = "File %s is not fixed length, len=%d lrecl=%d"; break;
+ case MSG_NO_0DH_HEAD: p = "No 0Dh at end of header (dbc=%d)"; break;
+ case MSG_NO_ACTIVE_DB: p = "No active database"; break;
+ case MSG_NO_CHAR_FROM: p = "Cannot return char value from type %d"; break;
+ case MSG_NO_DATE_FMT: p = "No date format for valblock of type %d"; break;
+ case MSG_NO_DEF_FNCCOL: p = "Cannot find default function column"; break;
+ case MSG_NO_DEF_PIVOTCOL: p = "Cannot find default pivot column"; break;
+ case MSG_NO_DIR_INDX_RD: p = "No direct access of %s tables"; break;
+ case MSG_NO_FEAT_SUPPORT: p = "No %s support in this version"; break;
+ case MSG_NO_FLD_FORMAT: p = "Missing format for field %d of %s"; break;
+ case MSG_NO_FORMAT_COL: p = "Cannot format the type COLUMN"; break;
+ case MSG_NO_FORMAT_TYPE: p = "Cannot set format from type %d"; break;
+ case MSG_NO_INDEX_READ: p = "No indexed read for multiple tables"; break;
+ case MSG_NO_KEY_COL: p = "No key columns found"; break;
+ case MSG_NO_KEY_UPDATE: p = "Cannot update key names"; break;
+ case MSG_NO_MAP_INSERT: p = "MAP incompatible with Insert"; break;
+ case MSG_NO_MATCHING_COL: p = "No matching column %s in %s"; break;
+ case MSG_NO_MATCH_COL: p = "Cannot find matching column"; break;
+ case MSG_NO_MEMORY: p = "No memory"; break;
+ case MSG_NO_MODE_PADDED: p = "Mode not supported for padded files"; break;
+ case MSG_NO_MUL_VCT: p = "VCT tables cannot be multiple"; break;
+ case MSG_NO_ODBC_DELETE: p = "Delete should not be called for ODBC tables"; break;
+ case MSG_NO_ODBC_DIRECT: p = "Direct access of ODBC tables not implemented yet"; break;
+ case MSG_NO_ODBC_MUL: p = "Multiple(2) not supported for ODBC tables"; break;
+ case MSG_NO_ODBC_SPECOL: p = "No ODBC special columns"; break;
+ case MSG_NO_PART_DEL: p = "No partial delete of %s files"; break;
+ case MSG_NO_PART_MAP: p = "Partial mapping not implemented for this OS"; break;
+ case MSG_NO_PAR_BLK_INS: p = "Cannot insert partial block yet"; break;
+ case MSG_NO_PIV_DIR_ACC: p = "No direct access to PIVOT tables"; break;
+ case MSG_NO_READ_32: p = "Can't read 32 bytes"; break;
+ case MSG_NO_RECOV_SPACE: p = "Cannot recover space in index file"; break;
+ case MSG_NO_ROWID_FOR_AM: p = "Can't get RowID in direct access for tables of type %s"; break;
+ case MSG_NO_ROW_NODE: p = "Row node name is not defined"; break;
+ case MSG_NO_SECTION_NAME: p = "Missing section name"; break;
+ case MSG_NO_SEC_UPDATE: p = "Cannot update section names"; break;
+ case MSG_NO_SETPOS_YET: p = "%s SetPos not implemented yet"; break;
+ case MSG_NO_SPEC_COL: p = "No MySQL special columns"; break;
+ case MSG_NO_SUB_VAL: p = "No sub value for array of type %d"; break;
+ case MSG_NO_TABCOL_DATA: p = "No data found for table %s column %s"; break;
+ case MSG_NO_TABLE_DEL: p = "Delete not enabled for %s tables "; break;
+ case MSG_NO_TAB_DATA: p = "No data found for table %s"; break;
+ case MSG_NO_VCT_DELETE: p = "Partial delete not yet implemented for VCT files"; break;
+ case MSG_NO_ZIP_DELETE: p = "Delete Zip files not implemented yet"; break;
+ case MSG_OPENING: p = "Opening"; break;
+ case MSG_OPEN_EMPTY_FILE: p = "Opening empty file %s: %s"; break;
+ case MSG_OPEN_ERROR: p = "Open error %d in mode %d on %s: "; break;
+ case MSG_OPEN_ERROR_IS: p = "Open error on %s: %s"; break;
+ case MSG_OPEN_MODE_ERROR: p = "Open(%s) error %d on %s"; break;
+ case MSG_OPEN_STRERROR: p = "open error: %s"; break;
+ case MSG_OPTBLK_RD_ERR: p = "Error reading opt block values: %s"; break;
+ case MSG_OPTBLK_WR_ERR: p = "Error writing opt block values: %s"; break;
+ case MSG_OPTIMIZING: p = "Optimizing "; break;
+ case MSG_OPT_BMAP_RD_ERR: p = "Error reading opt bitmaps: %s"; break;
+ case MSG_OPT_BMAP_WR_ERR: p = "Error writing opt bitmaps: %s"; break;
+ case MSG_OPT_CANCELLED: p = "Optimize cancelled by User"; break;
+ case MSG_OPT_DVAL_RD_ERR: p = "Error reading distinct values: %s"; break;
+ case MSG_OPT_DVAL_WR_ERR: p = "Error writing distinct values: %s"; break;
+ case MSG_OPT_HEAD_RD_ERR: p = "Error reading opt file header: %s"; break;
+ case MSG_OPT_HEAD_WR_ERR: p = "Error writing opt file header: %s"; break;
+ case MSG_OPT_LOGIC_ERR: p = "Logical error in SetBitmap, i=%d"; break;
+ case MSG_OPT_MAX_RD_ERR: p = "Error reading opt max values: %s"; break;
+ case MSG_OPT_MAX_WR_ERR: p = "Error writing opt max values: %s"; break;
+ case MSG_OPT_MIN_RD_ERR: p = "Error reading opt min values: %s"; break;
+ case MSG_OPT_MIN_WR_ERR: p = "Error writing opt min values: %s"; break;
+ case MSG_OPT_NOT_MATCH: p = "Non-matching opt file %s"; break;
+ case MSG_PAGE_ERROR: p = "In page error"; break;
+ case MSG_PARM_CNT_MISS: p = "Parameter count mismatch"; break;
+ case MSG_PREC_VBLP_NULL: p = "ARRAY SetPrecision: Vblp is NULL"; break;
+ case MSG_PRIV_INSTR: p = "Privileged instruction"; break;
+ case MSG_PROCADD_ERROR: p = "Error %d getting address of %s"; break;
+ case MSG_QUERY_CANCELLED: p = "Query Cancelled by User"; break;
+ case MSG_RANGE_NO_JOIN: p = "Range is not meant for join index"; break;
+ case MSG_RC_READING: p = "rc=%d reading table %s"; break;
+ case MSG_READY: p = "Ready"; break;
+ case MSG_READ_ERROR: p = "Error reading %s: %s"; break;
+ case MSG_READ_ONLY: p = "Cannot modify this read/only protected table"; break;
+ case MSG_READ_SEEK_ERROR: p = "Read seek error: %s"; break;
+ case MSG_REGISTER_ERR: p = "Unable to register NS with prefix='%s' and href='%s'"; break;
+ case MSG_REMOVE_ERROR: p = "Error removing %s: %s"; break;
+ case MSG_RENAME_ERROR: p = "Error renaming %s to %s: %s"; break;
+ case MSG_ROWID_NOT_IMPL: p = "RowNumber not implemented for tables of type %s"; break;
+ case MSG_SEC_KEY_FIRST: p = "Section and key names must come first on Insert"; break;
+ case MSG_SEC_NAME_FIRST: p = "Section name must come first on Insert"; break;
+ case MSG_SEP_IN_FIELD: p = "Field %d contains the separator character"; break;
+ case MSG_SEQUENCE_ERROR: p = "Sequence error on statement allocation"; break;
+ case MSG_SETEOF_ERROR: p = "Error %d in SetEndOfFile"; break;
+ case MSG_SETRECPOS_NIY: p = "SetRecpos not implemented for this table type"; break;
+ case MSG_SET_STR_TRUNC: p = "SetValue: String would be truncated"; break;
+ case MSG_SFP_ERROR: p = "SetFilePointer error: %s"; break;
+ case MSG_SHARED_LIB_ERR: p = "Error loading shared library %s: %s"; break;
+ case MSG_SINGLE_STEP: p = "Single step"; break;
+ case MSG_SORTING_VAL: p = "Sorting %d values"; break;
+ case MSG_SPCOL_READONLY: p = "Special column %s is Read Only"; break;
+ case MSG_SQL_CONF_ERROR: p = "SQL Error: SQL_CONFORMANCE"; break;
+ case MSG_SRCH_CLOSE_ERR: p = "Couldn't close search handle"; break;
+ case MSG_SRC_TABLE_UNDEF: p = "Source table is not defined"; break;
+ case MSG_STACK_OVERFLOW: p = "Stack overflow"; break;
+ case MSG_TABDIR_READONLY: p = "DIR tables are read/only"; break;
+ case MSG_TABLE_NOT_OPT: p = "Not an optimizable table"; break;
+ case MSG_TABLE_NO_INDEX: p = "Table %s is not indexable"; break;
+ case MSG_TABLE_READ_ONLY: p = "%s tables are read only "; break;
+ case MSG_TABMUL_READONLY: p = "Multiple tables are read/only"; break;
+ case MSG_TOO_MANY_FIELDS: p = "Too many fields line %d of %s"; break;
+ case MSG_TOO_MANY_JUMPS: p = "Too many jump levels"; break;
+ case MSG_TOO_MANY_KEYS: p = "Too many keys (%d)"; break;
+ case MSG_TO_BLK_IS_NULL: p = "To Blk is NULL"; break;
+ case MSG_TRUNCATE_ERROR: p = "truncate error: %s"; break;
+ case MSG_TRUNC_BY_ESTIM: p = "truncated by Estimate"; break;
+ case MSG_TYPE_MISMATCH: p = "Key and source are not of the same type"; break;
+ case MSG_TYPE_VALUE_ERR: p = "Column %s type(%s)/value(%s) mismatch"; break;
+ case MSG_UNBALANCE_QUOTE: p = "Unbalanced quote in line %d"; break;
+ case MSG_UNDEFINED_AM: p = "COLBLK %s: undefined Access Method"; break;
+ case MSG_UNKNOWN_EXCPT: p = "Unknown exception"; break;
+ case MSG_UNMATCH_FIL_ARG: p = "Unmatched filter argument"; break;
+ case MSG_UPDATE_ERROR: p = "Error updating %s"; break;
+ case MSG_UPD_ZIP_NOT_IMP: p = "Updating ZDOS tables not implemented yet"; break;
+ case MSG_VALSTR_TOO_LONG: p = "Value %s too long for string of length %d"; break;
+ case MSG_VALTYPE_NOMATCH: p = "Non matching Value types"; break;
+ case MSG_VALUE_ERROR: p = "Column %s: value is null"; break;
+ case MSG_VALUE_TOO_BIG: p = "Value %d too big for column %s"; break;
+ case MSG_VALUE_TOO_LONG: p = "Value %s too long for column %s of length %d"; break;
+ case MSG_VAL_ALLOC_ERR: p = "Cannot allocate value node"; break;
+ case MSG_VIR_NO_DELETE: p = "Delete not allowed for %s tables"; break;
+ case MSG_VIR_READ_ONLY: p = "Virtual %s tables are read only"; break;
+ case MSG_VOID_FIRST_ARG: p = "First argument should not be void"; break;
+ case MSG_WORK_AREA: p = "Work area: %s"; break;
+ case MSG_WRITE_SEEK_ERR: p = "Write seek error: %s"; break;
+ case MSG_WRITE_STRERROR: p = "Error writing %s: %s"; break;
+ case MSG_WRITING: p = "Writing"; break;
+ case MSG_WRITING_ERROR: p = "Error writing to %s: %s"; break;
+ case MSG_WS_CONV_ERR: p = "Error converting %s to WS"; break;
+ case MSG_XCOL_MISMATCH: p = "Column %s mismatch in index"; break;
+ case MSG_XFILE_READERR: p = "Error %d reading index file"; break;
+ case MSG_XFILE_WRITERR: p = "Error writing index file: %s"; break;
+ case MSG_XMLTAB_INIT_ERR: p = "Error initializing XML table"; break;
+ case MSG_XML_INIT_ERROR: p = "Error initializing new XML file"; break;
+ case MSG_XPATH_CNTX_ERR: p = "Unable to create new XPath context"; break;
+ case MSG_XPATH_EVAL_ERR: p = "Unable to evaluate xpath location '%s'"; break;
+ case MSG_XPATH_NOT_SUPP: p = "Unsupported Xpath for column %s"; break;
diff --git a/storage/connect/english.msg b/storage/connect/english.msg
new file mode 100644
index 00000000000..e54acae3a62
--- /dev/null
+++ b/storage/connect/english.msg
@@ -0,0 +1,366 @@
+ 100 IDS_TABLES "Table Headers"
+ 101 IDS_TAB_01 "Table_Cat"
+ 102 IDS_TAB_02 "Table_Schema"
+ 103 IDS_TAB_03 "Table_Name"
+ 104 IDS_TAB_04 "Table_Type"
+ 105 IDS_TAB_05 "Remark"
+ 106 IDS_COLUMNS "Column Headers"
+ 107 IDS_COL_01 "Table_Cat"
+ 108 IDS_COL_02 "Table_Schema"
+ 109 IDS_COL_03 "Table_Name"
+ 110 IDS_COL_04 "Column_Name"
+ 111 IDS_COL_05 "Data_Type"
+ 112 IDS_COL_06 "Type_Name"
+ 113 IDS_COL_07 "Column_Size"
+ 114 IDS_COL_08 "Buffer_Length"
+ 115 IDS_COL_09 "Decimal_Digits"
+ 116 IDS_COL_10 "Radix"
+ 117 IDS_COL_11 "Nullable"
+ 118 IDS_COL_12 "Remarks"
+ 119 IDS_PKEY "Key Headers"
+ 120 IDS_PKY_01 "Table_Catalog"
+ 121 IDS_PKY_02 "Table_Schema"
+ 122 IDS_PKY_03 "Table_Name"
+ 123 IDS_PKY_04 "Column_Name"
+ 124 IDS_PKY_05 "Key_Seq"
+ 125 IDS_PKY_06 "Pk_Name"
+ 126 IDS_STAT "Stat Headers"
+ 127 IDS_STA_01 "Table_Catalog"
+ 128 IDS_STA_02 "Table_Schema"
+ 129 IDS_STA_03 "Table_Name"
+ 130 IDS_STA_04 "Non_Unique"
+ 131 IDS_STA_05 "Index_Qualifier"
+ 132 IDS_STA_06 "Index_Name"
+ 133 IDS_STA_07 "Type"
+ 134 IDS_STA_08 "Seq_in_Index"
+ 135 IDS_STA_09 "Column_Name"
+ 136 IDS_STA_10 "Collation"
+ 137 IDS_STA_11 "Cardinality"
+ 138 IDS_STA_12 "Pages"
+ 139 IDS_STA_13 "Filter_Condition"
+ 140 IDS_DRIVER "Driver Headers"
+ 141 IDS_DRV_01 "Description"
+ 142 IDS_DRV_02 "Attributes"
+ 143 IDS_DSRC "DataSrc Headers"
+ 144 IDS_DSC_01 "Name"
+ 145 IDS_DSC_02 "Description"
+ 200 ACCESS_VIOLATN "Access violation"
+ 201 ADD_BAD_TYPE "Array add value type mismatch (%s -> %s)"
+ 202 ALLOC_ERROR "Error allocating %s"
+ 203 ANSWER_TYPE "Answer of type"
+ 204 API_CONF_ERROR "SQL Error: API_CONFORMANCE"
+ 205 APPL_NOT_INIT "Application not initialized"
+ 206 ARRAY_BNDS_EXCD "Array bounds exceeded"
+ 207 BAD_ARRAY_OPER "Arrays must be used with the IN operator"
+ 208 BAD_ARRAY_TYPE "Illegal array type %d"
+ 209 BAD_ARRAY_VAL "Arrays must have the same number of values"
+ 210 BAD_BIN_FMT "Invalid format %c for the %s BIN column"
+ 211 BAD_BLK_ESTIM "Number of blocks exceeds estimate"
+ 212 BAD_BLK_SIZE "No match in block %d size"
+ 213 BAD_BYTE_NUM "bad number of bytes written"
+ 214 BAD_BYTE_READ "bad number of bytes read"
+ 215 BAD_COL_TYPE "Invalid type %s for column %s"
+ 216 BAD_COL_XPATH "Invalid Xpath in column %s for HTML table %s"
+ 217 BAD_CONST_TYPE "Bad constant type=%d"
+ 218 BAD_CONV_TYPE "Invalid convert type %d"
+ 219 BAD_DATETIME "Invalid datetime value"
+ 220 BAD_DBF_FILE "DBF file %s is corrupted"
+ 221 BAD_DBF_REC "DBF file %s corrupted at record %d"
+ 222 BAD_DBF_TYPE "Unsupported DBF type %c for column %s"
+ 223 BAD_DIRECTORY "Bad directory %s: %s"
+ 224 BAD_FIELD_RANK "Invalid field rank %d for column %s"
+ 225 BAD_FIELD_TYPE "Bad type field %s"
+ 226 BAD_FILE_HANDLE "Invalid File Handle: %s"
+ 227 BAD_FILTER "Bad filter: Opc=%d B_T=%d %d Type=%d %d"
+ 228 BAD_FILTER_CONV "Bad filter conversion, B_T=%d,%d"
+ 229 BAD_FILTER_OP "Invalid filter operator %d"
+ 230 BAD_FLD_FORMAT "Bad format for field %d of %s"
+ 231 BAD_FLD_LENGTH "Field %s too long (%s --> %d) line %d of %s"
+ 232 BAD_FREQ_SET "Bad frequency setting for column %s"
+ 233 BAD_FUNC_MODE "%s: invalid mode %d"
+ 234 BAD_HANDLE_VAL "Invalid handle value"
+ 235 BAD_HEADER "File %s: Header corrupted"
+ 236 BAD_HEAD_END "Can't read end of header"
+ 237 BAD_INDEX_FILE "Wrong index file %s"
+ 238 BAD_LINEFLD_FMT "Bad format line %d field %d of %s"
+ 239 BAD_LINE_LEN "Line length not equal to Lrecl"
+ 240 BAD_LRECL "Table/File lrecl mismatch (%d,%hd)"
+ 241 BAD_NODE_TYPE "Bad type %d for table node"
+ 242 BAD_OFFSET_VAL "Invalid null offset value for a CSV table"
+ 243 BAD_OPEN_MODE "Invalid open mode %d"
+ 244 BAD_PARAM_TYPE "%.8s: Bad parameter type=%d"
+ 245 BAD_PARM_COUNT "Parameter count mismatch"
+ 246 BAD_QUOTE_FIELD "Missing ending quote in %s field %d line %d"
+ 247 BAD_READ_NUMBER "Wrong number %d of values read from %s"
+ 248 BAD_RECFM "Invalid recfm type %d for DOSCOL"
+ 249 BAD_RECFM_VAL "Bad Recfm value %d"
+ 250 BAD_SET_CASE "Cannot set sensitive an insensitive array"
+ 251 BAD_SET_STRING "Invalid SetValue from string"
+ 252 BAD_SPECIAL_COL "Bad special column %s"
+ 253 BAD_SPEC_COLUMN "Special column invalid for this table type"
+ 254 BAD_TABLE_TYPE "Bad type %s for table %s"
+ 255 BAD_TYPE_LIKE "Bad operand(%d) type=%d for LIKE"
+ 256 BAD_VALBLK_INDX "Out of range valblock index value"
+ 257 BAD_VALBLK_TYPE "Invalid value block type %d"
+ 258 BAD_VALNODE "Bad type %d for column %s value node"
+ 259 BAD_VALUE_TYPE "Invalid value type %d"
+ 260 BAD_VAL_UPDATE "Don't know which %s value to update"
+ 261 BAS_NS_LIST "Invalid namespaces list format"
+ 262 BIN_F_TOO_LONG "Value too long for field %s (%d --> %d)"
+ 263 BIN_MODE_FAIL "Set binary mode failed: %s"
+ 264 BLKTYPLEN_MISM "Non matching block types/lengths in SetValue"
+ 265 BLK_IS_NULL "Blk is NULL"
+ 266 BREAKPOINT "Breakpoint"
+ 267 BUILD_INDEX "Building index %s on %s"
+ 268 CANNOT_OPEN "Cannot open %s"
+ 269 CHSIZE_ERROR "chsize error: %s"
+ 270 COL_ALLOC_ERR "Cannot allocate column node"
+ 271 COL_ISNOT_TABLE "Column %s is not in table %s"
+ 272 COL_NOT_SORTED "Column %s of table %s is not sorted"
+ 273 COL_NUM_MISM "Number of columns mismatch"
+ 274 COM_ERROR "Com error"
+ 275 CONCAT_SUBNODE "Cannot concatenate sub-nodes"
+ 276 CONNECT_CANCEL "Connection cancelled by user"
+ 277 CONTROL_C_EXIT "Control C exit"
+ 278 DATABASE_LOADED "Database %s loaded"
+ 279 DATA_MISALIGN "Datatype misalignment"
+ 280 DBASE_FILE "dBASE dbf file: "
+ 281 DEF_ALLOC_ERROR "Error allocating %s DEF class"
+ 282 DEL_FILE_ERR "Error deleting %s"
+ 283 DEL_READ_ERROR "Delete: read error req=%d len=%d"
+ 284 DEL_WRITE_ERROR "Delete: write error: %s"
+ 285 DEPREC_FLAG "Deprecated option Flag, use Coltype"
+ 286 DLL_LOAD_ERROR "Error %d loading module %s"
+ 287 DOM_NOT_SUPP "MS-DOM not supported by this version"
+ 288 DVAL_NOTIN_LIST "Value %s not found in distinct values list of column %s"
+ 289 EMPTY_DOC "Empty document"
+ 290 EMPTY_FILE "%s empty file %s: "
+ 291 EOF_AFTER_LINE "EOF after line %d"
+ 292 EOF_INDEX_FILE "EOF while reading index file"
+ 293 ERROR_IN_LSK "Error %d in lseek64"
+ 294 ERROR_IN_SFP "Error %d in SetFilePointer"
+ 295 ERR_READING_REC "Error reading record %d of %s"
+ 296 FAIL_ADD_NODE "Failed to add %s table node"
+ 297 FETCH_NO_RES "Fetch: No Result Set"
+ 298 FIELD_TOO_LONG "Value too long for field %d line %d"
+ 299 FILELEN_ERROR "Error in %s for %s"
+ 300 FILE_IS_EMPTY "File %s is empty"
+ 301 FILE_MAP_ERR "File mapping error"
+ 302 FILE_MAP_ERROR "CreateFileMapping %s error rc=%d"
+ 303 FILE_OPEN_YET "File %s already open"
+ 304 FILE_UNFOUND "File %s not found"
+ 305 FLD_TOO_LNG_FOR "Field %d too long for %s line %d of %s"
+ 306 FLT_BAD_RESULT "Float inexact result"
+ 307 FLT_DENORMAL_OP "Float denormal operand"
+ 308 FLT_INVALID_OP "Float invalid operation"
+ 309 FLT_OVERFLOW "Float overflow"
+ 310 FLT_STACK_CHECK "Float stack check"
+ 311 FLT_UNDERFLOW "Float underflow"
+ 312 FLT_ZERO_DIVIDE "Float divide by zero"
+ 313 FMT_WRITE_NIY "Writing %s files is not implemented yet"
+ 314 FOXPRO_FILE "FoxPro file: "
+ 315 FPUTS_ERROR "fputs error: %s"
+ 316 FSEEK_ERROR "fseek error: %s"
+ 317 FSETPOS_ERROR "fseek error for i=%d"
+ 318 FTELL_ERROR "ftell error for recd=%d: %s"
+ 319 FUNCTION_ERROR "%s error: %d"
+ 320 FUNC_ERRNO "Error %d in %s"
+ 321 FUNC_ERROR "Error in %s"
+ 322 FUNC_ERR_S "%s error: %s"
+ 323 FWRITE_ERROR "fwrite error: %s"
+ 324 GET_DIST_VALS "Retrieving distinct values from "
+ 325 GET_FUNC_ERR "Error getting function %s: %s"
+ 326 GLOBAL_ERROR "Cannot allocate Global (size=%d)\n"
+ 327 GUARD_PAGE "Guard page violation"
+ 328 GZOPEN_ERROR "gzopen %s error %d on %s"
+ 329 ILLEGAL_INSTR "Illegal instruction"
+ 330 ILL_FILTER_CONV "Filtering implies an illegal conversion"
+ 331 INDEX_NOT_UNIQ "Index is not unique"
+ 332 INDEX_YET_ON "Index %s already exists on %s"
+ 333 INDX_COL_NOTIN "Index column %s is not in table %s"
+ 334 INDX_EXIST_YET "Index entry already exists"
+ 335 INIT_FAILED "Failed to initialize %s processing"
+ 336 INT_COL_ERROR "Internal error for index column %s"
+ 337 INT_OVERFLOW "Integer overflow"
+ 338 INT_ZERO_DIVIDE "Integer divide by zero"
+ 339 INVALID_DISP "Invalid disposition"
+ 340 INVALID_FTYPE "SBV: invalid Ftype %d"
+ 341 INVALID_HANDLE "Invalid handle"
+ 342 INVALID_OPER "Invalid operator %d for %s"
+ 343 INV_COLUMN_TYPE "Invalid type %d for column %s"
+ 344 INV_COL_TYPE "Invalid column type %s"
+ 345 INV_DEF_READ "Invalid deferred Read rc=%d"
+ 346 INV_DIRCOL_OFST "Invalid DIRCOL offset %d"
+ 347 INV_MAP_POS "Invalid map position"
+ 348 INV_RAND_ACC "Invalid random access to non optimized table"
+ 349 INV_REC_POS "Invalid record position"
+ 350 INV_RESULT_TYPE "Invalid result type %s"
+ 351 INV_UPDT_TABLE "Table %s invalid for update"
+ 352 IN_WITHOUT_SUB "IN or EXISTS without array or subquery"
+ 353 KEY_ALLOC_ERR "Error allocating Key offset block"
+ 354 KEY_ALLOC_ERROR "Memory allocation error, Klen=%d n=%d"
+ 355 LINE_TOO_LONG "New line is too long"
+ 356 LIST "--List--"
+ 357 LOADING_FAILED "Loading of %s failed"
+ 358 LRECL_TOO_SMALL "Lrecl too small (headlen = %d)"
+ 359 MAKE_EMPTY_FILE "Making empty file %s: %s"
+ 360 MAKING "Making"
+ 361 MALLOC_ERROR "Memory allocation failed: %s returned Null"
+ 362 MAP_VIEW_ERROR "MapViewOfFile %s error rc=%d"
+ 363 MAXSIZE_ERROR "Cannot calculate max size on open table"
+ 364 MEM_ALLOC_ERR "Memory allocation error, %s size=%d"
+ 365 MEM_ALLOC_ERROR "Memory allocation error"
+ 366 MISPLACED_QUOTE "Misplaced quote in line %d"
+ 367 MISSING_ARG "Missing argument for operator %d"
+ 368 MISSING_FIELD "Missing field %d in %s line %d"
+ 369 MISSING_FNAME "Missing file name"
+ 370 MISSING_NODE "Missing %s node in %s"
+ 371 MISSING_ROWNODE "Can't find RowNode for row %d"
+ 372 MIS_TAG_LIST "Missing column tag list"
+ 373 MUL_MAKECOL_ERR "Tabmul MakeCol logical error"
+ 374 NAME_CONV_ERR "Error converting node name"
+ 375 NEW_DOC_FAILED "Cannot create new document"
+ 376 NEW_RETURN_NULL "New returned Null in PlugEvalLike"
+ 377 NEXT_FILE_ERROR "Couldn't find next file. rc=%d"
+ 378 NONCONT_EXCEPT "Noncontinuable exception"
+ 379 NOP_ZLIB_INDEX "Cannot do indexing on non optimized zlib table"
+ 380 NOT_A_DBF_FILE "Not a dBASE dbf file "
+ 381 NOT_FIXED_LEN "File %s is not fixed length, len=%d lrecl=%d"
+ 382 NO_0DH_HEAD "No 0Dh at end of header (dbc=%d)"
+ 383 NO_ACTIVE_DB "No active database"
+ 384 NO_CHAR_FROM "Cannot return char value from type %d"
+ 385 NO_DATE_FMT "No date format for valblock of type %d"
+ 386 NO_DEF_FNCCOL "Cannot find default function column"
+ 387 NO_DEF_PIVOTCOL "Cannot find default pivot column"
+ 388 NO_DIR_INDX_RD "No direct access of %s tables"
+ 389 NO_FEAT_SUPPORT "No %s support in this version"
+ 390 NO_FLD_FORMAT "Missing format for field %d of %s"
+ 391 NO_FORMAT_COL "Cannot format the type COLUMN"
+ 392 NO_FORMAT_TYPE "Cannot set format from type %d"
+ 393 NO_INDEX_READ "No indexed read for multiple tables"
+ 394 NO_KEY_COL "No key columns found"
+ 395 NO_KEY_UPDATE "Cannot update key names"
+ 396 NO_MAP_INSERT "MAP incompatible with Insert"
+ 397 NO_MATCHING_COL "No matching column %s in %s"
+ 398 NO_MATCH_COL "Cannot find matching column"
+ 399 NO_MEMORY "No memory"
+ 400 NO_MODE_PADDED "Mode not supported for padded files"
+ 401 NO_MUL_VCT "VCT tables cannot be multiple"
+ 402 NO_ODBC_DELETE "Delete should not be called for ODBC tables"
+ 403 NO_ODBC_DIRECT "Direct access of ODBC tables not implemented yet"
+ 404 NO_ODBC_MUL "Multiple(2) not supported for ODBC tables"
+ 405 NO_ODBC_SPECOL "No ODBC special columns"
+ 406 NO_PART_DEL "No partial delete of %s files"
+ 407 NO_PART_MAP "Partial mapping not implemented for this OS"
+ 408 NO_PAR_BLK_INS "Cannot insert partial block yet"
+ 409 NO_PIV_DIR_ACC "No direct access to PIVOT tables"
+ 410 NO_READ_32 "Can't read 32 bytes"
+ 411 NO_RECOV_SPACE "Cannot recover space in index file"
+ 412 NO_ROWID_FOR_AM "Can't get RowID in direct access for tables of type %s"
+ 413 NO_ROW_NODE "Row node name is not defined"
+ 414 NO_SECTION_NAME "Missing section name"
+ 415 NO_SEC_UPDATE "Cannot update section names"
+ 416 NO_SETPOS_YET "%s SetPos not implemented yet"
+ 417 NO_SPEC_COL "No MySQL special columns"
+ 418 NO_SUB_VAL "No sub value for array of type %d"
+ 419 NO_TABCOL_DATA "No data found for table %s column %s"
+ 420 NO_TABLE_DEL "Delete not enabled for %s tables "
+ 421 NO_TAB_DATA "No data found for table %s"
+ 422 NO_VCT_DELETE "Partial delete not yet implemented for VCT files"
+ 423 NO_ZIP_DELETE "Delete Zip files not implemented yet"
+ 424 OPENING "Opening"
+ 425 OPEN_EMPTY_FILE "Opening empty file %s: %s"
+ 426 OPEN_ERROR "Open error %d in mode %d on %s: "
+ 427 OPEN_ERROR_IS "Open error on %s: %s"
+ 428 OPEN_MODE_ERROR "Open(%s) error %d on %s"
+ 429 OPEN_STRERROR "open error: %s"
+ 430 OPTBLK_RD_ERR "Error reading opt block values: %s"
+ 431 OPTBLK_WR_ERR "Error writing opt block values: %s"
+ 432 OPTIMIZING "Optimizing "
+ 433 OPT_BMAP_RD_ERR "Error reading opt bitmaps: %s"
+ 434 OPT_BMAP_WR_ERR "Error writing opt bitmaps: %s"
+ 435 OPT_CANCELLED "Optimize cancelled by User"
+ 436 OPT_DVAL_RD_ERR "Error reading distinct values: %s"
+ 437 OPT_DVAL_WR_ERR "Error writing distinct values: %s"
+ 438 OPT_HEAD_RD_ERR "Error reading opt file header: %s"
+ 439 OPT_HEAD_WR_ERR "Error writing opt file header: %s"
+ 440 OPT_LOGIC_ERR "Logical error in SetBitmap, i=%d"
+ 441 OPT_MAX_RD_ERR "Error reading opt max values: %s"
+ 442 OPT_MAX_WR_ERR "Error writing opt max values: %s"
+ 443 OPT_MIN_RD_ERR "Error reading opt min values: %s"
+ 444 OPT_MIN_WR_ERR "Error writing opt min values: %s"
+ 445 OPT_NOT_MATCH "Non-matching opt file %s"
+ 446 PAGE_ERROR "In page error"
+ 447 PARM_CNT_MISS "Parameter count mismatch"
+ 448 PREC_VBLP_NULL "ARRAY SetPrecision: Vblp is NULL"
+ 449 PRIV_INSTR "Privileged instruction"
+ 450 PROCADD_ERROR "Error %d getting address of %s"
+ 451 QUERY_CANCELLED "Query Cancelled by User"
+ 452 RANGE_NO_JOIN "Range is not meant for join index"
+ 453 RC_READING "rc=%d reading table %s"
+ 454 READY "Ready"
+ 455 READ_ERROR "Error reading %s: %s"
+ 456 READ_ONLY "Cannot modify this read/only protected table"
+ 457 READ_SEEK_ERROR "Read seek error: %s"
+ 458 REGISTER_ERR "Unable to register NS with prefix='%s' and href='%s'"
+ 459 REMOVE_ERROR "Error removing %s: %s"
+ 460 RENAME_ERROR "Error renaming %s to %s: %s"
+ 461 ROWID_NOT_IMPL "RowNumber not implemented for tables of type %s"
+ 462 SEC_KEY_FIRST "Section and key names must come first on Insert"
+ 463 SEC_NAME_FIRST "Section name must come first on Insert"
+ 464 SEP_IN_FIELD "Field %d contains the separator character"
+ 465 SEQUENCE_ERROR "Sequence error on statement allocation"
+ 466 SETEOF_ERROR "Error %d in SetEndOfFile"
+ 467 SETRECPOS_NIY "SetRecpos not implemented for this table type"
+ 468 SET_STR_TRUNC "SetValue: String would be truncated"
+ 469 SFP_ERROR "SetFilePointer error: %s"
+ 470 SHARED_LIB_ERR "Error loading shared library %s: %s"
+ 471 SINGLE_STEP "Single step"
+ 472 SORTING_VAL "Sorting %d values"
+ 473 SPCOL_READONLY "Special column %s is Read Only"
+ 474 SQL_CONF_ERROR "SQL Error: SQL_CONFORMANCE"
+ 475 SRCH_CLOSE_ERR "Couldn't close search handle"
+ 476 SRC_TABLE_UNDEF "Source table is not defined"
+ 477 STACK_OVERFLOW "Stack overflow"
+ 478 TABDIR_READONLY "DIR tables are read/only"
+ 479 TABLE_NOT_OPT "Not an optimizable table"
+ 480 TABLE_NO_INDEX "Table %s is not indexable"
+ 481 TABLE_READ_ONLY "%s tables are read only "
+ 482 TABMUL_READONLY "Multiple tables are read/only"
+ 483 TOO_MANY_FIELDS "Too many fields line %d of %s"
+ 484 TOO_MANY_JUMPS "Too many jump levels"
+ 485 TOO_MANY_KEYS "Too many keys (%d)"
+ 486 TO_BLK_IS_NULL "To Blk is NULL"
+ 487 TRUNCATE_ERROR "truncate error: %s"
+ 488 TRUNC_BY_ESTIM "truncated by Estimate"
+ 489 TYPE_MISMATCH "Key and source are not of the same type"
+ 490 TYPE_VALUE_ERR "Column %s type(%s)/value(%s) mismatch"
+ 491 UNBALANCE_QUOTE "Unbalanced quote in line %d"
+ 492 UNDEFINED_AM "COLBLK %s: undefined Access Method"
+ 493 UNKNOWN_EXCPT "Unknown exception"
+ 494 UNMATCH_FIL_ARG "Unmatched filter argument"
+ 495 UPDATE_ERROR "Error updating %s"
+ 496 UPD_ZIP_NOT_IMP "Updating ZDOS tables not implemented yet"
+ 497 VALSTR_TOO_LONG "Value %s too long for string of length %d"
+ 498 VALTYPE_NOMATCH "Non matching Value types"
+ 499 VALUE_ERROR "Column %s: value is null"
+ 500 VALUE_TOO_BIG "Value %d too big for column %s"
+ 501 VALUE_TOO_LONG "Value %s too long for column %s of length %d"
+ 502 VAL_ALLOC_ERR "Cannot allocate value node"
+ 503 VIR_NO_DELETE "Delete not allowed for %s tables"
+ 504 VIR_READ_ONLY "Virtual %s tables are read only"
+ 505 VOID_FIRST_ARG "First argument should not be void"
+ 506 WORK_AREA "Work area: %s"
+ 507 WRITE_SEEK_ERR "Write seek error: %s"
+ 508 WRITE_STRERROR "Error writing %s: %s"
+ 509 WRITING "Writing"
+ 510 WRITING_ERROR "Error writing to %s: %s"
+ 511 WS_CONV_ERR "Error converting %s to WS"
+ 512 XCOL_MISMATCH "Column %s mismatch in index"
+ 513 XFILE_READERR "Error %d reading index file"
+ 514 XFILE_WRITERR "Error writing index file: %s"
+ 515 XMLTAB_INIT_ERR "Error initializing XML table"
+ 516 XML_INIT_ERROR "Error initializing new XML file"
+ 517 XPATH_CNTX_ERR "Unable to create new XPath context"
+ 518 XPATH_EVAL_ERR "Unable to evaluate xpath location '%s'"
+ 519 XPATH_NOT_SUPP "Unsupported Xpath for column %s"
diff --git a/storage/connect/engmsg.h b/storage/connect/engmsg.h
index ccced92261e..463e8811bfd 100644
--- a/storage/connect/engmsg.h
+++ b/storage/connect/engmsg.h
@@ -1,54 +1,10 @@
#define MSG_ACCESS_VIOLATN "Access violation"
-#define MSG_ACT_ALLOC_FAIL "PlugInitLang: Activity allocation failed"
-#define MSG_ADDVAL_ERROR "Error %d in AddValue"
#define MSG_ADD_BAD_TYPE "Array add value type mismatch (%s -> %s)"
-#define MSG_ADD_NULL_DOM "Adding string %s to a null domain"
-#define MSG_ADPOS_IN_DICTP "ADPOS to work in User_Dictp"
-#define MSG_AFTER " after: "
-#define MSG_ALG_CHOICE_AUTO "Best algorithm choice is automatic"
-#define MSG_ALG_CHOICE_BAD "Bad algorithm choice value, reset to AUTO"
-#define MSG_ALG_CHOICE_QRY "Using Query algorithm"
-#define MSG_ALG_CURLY_BRK "Algorithm choice depends on outer curly brackets"
#define MSG_ALLOC_ERROR "Error allocating %s"
-#define MSG_ALL_DELETED "All lines deleted in %.2lf sec"
-#define MSG_ALTER_DB_ERR "Cannot find the DB to alter"
-#define MSG_AMBIG_COL_QUAL "Ambiguous qualifier %s for column %s"
-#define MSG_AMBIG_CORREL "Select %s.* refers more than one table"
-#define MSG_AMBIG_SPEC_COL "Ambiguous special column %s"
#define MSG_ANSWER_TYPE "Answer of type"
#define MSG_API_CONF_ERROR "SQL Error: API_CONFORMANCE"
-#define MSG_APPL_ACCESSIBLE "Application %s accessible"
-#define MSG_APPL_ACTIVE "Application %s still active"
-#define MSG_APPL_BAD_SAVE "Application %s may be incorrectly saved"
-#define MSG_APPL_CREATED "Application %s created"
-#define MSG_APPL_IS_ACTIVE "Application already active"
#define MSG_APPL_NOT_INIT "Application not initialized"
-#define MSG_APPL_NOT_LOADED "Application not loaded"
-#define MSG_APPL_QUIT "Application %s quit"
-#define MSG_APPL_SAVED "Application %s saved"
-#define MSG_APP_STILL_ACTIV "Application of language %s still active (not freed)"
-#define MSG_AREAFILE_NOTFND "Area file not found"
-#define MSG_ARGS_SYNTAX_ERR "?SetArgs syntax error: unexpected %s after %s"
-#define MSG_ARG_ALREADY_SET "Argument %d already set"
-#define MSG_ARG_NOT_AN_ATTR "Argument is not an attribute (wrong pos-type %d)"
-#define MSG_ARG_OUT_CONTEXT "@-type argument used out of context"
-#define MSG_ARG_OUT_RANGE "Phrase argument of value %d is out of range"
-#define MSG_ARG_PTR_NOSEM "Argument of value %d points to a nonterm having no Sem"
-#define MSG_ARG_PTR_NOSEMS "Argument of value %d points to a nonterm having no semantics"
-#define MSG_ARG_REF_LOOP "?Looping argument cross references"
-#define MSG_ARG_TWO_CONST "2nd argument of %s must be a constant"
-#define MSG_ARRAY_ALLOC_ERR "Memory allocation error in ARRAY"
#define MSG_ARRAY_BNDS_EXCD "Array bounds exceeded"
-#define MSG_ARRAY_ERROR "Error while making array k=%d n=%d"
-#define MSG_ATTRIBUTE_ERROR "Error rule %u attribute %s: "
-#define MSG_ATT_NOT_CASE "Attribute has wrong value %d (not a casevalue)"
-#define MSG_ATT_POSCODE_BIG "Attribute poscode %d is too big (max=%d)"
-#define MSG_AVGLEN_ERROR "avglen should be between %d and %d"
-#define MSG_BAD_AGGREG_FUNC "Unsupported aggregate function %d"
-#define MSG_BAD_ARGTYPES "Argument type invalid for %s"
-#define MSG_BAD_ARGUMENTS "Argument not attached for %s"
-#define MSG_BAD_ARG_NUM "Invalid number of arguments %d"
-#define MSG_BAD_ARG_TYPE "Bad argument type %d"
#define MSG_BAD_ARRAY_OPER "Arrays must be used with the IN operator"
#define MSG_BAD_ARRAY_TYPE "Illegal array type %d"
#define MSG_BAD_ARRAY_VAL "Arrays must have the same number of values"
@@ -57,321 +13,97 @@
#define MSG_BAD_BLK_SIZE "No match in block %d size"
#define MSG_BAD_BYTE_NUM "bad number of bytes written"
#define MSG_BAD_BYTE_READ "bad number of bytes read"
-#define MSG_BAD_CARDINALITY "Invalid Cardinality call for multiple table"
-#define MSG_BAD_CASE_SPEC "Wrong case specification %c, enter new one: "
-#define MSG_BAD_CHAR_SPEC "Invalid character specification:'%s'"
-#define MSG_BAD_CHECK_TYPE "Invalid CheckColumn subtype %d"
-#define MSG_BAD_CHECK_VAL "Bad check setting '%s'"
-#define MSG_BAD_COLCRT_ARG "Bad COLCRT argument (type=%hd, domain=%hd)"
-#define MSG_BAD_COLDEF_TYPE "Coldefs: wrong type %d"
-#define MSG_BAD_COLIST_ITEM "Incorrect colist item"
-#define MSG_BAD_COLIST_TYPE "Bad Colist type=%d"
-#define MSG_BAD_COLSIZE "Colsize %d is too small for this database"
-#define MSG_BAD_COL_ENTRY "Invalid entry for column %s"
-#define MSG_BAD_COL_FORMAT "Invalid column format type %d"
-#define MSG_BAD_COL_IN_FILT "Incorrect column in filter"
-#define MSG_BAD_COL_QUALIF "Bad qualifier %s for column %s"
#define MSG_BAD_COL_TYPE "Invalid type %s for column %s"
#define MSG_BAD_COL_XPATH "Invalid Xpath in column %s for HTML table %s"
-#define MSG_BAD_COMPARE_OP "Bad compare op %d"
#define MSG_BAD_CONST_TYPE "Bad constant type=%d"
#define MSG_BAD_CONV_TYPE "Invalid convert type %d"
-#define MSG_BAD_CORREL "Select %s.* correlation refers no tables"
#define MSG_BAD_DATETIME "Invalid datetime value"
-#define MSG_BAD_DATE_OPER "Unexpected date operator %d"
#define MSG_BAD_DBF_FILE "DBF file %s is corrupted"
#define MSG_BAD_DBF_REC "DBF file %s corrupted at record %d"
-#define MSG_BAD_DBF_TYPE "Unsupported DBF type %c"
-#define MSG_BAD_DEF_ARG "Bad INDEXDEF argument (type=%hd, domain=%hd)"
-#define MSG_BAD_DEF_READ "Unexpected EOF in deferred Read"
-#define MSG_BAD_DEF_TYPE "Invalid column definition type"
+#define MSG_BAD_DBF_TYPE "Unsupported DBF type %c for column %s"
#define MSG_BAD_DIRECTORY "Bad directory %s: %s"
-#define MSG_BAD_DIST_JN_FIL "Invalid Distinct Join filter"
-#define MSG_BAD_DIST_JOIN "Invalid Distinct Join specification"
-#define MSG_BAD_DOM_COL_DEF "Invalid column definitions for a domain"
-#define MSG_BAD_DOM_VALUE "%d is not a valid domain value"
-#define MSG_BAD_EDIT_INIT "Coparm: edition %s not properly initialized"
-#define MSG_BAD_EVAL_TYPE "Bad scalar function eval type=%d"
-#define MSG_BAD_EXEC_MODE "Bad execution mode '%s'"
-#define MSG_BAD_EXP_ARGTYPE "Invalid expression argument type=%d"
-#define MSG_BAD_EXP_OPER "Bad expression operator=%d"
-#define MSG_BAD_FETCH_RC "Unexpected Fetch return code %d"
-#define MSG_BAD_FIELD_FMT "Invalid field format %c for %s"
#define MSG_BAD_FIELD_RANK "Invalid field rank %d for column %s"
#define MSG_BAD_FIELD_TYPE "Bad type field %s"
#define MSG_BAD_FILE_HANDLE "Invalid File Handle: %s"
-#define MSG_BAD_FILE_LIST "Bad Filelist section"
#define MSG_BAD_FILTER "Bad filter: Opc=%d B_T=%d %d Type=%d %d"
#define MSG_BAD_FILTER_CONV "Bad filter conversion, B_T=%d,%d"
-#define MSG_BAD_FILTER_LINK "Bad filter link operator %d"
#define MSG_BAD_FILTER_OP "Invalid filter operator %d"
-#define MSG_BAD_FILTEST_OP "Invalid operator %d %d for FilTest"
#define MSG_BAD_FLD_FORMAT "Bad format for field %d of %s"
#define MSG_BAD_FLD_LENGTH "Field %s too long (%s --> %d) line %d of %s"
-#define MSG_BAD_FLOAT_CONV "Invalid convert of float array"
-#define MSG_BAD_FPARM_NEXT "Coparm: FPARM with non-null Next"
#define MSG_BAD_FREQ_SET "Bad frequency setting for column %s"
-#define MSG_BAD_FUNC_ARG "Funcarg of type %d not implemented"
-#define MSG_BAD_FUNC_ARGTYP "Bad Function argument type=%d"
#define MSG_BAD_FUNC_MODE "%s: invalid mode %d"
-#define MSG_BAD_GENRE "Genre is invalid"
-#define MSG_BAD_GETVIEW_RET "GetView: invalid return type %d"
#define MSG_BAD_HANDLE_VAL "Invalid handle value"
-#define MSG_BAD_HAV_FILTER "Having filter found in a Vanilla query"
-#define MSG_BAD_HAV_FILTYPE "Bad filter type for Having Clause"
#define MSG_BAD_HEADER "File %s: Header corrupted"
-#define MSG_BAD_HEADER_VAL "Invalid header value %d"
#define MSG_BAD_HEAD_END "Can't read end of header"
-#define MSG_BAD_INDEX_COL "Bad column %s for index %s"
-#define MSG_BAD_INDEX_DEF "Bad index definition for %s"
#define MSG_BAD_INDEX_FILE "Wrong index file %s"
-#define MSG_BAD_INDEX_PART "Bad index part for %s"
-#define MSG_BAD_INPUT "Incorrect input"
-#define MSG_BAD_IN_ARGTYPE "Bad argument type for IN operator"
-#define MSG_BAD_IN_ENDING "Error: wrong end of IN string"
-#define MSG_BAD_IN_STRING "IN string begins or ends with invalid char %c ... %c"
-#define MSG_BAD_JCOL_TYPE "Logical JCT error: Unmatched column types"
-#define MSG_BAD_JOIN_EXP "Invalid expression used in join"
-#define MSG_BAD_JOIN_FILTER "Improper join filter"
-#define MSG_BAD_JOIN_OP "Bad join operator %d"
-#define MSG_BAD_LANG_SIZE "Wrong Language file size %d"
#define MSG_BAD_LINEFLD_FMT "Bad format line %d field %d of %s"
#define MSG_BAD_LINE_LEN "Line length not equal to Lrecl"
-#define MSG_BAD_LIST_TYPE "Invalid list type=%d"
-#define MSG_BAD_LOCALE "Invalid locale %s"
-#define MSG_BAD_LOCDFON_ARG "Bad parameter for LOCDFON"
-#define MSG_BAD_LOCNODE_USE "Unexpected use of LOCNODE"
#define MSG_BAD_LRECL "Table/File lrecl mismatch (%d,%hd)"
-#define MSG_BAD_MAX_HAVING "MAXTMP value too small for Having"
-#define MSG_BAD_MAX_NREC "MaxRec=%d doesn't match MaxBlk=%d Nrec=%d"
-#define MSG_BAD_MAX_PARAM "Bad parameters for setting max value"
-#define MSG_BAD_MAX_SETTING "Bad max setting '%c'"
-#define MSG_BAD_MERGE_TYPE "Type %d cannot be merged"
#define MSG_BAD_NODE_TYPE "Bad type %d for table node"
#define MSG_BAD_OFFSET_VAL "Invalid null offset value for a CSV table"
#define MSG_BAD_OPEN_MODE "Invalid open mode %d"
-#define MSG_BAD_OPERATOR "Invalid operator %s"
-#define MSG_BAD_ORDER_MODE "Bad ordering mode %c"
-#define MSG_BAD_ORDER_TYPE "Type=%d invalid for order item"
-#define MSG_BAD_OUTER_JOIN "Invalid outer join on child table"
-#define MSG_BAD_PAD_ARGTYP "Bad argument type for Pad or Justify"
-#define MSG_BAD_PARAMETERS "%.8s: Bad parameters"
#define MSG_BAD_PARAM_TYPE "%.8s: Bad parameter type=%d"
#define MSG_BAD_PARM_COUNT "Parameter count mismatch"
-#define MSG_BAD_PHASE_NUM "Out of range phrase number %d"
-#define MSG_BAD_PHRASE_NB "out of range phrase number %d rc=%d\n"
-#define MSG_BAD_POS_CODE "Invalid POS code %d"
-#define MSG_BAD_POS_TYPE "Invalid POS code type %d"
-#define MSG_BAD_PROJNUM "Bad projnum %d for column %s"
-#define MSG_BAD_QUERY_OPEN "Query open invalid mode %d"
-#define MSG_BAD_QUERY_TYPE "Invalid query type %d for %s"
#define MSG_BAD_QUOTE_FIELD "Missing ending quote in %s field %d line %d"
#define MSG_BAD_READ_NUMBER "Wrong number %d of values read from %s"
#define MSG_BAD_RECFM "Invalid recfm type %d for DOSCOL"
#define MSG_BAD_RECFM_VAL "Bad Recfm value %d"
-#define MSG_BAD_RESULT_TYPE "Bad result type %d for %s"
-#define MSG_BAD_RETURN_TYPE "Bad returned type %d"
-#define MSG_BAD_ROW_VALIST "Invalid ROW list of values"
-#define MSG_BAD_ROW_VALNB "Number of values in list mismatch"
-#define MSG_BAD_SCF_ARGTYPE "Argument %d type=%s invalid for %s"
-#define MSG_BAD_SEM_DOMAIN "Invalid domain .%d"
-#define MSG_BAD_SETTINGS "Some settings do not match table type"
#define MSG_BAD_SET_CASE "Cannot set sensitive an insensitive array"
#define MSG_BAD_SET_STRING "Invalid SetValue from string"
-#define MSG_BAD_SET_TYPE "Bad set type %hd"
-#define MSG_BAD_SPECIAL_CMD "Ill formed special command"
#define MSG_BAD_SPECIAL_COL "Bad special column %s"
#define MSG_BAD_SPEC_COLUMN "Special column invalid for this table type"
-#define MSG_BAD_SQL_PARAM "Invalid SQL parameter for FindColblk"
-#define MSG_BAD_SUBLST_TYPE "Coparm: bad sub-list type %d"
-#define MSG_BAD_SUBSEL_IN_X "Bad sub-select in expression"
-#define MSG_BAD_SUBSEL_TYPE "Bad Sub-Select returned type %d"
-#define MSG_BAD_SUB_RESULT "Undefined Sub-Select function result"
-#define MSG_BAD_SUB_SELECT "Bad sub-select in function argument"
-#define MSG_BAD_TABLE_LINE "Illegal or truncated line '%s' in Tables section"
-#define MSG_BAD_TABLE_LIST "Table %s not found in table list"
#define MSG_BAD_TABLE_TYPE "Bad type %s for table %s"
-#define MSG_BAD_TEST_TYPE "Array BlockTest type mismatch %s %s"
-#define MSG_BAD_TRIM_ARGTYP "Bad argument type for Trim"
-#define MSG_BAD_TYPE_FOR_IN "Arg type mismatch for IN function"
-#define MSG_BAD_TYPE_FOR_S "Incorrect type %d for %s(%d)"
#define MSG_BAD_TYPE_LIKE "Bad operand(%d) type=%d for LIKE"
-#define MSG_BAD_UPD_COR "Qualifier %s of column %s not related to the updated table %s"
-#define MSG_BAD_USERBLK_LEN "User block write length error"
-#define MSG_BAD_USETEMP "Bad usetemp setting '%s'"
-#define MSG_BAD_USETEMP_VAL "Bad Usetemp value %d"
#define MSG_BAD_VALBLK_INDX "Out of range valblock index value"
#define MSG_BAD_VALBLK_TYPE "Invalid value block type %d"
#define MSG_BAD_VALNODE "Bad type %d for column %s value node"
#define MSG_BAD_VALUE_TYPE "Invalid value type %d"
#define MSG_BAD_VAL_UPDATE "Don't know which %s value to update"
-#define MSG_BAD_VIEW_OPEN "View open invalid mode %d"
-#define MSG_BAD_XMODE_VAL "Bad execution mode %d"
-#define MSG_BAD_XOBJ_TYPE "Bad Xobject type %d"
#define MSG_BAS_NS_LIST "Invalid namespaces list format"
#define MSG_BIN_F_TOO_LONG "Value too long for field %s (%d --> %d)"
#define MSG_BIN_MODE_FAIL "Set binary mode failed: %s"
#define MSG_BLKTYPLEN_MISM "Non matching block types/lengths in SetValue"
#define MSG_BLK_IS_NULL "Blk is NULL"
-#define MSG_BLOCK_NO_MATCH "Non matching block"
#define MSG_BREAKPOINT "Breakpoint"
-#define MSG_BUFF_TOO_SMALL "GetColData: Buffer is too small"
-#define MSG_BUFSIZE_ERROR "Error getting screen buffer size"
-#define MSG_BUILDING_GROUPS "Building groups"
-#define MSG_BUILD_DIST_GRPS "Building groups distinct"
#define MSG_BUILD_INDEX "Building index %s on %s"
-#define MSG_BXP_NULL "Bxp NULL in PUTFON"
#define MSG_CANNOT_OPEN "Cannot open %s"
-#define MSG_CD_ONE_STEP "Count Distinct must be processed in one step"
-#define MSG_CD_ORDER_ERROR "Ordering error in Count Distinct"
-#define MSG_CHECKING_ROWS "Checking rows to update"
-#define MSG_CHECK_LEVEL "Checking level reset to %u"
#define MSG_CHSIZE_ERROR "chsize error: %s"
-#define MSG_CLN_NOT_IN_JOIN "Column C%d not found in join"
-#define MSG_CNTDIS_COL_LOST "Count Distinct column lost"
-#define MSG_COLIST_BAD_TYPE "Invalid Colist element type=%d"
-#define MSG_COLNAM_TOO_LONG "Column name too long"
-#define MSG_COLSEC_TOO_BIG "Column section too big in table %s (%d)"
-#define MSG_COLS_REDUCED " (reduced by Maxcol)"
-#define MSG_COLUMN_ERROR "Column error"
-#define MSG_COLUMN_MISMATCH "Column %s mismatch"
-#define MSG_COLUMN_NOT_KEY "Join column R%d.%s is not a key"
#define MSG_COL_ALLOC_ERR "Cannot allocate column node"
-#define MSG_COL_ALLOC_ERROR "Memory allocation error for column %d"
-#define MSG_COL_HAS_NO_DEF "Column %s has no definition"
-#define MSG_COL_INVAL_TABLE "Column %s.%s not found in table %s alias %s"
#define MSG_COL_ISNOT_TABLE "Column %s is not in table %s"
-#define MSG_COL_NB_MISM "Number of columns mismatch"
-#define MSG_COL_NOTIN_GRPBY "Column %s not in Group By list"
-#define MSG_COL_NOTIN_TABLE "Column %s is not in any table"
-#define MSG_COL_NOTIN_UPDT "%s does not belong to the updated table %s"
-#define MSG_COL_NOT_CODED "Column %s is not coded"
-#define MSG_COL_NOT_EXIST "Column %s is not in table %s"
-#define MSG_COL_NOT_FOUND "Column %s does not exist in %s"
-#define MSG_COL_NOT_IN_DB "Column %s of table %s not in DB"
-#define MSG_COL_NOT_IN_JOIN "Column %s not found in join"
#define MSG_COL_NOT_SORTED "Column %s of table %s is not sorted"
#define MSG_COL_NUM_MISM "Number of columns mismatch"
-#define MSG_COL_USED_TWICE "Column %s linked twice ???"
-#define MSG_COMPUTE_ERROR "Error in Compute, op=%d"
-#define MSG_COMPUTE_NIY "Compute not implemented for token strings"
-#define MSG_COMPUTING "Computing"
-#define MSG_COMPUTING_DIST "Computing Distinct"
-#define MSG_COMPUTING_FUNC "Computing function(s)"
#define MSG_COM_ERROR "Com error"
#define MSG_CONCAT_SUBNODE "Cannot concatenate sub-nodes"
-#define MSG_CONNECTED "Connected"
#define MSG_CONNECT_CANCEL "Connection cancelled by user"
-#define MSG_CONNECT_ERROR "Error %d connecting to %s"
-#define MSG_CONN_CLOSED "%s(%d) closed"
-#define MSG_CONN_CREATED "Connection %s created"
-#define MSG_CONN_DROPPED "Connection %s dropped"
-#define MSG_CONN_OPEN "%s(%d) open (%s)"
-#define MSG_CONN_SUC_OPEN "%s(%d) successfully open"
#define MSG_CONTROL_C_EXIT "Control C exit"
-#define MSG_COPY_BAD_PHASE "List copy invalid in phase %d"
-#define MSG_COPY_INV_TYPE "Coparm: type not supported %d"
-#define MSG_CORREL_NO_QRY "Correlated subqueries cannot be of QRY type"
-#define MSG_CREATED_PLUGDB " Created by PlugDB %s "
-#define MSG_CURSOR_SET "Cursor set to %d"
-#define MSG_DATABASE_ACTIVE "Database %s activated"
#define MSG_DATABASE_LOADED "Database %s loaded"
-#define MSG_DATA_IS_NULL "ExecSpecialCmd: data is NULL"
#define MSG_DATA_MISALIGN "Datatype misalignment"
#define MSG_DBASE_FILE "dBASE dbf file: "
-#define MSG_DB_ALREADY_DEF "Database %s already defined"
-#define MSG_DB_ALTERED "Database altered"
-#define MSG_DB_CREATED "Database %s created"
-#define MSG_DB_NOT_SPEC "Database not specified"
-#define MSG_DB_REMOVED "Database %s removed from DB list"
-#define MSG_DB_SORT_ERROR "Error in DB sort"
-#define MSG_DB_STOPPED "Database %s stopped"
-#define MSG_DEBUG_NOT_ACTIV "Debug is not active"
-#define MSG_DEBUG_SET_INV "Invalid Debug set %c"
#define MSG_DEF_ALLOC_ERROR "Error allocating %s DEF class"
-#define MSG_DELETING_ROWS "Deleting rows"
#define MSG_DEL_FILE_ERR "Error deleting %s"
#define MSG_DEL_READ_ERROR "Delete: read error req=%d len=%d"
#define MSG_DEL_WRITE_ERROR "Delete: write error: %s"
#define MSG_DEPREC_FLAG "Deprecated option Flag, use Coltype"
-#define MSG_DICTIONARY "Dictionary "
-#define MSG_DIRECT_VARTOK "Direct access of variable token rules not implemented"
-#define MSG_DISCONNECTED "Disonnected"
-#define MSG_DISTINCT_ERROR "More than one DISTINCT functional item"
-#define MSG_DISTINCT_ROWS "Selecting distinct rows"
-#define MSG_DISTINCT_VALUES "Retrieving distinct values"
-#define MSG_DIS_NOHEAD_JOIN "Distinct join on not heading table"
#define MSG_DLL_LOAD_ERROR "Error %d loading module %s"
-#define MSG_DOMAIN_EMPTY "Domain %s is empty"
-#define MSG_DOMAIN_ERROR "Column %s domain(%s)/value(%s) mismatch"
-#define MSG_DOMAIN_FULL "Domain %s is full (max=%d)"
-#define MSG_DOM_FILE_ERROR "Domain file %s not found"
#define MSG_DOM_NOT_SUPP "MS-DOM not supported by this version"
-#define MSG_DOM_OPEN_ERROR "Domain open error: %s"
-#define MSG_DOM_READ_ERROR "Domain read error %d: %s"
-#define MSG_DOM_READ_ONLY "Domain table %s is read only"
-#define MSG_DOM_WRITE_ERROR "Domain write error %d: %s"
-#define MSG_DONE "Done, rc=%d"
-#define MSG_DOSALMEM_NOMEM "Memory Allocation failed, not enough memory"
-#define MSG_DROP_DB_ERR "Drop database %s failed"
-#define MSG_DSORT_LOG_ERROR "Logical error in Kindex distinct Sort"
-#define MSG_DUMMY_NO_COLS "Dummy tables must have no columns"
-#define MSG_DUPLICAT_COUNT "Count on more than one column"
-#define MSG_DUP_COL_NAME "Duplicate column name %s"
-#define MSG_DUP_PROJNUM "Duplicated projnum %d for column %s"
#define MSG_DVAL_NOTIN_LIST "Value %s not found in distinct values list of column %s"
#define MSG_EMPTY_DOC "Empty document"
#define MSG_EMPTY_FILE "%s empty file %s: "
-#define MSG_ENDSTR_MISMATCH "No match between end of string and end of node"
-#define MSG_END_OF_DELETE "%d line(s) deleted in %.2lf sec"
-#define MSG_END_OF_INSERT "%d line(s) inserted in %.2lf sec"
-#define MSG_END_OF_QUERY "%d line(s) retrieved in %.2lf sec"
-#define MSG_END_OF_UPDATE "%d line(s) updated in %.2lf sec"
#define MSG_EOF_AFTER_LINE "EOF after line %d"
#define MSG_EOF_INDEX_FILE "EOF while reading index file"
-#define MSG_ERASED " and erased"
-#define MSG_ERASE_FAILED " (erase failed)"
-#define MSG_ERROR "Error"
#define MSG_ERROR_IN_LSK "Error %d in lseek64"
#define MSG_ERROR_IN_SFP "Error %d in SetFilePointer"
-#define MSG_ERROR_NO_PARM "No parameter (valid only with %.8s.1 and %.8s.5)"
-#define MSG_ERROR_OPENING "Error opening: "
-#define MSG_ERR_NUM_GT_MAX "Error: Numval (%d) greater than Maxnum (%d)"
#define MSG_ERR_READING_REC "Error reading record %d of %s"
-#define MSG_ERR_RET_RULE "error return, rule=%u"
-#define MSG_ERR_RET_TYPE "error return, type=%d"
-#define MSG_EVAL_EXPIRED "Evaluation version expired"
-#define MSG_EVAL_ONLY "I agree to use this Dll for evaluation purpose only"
-#define MSG_EXECUTING "Executing"
-#define MSG_EXECUTION_ERROR "Execution error"
-#define MSG_EXEC_MODE_IS "Execution mode is %s"
-#define MSG_EXEC_MODE_RESET ". Mode reset to Execute"
-#define MSG_EXEC_MODE_SET "Execution mode set to %s"
-#define MSG_EXIT_EVAL_ERR "Error evaluating Exit"
-#define MSG_EXIT_FROM_LANG "Exit from language %s version %d.%d"
#define MSG_FAIL_ADD_NODE "Failed to add %s table node"
-#define MSG_FETCHING_DATA "Fetching data"
-#define MSG_FETCHING_ROWS "Fetching rows"
#define MSG_FETCH_NO_RES "Fetch: No Result Set"
#define MSG_FIELD_TOO_LONG "Value too long for field %d line %d"
#define MSG_FILELEN_ERROR "Error in %s for %s"
-#define MSG_FILE_CLOSE_ERR "Error %d occurred closing the file"
#define MSG_FILE_IS_EMPTY "File %s is empty"
#define MSG_FILE_MAP_ERR "File mapping error"
#define MSG_FILE_MAP_ERROR "CreateFileMapping %s error rc=%d"
-#define MSG_FILE_NOT_FOUND "File %s cannot be found"
#define MSG_FILE_OPEN_YET "File %s already open"
#define MSG_FILE_UNFOUND "File %s not found"
-#define MSG_FILGRP_NO_TABLE "Missing table %d for a filter group"
-#define MSG_FILTER_ATTACH "Filter passed to Attach"
-#define MSG_FILTER_NO_TABLE "Missing first table for a filter"
-#define MSG_FIND_BAD_TYPE "Array Find type mismatch %s %s"
-#define MSG_FIX_OVFLW_ADD "Fixed Overflow on add"
-#define MSG_FIX_OVFLW_TIMES "Fixed Overflow on times"
-#define MSG_FIX_UNFLW_ADD "Fixed Underflow on add"
-#define MSG_FIX_UNFLW_TIMES "Fixed Underflow on times"
#define MSG_FLD_TOO_LNG_FOR "Field %d too long for %s line %d of %s"
-#define MSG_FLTST_NO_CORREL "FilTest should be called only for correlated subqueries"
#define MSG_FLT_BAD_RESULT "Float inexact result"
#define MSG_FLT_DENORMAL_OP "Float denormal operand"
#define MSG_FLT_INVALID_OP "Float invalid operation"
@@ -380,11 +112,8 @@
#define MSG_FLT_UNDERFLOW "Float underflow"
#define MSG_FLT_ZERO_DIVIDE "Float divide by zero"
#define MSG_FMT_WRITE_NIY "Writing %s files is not implemented yet"
-#define MSG_FNC_NOTIN_SLIST "Order aggregate function not in select list"
-#define MSG_FORMAT_ERROR "Formating error"
#define MSG_FOXPRO_FILE "FoxPro file: "
#define MSG_FPUTS_ERROR "fputs error: %s"
-#define MSG_FSBPARP_NULL "PUTFON: fsbparp is NULL"
#define MSG_FSEEK_ERROR "fseek error: %s"
#define MSG_FSETPOS_ERROR "fseek error for i=%d"
#define MSG_FTELL_ERROR "ftell error for recd=%d: %s"
@@ -392,360 +121,113 @@
#define MSG_FUNC_ERRNO "Error %d in %s"
#define MSG_FUNC_ERROR "Error in %s"
#define MSG_FUNC_ERR_S "%s error: %s"
-#define MSG_FUNC_REF_DEL "Reference to a defined function (rule %d) which has been deleted"
#define MSG_FWRITE_ERROR "fwrite error: %s"
-#define MSG_GETCWD_ERR_NO "?getcwd %s errno=%d"
-#define MSG_GETFILESIZE_ERR "Error %d in GetFileSize"
#define MSG_GET_DIST_VALS "Retrieving distinct values from "
-#define MSG_GET_ERROR "Error in %s (column %d)"
#define MSG_GET_FUNC_ERR "Error getting function %s: %s"
-#define MSG_GET_NAME_ERR "Error getting SYS table names"
#define MSG_GLOBAL_ERROR "Cannot allocate Global (size=%d)\n"
-#define MSG_GRAM_ALLOC_ERR "Allocation error in Grammar Up"
-#define MSG_GRAM_MISMATCH "Warning: GRAMMAR version mismatch (saved under GRAMMAR v%u)"
-#define MSG_GRAM_SUBSET_ERR "Grammar dictionary Subset error"
-#define MSG_GRBY_TAB_NOTIMP "Group by filtered joined table not implemented"
-#define MSG_GROUPBY_NOT_ALL "Group By must include all non-functional select items"
-#define MSG_GROUP_ON_FUNC "Invalid group by on functional column"
-#define MSG_GRP_COL_MISM "Column mismatch in groups"
-#define MSG_GRP_LIST_MISMAT "Grouping does not match select list"
#define MSG_GUARD_PAGE "Guard page violation"
#define MSG_GZOPEN_ERROR "gzopen %s error %d on %s"
-#define MSG_GZPUTS_ERROR "gzputs error: %s"
-#define MSG_HANDLE_IS_NULL "%s is NULL: last error: %d"
-#define MSG_HARRY_COMP_NIY "Compute not implemented for coded strings"
-#define MSG_HAVING_FILTER "Filtering by Having"
-#define MSG_HBUF_TOO_SMALL "Buffer(%d) too small for header(%d)"
-#define MSG_HEAD_OPEN_ERROR "Error opening header file %s"
-#define MSG_HEAD_READ_ERROR "Error reading header file %s"
-#define MSG_HEAD_WRITE_ERR "Error writing header file %s"
-#define MSG_HI_OFFSET_ERR "High offet is not 0"
-#define MSG_HUGE_DEFAULT "Huge defaults to %d"
-#define MSG_HUGE_WARNING_1 "Huge memory not 16-bit compatible for %d\n"
-#define MSG_HUGE_WARNING_2 "Unpredictable results may occur\n"
-#define MSG_IDLE "Idle"
#define MSG_ILLEGAL_INSTR "Illegal instruction"
#define MSG_ILL_FILTER_CONV "Filtering implies an illegal conversion"
-#define MSG_INDEX_CREATED "Index %s created on %s"
-#define MSG_INDEX_DEF_ERR "Error storing index definition for %s"
-#define MSG_INDEX_DROPPED "Index %s dropped from %s"
-#define MSG_INDEX_INIT_ERR "Cannot initialize index %s"
-#define MSG_INDEX_NOT_DEF "Index %s has no definition"
#define MSG_INDEX_NOT_UNIQ "Index is not unique"
-#define MSG_INDEX_ONE_SAVE "Indexes are saved in one unique file"
-#define MSG_INDEX_SEP_SAVE "Indexes are saved in separate files"
#define MSG_INDEX_YET_ON "Index %s already exists on %s"
-#define MSG_INDX_ALL_DROP "All indexes dropped from %s"
#define MSG_INDX_COL_NOTIN "Index column %s is not in table %s"
#define MSG_INDX_EXIST_YET "Index entry already exists"
-#define MSG_INIT_ERROR "Error initializing %s"
#define MSG_INIT_FAILED "Failed to initialize %s processing"
-#define MSG_INPUT "Input: "
-#define MSG_INPUT_KEYBD_YET "Input already from keyboard"
-#define MSG_INSERTING "Inserting: "
-#define MSG_INSERT_ERROR "Insert error: file %s in use"
-#define MSG_INSERT_MISMATCH "Column/Value list mismatch"
-#define MSG_INTERNAL "internal"
#define MSG_INT_COL_ERROR "Internal error for index column %s"
#define MSG_INT_OVERFLOW "Integer overflow"
#define MSG_INT_ZERO_DIVIDE "Integer divide by zero"
-#define MSG_INVALID_BIP "Invalid Bip .%d"
#define MSG_INVALID_DISP "Invalid disposition"
#define MSG_INVALID_FTYPE "SBV: invalid Ftype %d"
#define MSG_INVALID_HANDLE "Invalid handle"
#define MSG_INVALID_OPER "Invalid operator %d for %s"
-#define MSG_INVALID_OPTION "Invalid option %s"
#define MSG_INV_COLUMN_TYPE "Invalid type %d for column %s"
-#define MSG_INV_COL_DATATYP "Invalid Data Type %d for column %d"
-#define MSG_INV_COL_NUM "Invalid column %d"
#define MSG_INV_COL_TYPE "Invalid column type %s"
-#define MSG_INV_CONC_BIP "Invalid bip (only valid are : %.8s.0 .1 and .5)"
-#define MSG_INV_DATA_PATH "Invalid database path %s"
#define MSG_INV_DEF_READ "Invalid deferred Read rc=%d"
#define MSG_INV_DIRCOL_OFST "Invalid DIRCOL offset %d"
-#define MSG_INV_DOMAIN_TYPE "Invalid type %d"
-#define MSG_INV_FILTER "Filter met in %s"
-#define MSG_INV_FNC_BUFTYPE "FNC: invalid argument type %d for %s"
-#define MSG_INV_INFO_TYPE "Invalid catalog info type %d"
-#define MSG_INV_INIPATH "Invalid inipath "
#define MSG_INV_MAP_POS "Invalid map position"
-#define MSG_INV_OPERATOR "invalid operator %d\n"
-#define MSG_INV_PARAMETER "Invalid parameter %s"
-#define MSG_INV_PARM_TYPE "Invalid parameter type"
-#define MSG_INV_QUALIFIER "Invalid qualifier '%s'"
-#define MSG_INV_QUERY_TYPE "Invalid query type %d"
#define MSG_INV_RAND_ACC "Invalid random access to non optimized table"
#define MSG_INV_REC_POS "Invalid record position"
#define MSG_INV_RESULT_TYPE "Invalid result type %s"
-#define MSG_INV_SET_SUBTYPE "Invalid SetFormat subtype %d"
-#define MSG_INV_SPECIAL_CMD "%s: Invalid special command"
-#define MSG_INV_SUBTYPE "Invalid subtype %s"
-#define MSG_INV_TOK_DOMAIN "Invalid token domain %s"
-#define MSG_INV_TOPSEM_CMD "Invalid TopSem command %c"
-#define MSG_INV_TRANSF_USE "Invalid use in transformation rule"
-#define MSG_INV_TYPE_SPEC "Invalid type specification (%.8s.%d)"
#define MSG_INV_UPDT_TABLE "Table %s invalid for update"
-#define MSG_INV_VALUE_LIST "Invalid Insert value list"
-#define MSG_INV_WHERE_JOIN "Invalid where clause in join query"
-#define MSG_INV_WORK_PATH "Invalid work path %s"
-#define MSG_IN_ARGTYPE_MISM "Argument type mismatch for IN expression"
-#define MSG_IN_USE " and in use"
#define MSG_IN_WITHOUT_SUB "IN or EXISTS without array or subquery"
-#define MSG_IS_NOT_CONN "%s is not a connection definition"
-#define MSG_JCT_MISS_COLS "Missing columns for a JCT table"
-#define MSG_JCT_MISS_TABLE "Missing joined table for JCT"
-#define MSG_JCT_NO_FILTER "Virtual JCT tables cannot be filtered"
-#define MSG_JCT_NO_KEY "Logical JCT error: no key"
-#define MSG_JOIN_KEY_NO_COL "Join key is not a column"
#define MSG_KEY_ALLOC_ERR "Error allocating Key offset block"
#define MSG_KEY_ALLOC_ERROR "Memory allocation error, Klen=%d n=%d"
-#define MSG_LANGUAGE_QUIT "%s quit"
-#define MSG_LANG_ACTIVE "Language %s active"
-#define MSG_LANG_ALLOC_FAIL "PlugInitLang: Lang block allocation failed"
-#define MSG_LANG_ALREADY_UP "Edited language is already there"
-#define MSG_LANG_BAD_SAVE "Language %s may be incorrectly saved"
-#define MSG_LANG_NOT_FREED "Language %s cannot be freed (not in main chain)"
-#define MSG_LANG_SAVED "Language %s saved"
-#define MSG_LANG_WR_LEN_ERR "Lang block write length error"
-#define MSG_LDF_ALLOC_ERROR "LdfBlock allocation error"
-#define MSG_LDF_RN_MISMATCH "LDF rule number mismatch"
-#define MSG_LDF_WLEN_ERROR "LdfData write length error"
-#define MSG_LDF_W_LEN_ERROR "LdfData write length error"
-#define MSG_LIC_NO_MYSQL "Your current license does not enable using the MySQL table type"
-#define MSG_LINEAR_ERROR "Linearization error"
-#define MSG_LINE_LENGTH "Output line length reset to %d"
-#define MSG_LINE_MAXLIN "Max number of work lines reset to %d"
-#define MSG_LINE_MAXRES "Max number of output lines reset to %d"
-#define MSG_LINE_MAXTMP "Max number of intermediate lines reset to %d"
#define MSG_LINE_TOO_LONG "New line is too long"
-#define MSG_LINJOINDB_ERROR "System error: incorrect call to LinJoinDB"
#define MSG_LIST "--List--"
-#define MSG_LNG_NOT_IN_LIST "Language %s not found in attached list"
-#define MSG_LOADING_DB "Loading DB Description"
#define MSG_LOADING_FAILED "Loading of %s failed"
-#define MSG_LOAD_CDLL_ERROR "Error loading ConnDll: rc=%d"
-#define MSG_LOCSTRG_TOO_BIG "LOCSTRG: n too big ? (%d)\n"
-#define MSG_LOGICAL_ERROR "%s: Logical error"
#define MSG_LRECL_TOO_SMALL "Lrecl too small (headlen = %d)"
-#define MSG_MAC_NO_DELETE "Delete not enabled for MAC tables"
-#define MSG_MAC_NO_INDEX "No direct access to MAC tables"
-#define MSG_MAC_READ_ONLY "MAC tables are read only"
-#define MSG_MAC_WIN_ONLY "MAC tables are Windows only"
#define MSG_MAKE_EMPTY_FILE "Making empty file %s: %s"
#define MSG_MAKING "Making"
-#define MSG_MAKING_DISTINCT "Making distinct groups"
#define MSG_MALLOC_ERROR "Memory allocation failed: %s returned Null"
-#define MSG_MALLOC_NULL "malloc returned Null"
-#define MSG_MAP_NO_MORE "Type %s no more supported"
-#define MSG_MAP_OBJ_ERR "Error %d occurred closing the mapping object"
-#define MSG_MAP_VEC_ONLY "MAP Insert is for VEC Estimate tables only"
#define MSG_MAP_VIEW_ERROR "MapViewOfFile %s error rc=%d"
#define MSG_MAXSIZE_ERROR "Cannot calculate max size on open table"
-#define MSG_MAXTMP_TRUNCATE "Intermediate results truncated by maxtmp=%d"
-#define MSG_MAX_BITMAP "Max opt bitmap size reset to %d"
-#define MSG_MEMSIZE_TOO_BIG "Error: memsize (%d) too big for length (%d)"
#define MSG_MEM_ALLOC_ERR "Memory allocation error, %s size=%d"
#define MSG_MEM_ALLOC_ERROR "Memory allocation error"
-#define MSG_MEM_ALLOC_YET "Memory already allocated"
-#define MSG_METAFILE_NOTFND "Grammar Meta file not found"
#define MSG_MISPLACED_QUOTE "Misplaced quote in line %d"
-#define MSG_MISSING "Missing: Value=%p Argval=%p Builtin=%d"
#define MSG_MISSING_ARG "Missing argument for operator %d"
-#define MSG_MISSING_COL_DEF "Missing column definition"
-#define MSG_MISSING_CONNECT "Missing connect string"
-#define MSG_MISSING_EOL "Missing endline character in %s"
#define MSG_MISSING_FIELD "Missing field %d in %s line %d"
#define MSG_MISSING_FNAME "Missing file name"
#define MSG_MISSING_NODE "Missing %s node in %s"
-#define MSG_MISSING_POS "Missing POS code"
#define MSG_MISSING_ROWNODE "Can't find RowNode for row %d"
-#define MSG_MISSING_SERV_DB "Missing server and/or database string"
-#define MSG_MISS_LEAD_COL "Missing leading index column %s"
-#define MSG_MISS_NAME_LRECL "Missing file name and/or lrecl"
-#define MSG_MISS_TABLE_LIST "Missing table list"
-#define MSG_MISS_VCT_ELMT "Missing VCT block size (Elements)"
#define MSG_MIS_TAG_LIST "Missing column tag list"
-#define MSG_MKEMPTY_NIY "MakeEmptyFile: not yet implemented for Huge and Unix"
-#define MSG_MOVE_INV_TYPE "MOVPARM: Invalid parameter type %d"
-#define MSG_MULT_DISTINCT "Distinct is specified more than once"
-#define MSG_MULT_KEY_ERROR "Multiple key error k=%d n=%d"
#define MSG_MUL_MAKECOL_ERR "Tabmul MakeCol logical error"
-#define MSG_MYSQL_CNC_OFF "MySQL connection is closed"
-#define MSG_MYSQL_CNC_ON "MySQL connection is established"
-#define MSG_MYSQL_NOT_SUP "MySQL not supported by this version"
-#define MSG_MY_CNC_ALREADY "MySQL connection already active"
#define MSG_NAME_CONV_ERR "Error converting node name"
-#define MSG_NAME_IS_USED "Name %s already in use"
-#define MSG_NCOL_GT_MAXCOL "Too many columns (%d > %d max)"
-#define MSG_NEW_CHAR_NULL "new char(%d) returned Null"
#define MSG_NEW_DOC_FAILED "Cannot create new document"
#define MSG_NEW_RETURN_NULL "New returned Null in PlugEvalLike"
-#define MSG_NEW_TABLE_ERR "Unable to retrieve new table %s"
#define MSG_NEXT_FILE_ERROR "Couldn't find next file. rc=%d"
-#define MSG_NODEF_FROM_VIEW "Cannot define a table from a view"
-#define MSG_NODE_FOR_CHAR "Node %s found when looking for character"
-#define MSG_NODE_SUBSET_ERR "Node %d Subset error"
#define MSG_NONCONT_EXCEPT "Noncontinuable exception"
-#define MSG_NON_DUP_HAVING "Having clause in non/dup functional query"
-#define MSG_NON_EVAL_SEM "Sem not evaluated: p_no=%d"
#define MSG_NOP_ZLIB_INDEX "Cannot do indexing on non optimized zlib table"
#define MSG_NOT_A_DBF_FILE "Not a dBASE dbf file "
-#define MSG_NOT_ENOUGH_COLS "Not enough columns in %s"
-#define MSG_NOT_ENOUGH_MEM "Not enough memory to perform this operation"
#define MSG_NOT_FIXED_LEN "File %s is not fixed length, len=%d lrecl=%d"
-#define MSG_NOT_IMPLEMENTED "Not implemented: %.8s"
-#define MSG_NOT_IMPL_JOIN "Not implemented for Join"
-#define MSG_NOT_IMPL_SET "Not implemented for set operators"
-#define MSG_NOT_IMPL_YET "Not implemented yet"
-#define MSG_NOT_LINEARIZED "Table tree was not linearized"
-#define MSG_NOT_MODIFIABLE " (not modifiable)"
#define MSG_NO_0DH_HEAD "No 0Dh at end of header (dbc=%d)"
-#define MSG_NO_ACTIVE_APPL "No active application"
#define MSG_NO_ACTIVE_DB "No active database"
-#define MSG_NO_ACTIVE_UDIC "No active user dictionary"
-#define MSG_NO_AGGR_FUNC "Aggregated function %d not allowed here"
-#define MSG_NO_AREA_FILE "Area file not found"
-#define MSG_NO_AVAIL_RESULT "No result available"
-#define MSG_NO_BIG_DELETE "Partial delete not yet implemented for Huge files"
#define MSG_NO_CHAR_FROM "Cannot return char value from type %d"
-#define MSG_NO_CLUSTER_COL "No clustered columns"
-#define MSG_NO_COL_ADDING "Cannot add new column(s) to old definition"
-#define MSG_NO_COL_DEF_AS "Column definitions cannot be used with AS Select"
-#define MSG_NO_COL_FOUND "No column found in section %s"
-#define MSG_NO_COL_IN_TABLE "Column %d not in table %s"
-#define MSG_NO_COL_SECTION "Missing column section for table %s"
-#define MSG_NO_CONNECT_ADDR "No connexion address provided"
-#define MSG_NO_CONST_FILTER "Constant filters not implemented"
-#define MSG_NO_CURLY_BRKT "No closing curly bracket"
-#define MSG_NO_DATABASE "Database %s not found"
#define MSG_NO_DATE_FMT "No date format for valblock of type %d"
-#define MSG_NO_DBF_INSERT "Insert not supported yet for GDF files"
#define MSG_NO_DEF_FNCCOL "Cannot find default function column"
#define MSG_NO_DEF_PIVOTCOL "Cannot find default pivot column"
#define MSG_NO_DIR_INDX_RD "No direct access of %s tables"
-#define MSG_NO_DMY_DIR_ACC "No direct access of virtual DUMMY tables"
-#define MSG_NO_DOM_DELETE "Partial delete not yet implemented for domains"
-#define MSG_NO_DOM_MATCH "Unmatched string %.8s... in domain %s"
-#define MSG_NO_EDITED_LANG "Coparm: No active edited language"
-#define MSG_NO_EXP_LINK "Cannot use expression to link a JCT table"
-#define MSG_NO_EXT_FILTER "Filtering cannot refer to another table"
-#define MSG_NO_EXT_UPDATE "Cannot update with reference to another table"
#define MSG_NO_FEAT_SUPPORT "No %s support in this version"
-#define MSG_NO_FILE_LIST "Table %s has no file list"
#define MSG_NO_FLD_FORMAT "Missing format for field %d of %s"
#define MSG_NO_FORMAT_COL "Cannot format the type COLUMN"
#define MSG_NO_FORMAT_TYPE "Cannot set format from type %d"
-#define MSG_NO_FULL_JOIN "Only Equi-join on key(s) is allowed by check setting"
-#define MSG_NO_FUL_OUT_JOIN "Full outer joins are not supported"
-#define MSG_NO_FUNC_ORDER "Unsupported ordering on functional item"
-#define MSG_NO_HEAD_JOIN "Join on not heading table"
-#define MSG_NO_HQL_CONV "Conversion to HQL not available"
-#define MSG_NO_INDEX "No indexes on table %s"
-#define MSG_NO_INDEX_GBX "No or improper index for SQLGBX"
-#define MSG_NO_INDEX_IN "No indexes found in %s"
#define MSG_NO_INDEX_READ "No indexed read for multiple tables"
-#define MSG_NO_INIT_LANG "No initial language"
-#define MSG_NO_JOIN_TO_EXP "No join to expressions"
-#define MSG_NO_JOIN_UPDEL "Update/Delete on MySQL table cannot be joined"
#define MSG_NO_KEY_COL "No key columns found"
#define MSG_NO_KEY_UPDATE "Cannot update key names"
-#define MSG_NO_LANGUAGE "No language in operation\n"
-#define MSG_NO_LANG_TO_QUIT "No next language to quit"
-#define MSG_NO_LISTVAL_HERE "LSTBLK: List of values used out of context"
#define MSG_NO_MAP_INSERT "MAP incompatible with Insert"
#define MSG_NO_MATCHING_COL "No matching column %s in %s"
#define MSG_NO_MATCH_COL "Cannot find matching column"
#define MSG_NO_MEMORY "No memory"
-#define MSG_NO_MEM_CORR_SUB "In memory correlated subquery not implemented yet"
#define MSG_NO_MODE_PADDED "Mode not supported for padded files"
-#define MSG_NO_MORE_COL "Column %s no more in pivot table"
-#define MSG_NO_MORE_LANG "No more language, exit from %s\n"
-#define MSG_NO_MORE_VAR "VAR files no more supported"
-#define MSG_NO_MULCOL_JOIN "No join yet on muticolumn index"
-#define MSG_NO_MULT_HAVING "Multiple having clauses not implemented"
-#define MSG_NO_MUL_DIR_ACC "Direct access of multiple tables not implemented yet"
#define MSG_NO_MUL_VCT "VCT tables cannot be multiple"
-#define MSG_NO_MYSQL_CONN "No open MySQL connection"
-#define MSG_NO_MYSQL_DELETE "Delete should not be called for MySQL tables"
-#define MSG_NO_NBCOL "No NBcol"
-#define MSG_NO_NBLIN "No NBlin, MaxSize or Continued"
-#define MSG_NO_NBLIN_CONT "Fetch: No NBlin or Continued"
-#define MSG_NO_NULL_CONST "Cannot handle <null> constant"
-#define MSG_NO_ODBC_COL "Automatic ODBC columns not supported in this version"
#define MSG_NO_ODBC_DELETE "Delete should not be called for ODBC tables"
#define MSG_NO_ODBC_DIRECT "Direct access of ODBC tables not implemented yet"
#define MSG_NO_ODBC_MUL "Multiple(2) not supported for ODBC tables"
#define MSG_NO_ODBC_SPECOL "No ODBC special columns"
-#define MSG_NO_OPT_COLUMN "Not optimizable or no optimized columns"
-#define MSG_NO_OP_MODIF "Modificators do not apply to %s"
-#define MSG_NO_PARAMETER "No parameter"
#define MSG_NO_PART_DEL "No partial delete of %s files"
#define MSG_NO_PART_MAP "Partial mapping not implemented for this OS"
#define MSG_NO_PAR_BLK_INS "Cannot insert partial block yet"
#define MSG_NO_PIV_DIR_ACC "No direct access to PIVOT tables"
-#define MSG_NO_POS_ADDED "No Pos_code added"
-#define MSG_NO_PROMPTING "Cannot handle prompting for distributed tables"
-#define MSG_NO_QRY_DELETE "Delete cannot be used for QRY views"
-#define MSG_NO_QUERY_ARRAY "Array from QUERY not implemented yet"
-#define MSG_NO_RCUR_DSK_YET "Recursive use of DISK not implemented yet"
#define MSG_NO_READ_32 "Can't read 32 bytes"
#define MSG_NO_RECOV_SPACE "Cannot recover space in index file"
-#define MSG_NO_REF_DELETE "Cannot delete with reference to another table"
-#define MSG_NO_REF_UPDATE "Cannot update with reference to another table"
-#define MSG_NO_REMOTE_FNC "Cannot process some functions remotely"
#define MSG_NO_ROWID_FOR_AM "Can't get RowID in direct access for tables of type %s"
#define MSG_NO_ROW_NODE "Row node name is not defined"
#define MSG_NO_SECTION_NAME "Missing section name"
#define MSG_NO_SEC_UPDATE "Cannot update section names"
-#define MSG_NO_SELECTED_DB "No selected database"
-#define MSG_NO_SELF_PIVOT "Cannot pivot oneself!"
-#define MSG_NO_SERVER_FOUND "No server found"
#define MSG_NO_SETPOS_YET "%s SetPos not implemented yet"
-#define MSG_NO_SFEXIT_UNIX "Function %s not available on Unix"
-#define MSG_NO_SOURCE " (no source)"
#define MSG_NO_SPEC_COL "No MySQL special columns"
-#define MSG_NO_SQL_DELETE "Delete cannot be currently used for SQL views"
#define MSG_NO_SUB_VAL "No sub value for array of type %d"
-#define MSG_NO_SUCH_INDEX "No indexes %s on table %s"
-#define MSG_NO_SUCH_SERVER "cannot find the server %s"
-#define MSG_NO_SUCH_TABLE "Table %s not in DB"
#define MSG_NO_TABCOL_DATA "No data found for table %s column %s"
-#define MSG_NO_TABLE_COL "No columns found for %s"
#define MSG_NO_TABLE_DEL "Delete not enabled for %s tables "
-#define MSG_NO_TABLE_DESC "No Table Description Block"
-#define MSG_NO_TABLE_INDEX "Table %s has no index"
-#define MSG_NO_TABLE_LIST "No table list"
#define MSG_NO_TAB_DATA "No data found for table %s"
-#define MSG_NO_TERM_IN_TOK "Non terminal cannot be used in token rules"
-#define MSG_NO_TOKEN_DB "Cannot find DB for Token column %s"
-#define MSG_NO_UNIX_CATINFO "No catalog info under Unix"
-#define MSG_NO_UPDEL_JOIN "Update/Delete on ODBC table cannot be joined"
#define MSG_NO_VCT_DELETE "Partial delete not yet implemented for VCT files"
-#define MSG_NO_VIEW_COLDEF "No coldefs available for views"
-#define MSG_NO_VIEW_SORT "Cannot sort/join SQL functional view %s"
#define MSG_NO_ZIP_DELETE "Delete Zip files not implemented yet"
-#define MSG_NO_ZIP_DIR_ACC "Direct access of ZDOS tables not implemented yet"
-#define MSG_NULL_COL_VALUE "Column Value block is NULL"
-#define MSG_NULL_ENTRY "InitLang, null entry %d %s"
-#define MSG_NULL_QUERY "Null query"
-#define MSG_NUMVAL_NOMATCH "Numval mismatch for %s"
-#define MSG_N_FULL_PARSES "%d full parses"
-#define MSG_ODBC_READ_ONLY "ODBC is currently read only"
-#define MSG_OFFSET_NOT_SUPP "Offset not implemented for this type of sub query"
-#define MSG_ONE_LANG_YET "Already one language in edition"
-#define MSG_ONE_PARAM_ONLY "Only one parameter allowed"
-#define MSG_ONLY_LOG10_IMPL "Only Log10 is implemented"
-#define MSG_ON_LANGUAGE "Language %.8s version %d.%d loaded for editing"
#define MSG_OPENING "Opening"
-#define MSG_OPENING_QUERY "Opening query"
#define MSG_OPEN_EMPTY_FILE "Opening empty file %s: %s"
#define MSG_OPEN_ERROR "Open error %d in mode %d on %s: "
#define MSG_OPEN_ERROR_IS "Open error on %s: %s"
-#define MSG_OPEN_ERROR_ON "Open error on %s"
#define MSG_OPEN_MODE_ERROR "Open(%s) error %d on %s"
-#define MSG_OPEN_SORT_ERROR "Logical sort error in QUERY Open"
#define MSG_OPEN_STRERROR "open error: %s"
-#define MSG_OPEN_W_ERROR "Couldn't open %s for writing"
#define MSG_OPTBLK_RD_ERR "Error reading opt block values: %s"
#define MSG_OPTBLK_WR_ERR "Error writing opt block values: %s"
#define MSG_OPTIMIZING "Optimizing "
@@ -756,258 +238,83 @@
#define MSG_OPT_DVAL_WR_ERR "Error writing distinct values: %s"
#define MSG_OPT_HEAD_RD_ERR "Error reading opt file header: %s"
#define MSG_OPT_HEAD_WR_ERR "Error writing opt file header: %s"
-#define MSG_OPT_INIT "Optimization initialized"
#define MSG_OPT_LOGIC_ERR "Logical error in SetBitmap, i=%d"
#define MSG_OPT_MAX_RD_ERR "Error reading opt max values: %s"
#define MSG_OPT_MAX_WR_ERR "Error writing opt max values: %s"
#define MSG_OPT_MIN_RD_ERR "Error reading opt min values: %s"
#define MSG_OPT_MIN_WR_ERR "Error writing opt min values: %s"
#define MSG_OPT_NOT_MATCH "Non-matching opt file %s"
-#define MSG_OP_RES_TOO_LONG "Result too long for operator=%d"
-#define MSG_ORDER_OUT_RANGE "Order %d out of range"
-#define MSG_ORDER_TWICE "Ordering twice the same select item"
#define MSG_PAGE_ERROR "In page error"
#define MSG_PARM_CNT_MISS "Parameter count mismatch"
-#define MSG_PARSE_NULL_SEM "Parse with null semantics"
-#define MSG_PARSING_QUERY "Parsing query"
-#define MSG_PIX_ERROR "Pix %s error Rule_no=%u\n"
-#define MSG_PIX_TEST_ERROR "Rule=%u: pix-TEST not in first node\n"
-#define MSG_PLG_READ_ONLY "PLG is currently Read Only"
-#define MSG_PLM_NULL_SFP "TABPLM ReadDB: Sfp is NULL"
-#define MSG_PLUG_NOT_INIT "Plug was not initialized\n"
-#define MSG_PLUG_NOT_RUN "Plug is not running"
-#define MSG_PNODE_RULE "(P_node %d rule %d) "
-#define MSG_POS_TOO_LONG "%s too long (>%d)"
#define MSG_PREC_VBLP_NULL "ARRAY SetPrecision: Vblp is NULL"
#define MSG_PRIV_INSTR "Privileged instruction"
#define MSG_PROCADD_ERROR "Error %d getting address of %s"
-#define MSG_PROCESS_SUBQRY "Processing Sub-Query"
-#define MSG_PROC_WOULD_LOOP "Process would loop (maxres=%d maxlin=%d)"
-#define MSG_PROGRESS_INFO "Progress Information"
-#define MSG_PROMPT_CANCEL "Prompt was cancelled"
-#define MSG_PROMPT_NIY "Prompt not implemented for this configuration"
-#define MSG_PTR_NOT_FOUND "Pointer not found Num=%d ti1=%d"
-#define MSG_PXDEF_IS_NULL "Pxdef is NULL"
-#define MSG_QRY_READ_ONLY "QRY views are read only"
#define MSG_QUERY_CANCELLED "Query Cancelled by User"
-#define MSG_QUERY_NOT_EXEC "Query not executed"
-#define MSG_QUERY_SAVED "Query %s saved"
-#define MSG_QUOTE_IN_QUOTE "Quote char inside quoted field in line %d"
-#define MSG_RANGE_NIY "Range NIY for %s"
#define MSG_RANGE_NO_JOIN "Range is not meant for join index"
#define MSG_RC_READING "rc=%d reading table %s"
-#define MSG_READB_BAD_INIT "%s ReadDB called with Init=0"
-#define MSG_READCOL_ERROR "SQLCOL ReadColumn error"
-#define MSG_READING "Reading"
-#define MSG_READING_FROM "Reading from %s"
-#define MSG_READING_RECORD "Error reading record %d of %s"
#define MSG_READY "Ready"
#define MSG_READ_ERROR "Error reading %s: %s"
-#define MSG_READ_ERROR_RC "Read error, rc=%d"
-#define MSG_READ_MEM_ERROR "Reading memory %d: size=%d"
#define MSG_READ_ONLY "Cannot modify this read/only protected table"
#define MSG_READ_SEEK_ERROR "Read seek error: %s"
-#define MSG_READ_SEG_ERROR "Reading segment %d: size=%d"
-#define MSG_RECEIVED "Received %c\n"
-#define MSG_RECORD_ERROR "Error reading record %d of %s"
-#define MSG_RECORD_NO_SEP "Record with no separator"
-#define MSG_REC_SKIPPED " (%d bad records skipped by MaxErr setting)"
-#define MSG_REDUCE_INDEX "Reducing index"
#define MSG_REGISTER_ERR "Unable to register NS with prefix='%s' and href='%s'"
-#define MSG_REMOTE_CONN_ERR "Remote connection failed"
#define MSG_REMOVE_ERROR "Error removing %s: %s"
-#define MSG_REMOVE_NOT_IMPL "Remove not implemented for non-table TDB"
#define MSG_RENAME_ERROR "Error renaming %s to %s: %s"
-#define MSG_RENUM_RULES "Renumber rules and enter ADD again (rule saved in buffer)"
-#define MSG_REORDER_INDEX "Reordering index"
-#define MSG_REQU_ARG_NUM "Function %s requires %d arguments"
-#define MSG_RESET_TO "%s reset to %d"
-#define MSG_RES_NOT_UNIQUE "Result is not a unique value"
-#define MSG_RET_FROM_LANG "Return to language %s version %d.%d from language %s version %d.%d"
#define MSG_ROWID_NOT_IMPL "RowNumber not implemented for tables of type %s"
-#define MSG_ROWS_SELECTED "%d rows selected in %.2lf sec"
-#define MSG_ROWS_TRUNCATED " (truncated by MAXRES, LIMIT, FREQ or AreaSize setting)"
-#define MSG_ROW_ARGNB_ERR "ROW arg number mismatch (%d,%d)"
-#define MSG_RPC_SERVER_ERR "RPC error, server not responding"
-#define MSG_RSC_ALLOC_ERROR "Memory allocation error in Rescol %s"
-#define MSG_RULE_ENTERED "Rule %d entered"
-#define MSG_RULE_SUBSET_ERR "Rules Subset error"
-#define MSG_SAVING_INDEX "Saving index file"
-#define MSG_SCAN_NOT_IMP "Scan not implemented"
#define MSG_SEC_KEY_FIRST "Section and key names must come first on Insert"
#define MSG_SEC_NAME_FIRST "Section name must come first on Insert"
-#define MSG_SEC_NOT_FOUND "Section %s not found in %s"
-#define MSG_SEEK_ERROR "Seek error in CopyHeader"
-#define MSG_SEMANTIC_TREE "Semantic Tree"
-#define MSG_SEM_BAD_REF "Sem name @%d refers to an argument of type not 0 or 1"
-#define MSG_SEM_UNKNOWN "unknown, rc=%d"
#define MSG_SEP_IN_FIELD "Field %d contains the separator character"
#define MSG_SEQUENCE_ERROR "Sequence error on statement allocation"
#define MSG_SETEOF_ERROR "Error %d in SetEndOfFile"
#define MSG_SETRECPOS_NIY "SetRecpos not implemented for this table type"
-#define MSG_SET_LOCALE "Locale set to %s"
-#define MSG_SET_NULL_DOM "Setting value %d to a null domain"
-#define MSG_SET_OP_NOT_IMPL "sorry - set operators not implemented"
#define MSG_SET_STR_TRUNC "SetValue: String would be truncated"
-#define MSG_SEVERAL_TREES "Some tables are not properly joined"
#define MSG_SFP_ERROR "SetFilePointer error: %s"
-#define MSG_SFUNC_NOT_IMPL "Scalar Function %s not implemented"
#define MSG_SHARED_LIB_ERR "Error loading shared library %s: %s"
#define MSG_SINGLE_STEP "Single step"
-#define MSG_SLEEP "I slept %d milliseconds"
-#define MSG_SMART_SORTING "Retrieving sorted rows (pass %d of %d)"
-#define MSG_SMART_SORT_ERR "Logical Smart Sort Error 1"
-#define MSG_SORTING "Sorting"
-#define MSG_SORTING_INDEX "Sorting index"
#define MSG_SORTING_VAL "Sorting %d values"
-#define MSG_SORT_JOIN_INDEX "Sorting join index"
#define MSG_SPCOL_READONLY "Special column %s is Read Only"
-#define MSG_SPEC_CMD_SEP "Special commands must be executed separately"
-#define MSG_SQL_BAD_TYPE "RephraseSQL: type %d not supported"
-#define MSG_SQL_BLOCK_MISM "CheckColumn: SQL current blocks mismatch"
#define MSG_SQL_CONF_ERROR "SQL Error: SQL_CONFORMANCE"
-#define MSG_SQL_READ_ONLY "SQL views are currently read only"
#define MSG_SRCH_CLOSE_ERR "Couldn't close search handle"
#define MSG_SRC_TABLE_UNDEF "Source table is not defined"
-#define MSG_STACK_ERROR "stack error, i=%d\n"
-#define MSG_STACK_OVERFLOW "Parser: Stack overflow\n"
-#define MSG_STRG_NOT_FOUND "String not found"
-#define MSG_STRING_INV_LIST "List invalid for SemString"
-#define MSG_STRING_TOO_BIG "String too big for domain %s"
-#define MSG_SUBALLOC_ERROR "Not enough memory in area %p for request of %d (used=%d free=%d)"
-#define MSG_SUBAL_HUGE_ERR "Not enough memory in huge %p for request of %d"
-#define MSG_SUBARG_NOSEM "@ or sub-phrase arg of level %d points to a meaningless argument"
-#define MSG_SUBARG_OUTRANGE "Out of range @ or sub-phrase argument of level %d"
-#define MSG_SUBQRY_ONEITEM "Sub-Query must have exactly one select item"
-#define MSG_SUBSET_ERROR "SubSet error in LoadDB"
-#define MSG_SUB_OPEN_YET "Subquery already open"
-#define MSG_SUB_RES_TOO_LNG "Result too long for SUBSTR"
-#define MSG_SYNTAX_ERROR "Syntax error"
-#define MSG_SYSTEM_ERROR "System error %d"
-#define MSG_S_ACCESS_DENIED "%s: access denied"
-#define MSG_S_ERROR "%s error"
-#define MSG_S_ERROR_NUM "%s: error=%d"
-#define MSG_S_INTRUPT_ERROR "%s: interrupt error"
-#define MSG_S_INVALID_PARM "%s: invalid parameter"
-#define MSG_S_INV_ADDRESS "%s: invalid address"
-#define MSG_S_UNKNOWN_ERROR "%s: unknown error code %u"
+#define MSG_STACK_OVERFLOW "Stack overflow"
#define MSG_TABDIR_READONLY "DIR tables are read/only"
-#define MSG_TABLE_ALREADY "Table %s already exists"
-#define MSG_TABLE_ALTERED "%s table %s altered"
-#define MSG_TABLE_CREATED "%s table %s created"
-#define MSG_TABLE_DROPPED "Table %s dropped"
-#define MSG_TABLE_MULT_JOIN "Table %s used more than once for join"
-#define MSG_TABLE_NOT_IN_DB "Table %s does not exist in %s"
#define MSG_TABLE_NOT_OPT "Not an optimizable table"
-#define MSG_TABLE_NO_INDEX "Table %s cannot be indexed"
-#define MSG_TABLE_NO_OPT "Table %s does not exist or type is not optimizable"
+#define MSG_TABLE_NO_INDEX "Table %s is not indexable"
#define MSG_TABLE_READ_ONLY "%s tables are read only "
#define MSG_TABMUL_READONLY "Multiple tables are read/only"
-#define MSG_TAB_NOT_LOADED " (some tables could not be loaded)"
-#define MSG_TAB_NOT_SPEC "No table specified"
-#define MSG_TB_VW_NOTIN_DB "Table or view %s not in DB"
-#define MSG_TDB_NXT_NOT_NUL "Tdb.Next not NULL"
-#define MSG_TDB_USE_ERROR "Error, Tdbp->Use=%d"
-#define MSG_TOO_MANY_COLS "Too many columns"
-#define MSG_TOO_MANY_COLTAB "Too many columns in %s (%d)"
#define MSG_TOO_MANY_FIELDS "Too many fields line %d of %s"
#define MSG_TOO_MANY_JUMPS "Too many jump levels"
#define MSG_TOO_MANY_KEYS "Too many keys (%d)"
-#define MSG_TOO_MANY_POS "Too many pos_codes"
-#define MSG_TOO_MANY_TABLES "Too many tables (%d)"
-#define MSG_TOPSEM_ERROR "Unknown error in TopSem"
#define MSG_TO_BLK_IS_NULL "To Blk is NULL"
-#define MSG_TO_FTR_NOT_NULL "Set.To_Ftr is not null"
-#define MSG_TO_PIX_NOT_NULL "Set.To_Pix is not null"
-#define MSG_TO_SEM_NOT_NULL "Set.To_Sem is not null"
#define MSG_TRUNCATE_ERROR "truncate error: %s"
#define MSG_TRUNC_BY_ESTIM "truncated by Estimate"
-#define MSG_TYPES_ERROR "Error on Types(%d)"
-#define MSG_TYPE_CONV_ERROR "Type cannot be converted in expression"
-#define MSG_TYPE_DEF_MISM "type and definition do not match"
#define MSG_TYPE_MISMATCH "Key and source are not of the same type"
-#define MSG_TYPE_RECFM_MISM "Type and Recfm mismatch"
-#define MSG_TYPE_TO_VERIFY "Type to verify: %d"
#define MSG_TYPE_VALUE_ERR "Column %s type(%s)/value(%s) mismatch"
#define MSG_UNBALANCE_QUOTE "Unbalanced quote in line %d"
#define MSG_UNDEFINED_AM "COLBLK %s: undefined Access Method"
-#define MSG_UNDEFINED_PATH "Undefined Plgcnx.ini path"
-#define MSG_UNDEF_COL_COUNT "Count on undefined column"
-#define MSG_UNKNOWN_DOMAIN "Unknown domain %s"
-#define MSG_UNKNOWN_ERROR "Unknown error"
#define MSG_UNKNOWN_EXCPT "Unknown exception"
-#define MSG_UNKNOWN_NAME "Unknown name: %.8s"
-#define MSG_UNKNOWN_PATH "Unknown Plgcnx.ini path"
-#define MSG_UNKNOWN_POS "Unknown pos name: %s"
-#define MSG_UNKNOWN_SEM "Unknown Sem %.8s, rc=%d"
-#define MSG_UNKNOWN_SYNONYM "Unknown synonym"
-#define MSG_UNKNW_QRY_TYPE "ReadDB: unknown query type"
-#define MSG_UNKN_ERR_CODE "Unknown error code %d"
-#define MSG_UNLOADABLE " unloadable: "
-#define MSG_UNLOADABLE_PRM "%s unloadable: %s"
#define MSG_UNMATCH_FIL_ARG "Unmatched filter argument"
-#define MSG_UNQ_COL_SEV_TAB "Unqualified column %s is in several tables"
-#define MSG_UNRESOLVED_ARG "?Unresolved argument %s at %d line %d"
#define MSG_UPDATE_ERROR "Error updating %s"
-#define MSG_UPDATING_ROWS "Updating rows"
#define MSG_UPD_ZIP_NOT_IMP "Updating ZDOS tables not implemented yet"
-#define MSG_UP_LANGUAGE "Block language %.8s version %d level %d loaded"
-#define MSG_USED_FREE_MEM "%d used in sarea, %d free"
-#define MSG_USETEMP_IS "UseTemp is %s"
-#define MSG_USETEMP_RESET ". Usetemp reset to Auto"
-#define MSG_USETEMP_SET "UseTemp set to %s"
-#define MSG_USE_NO_MATCH "Use do not match : Use=%d, ti2=%d, ti3=%d"
-#define MSG_USING_INDEX " (Using index"
-#define MSG_VALIST_MISMATCH "List of values mismatch"
#define MSG_VALSTR_TOO_LONG "Value %s too long for string of length %d"
#define MSG_VALTYPE_NOMATCH "Non matching Value types"
#define MSG_VALUE_ERROR "Column %s: value is null"
-#define MSG_VALUE_NOT_ALLOC "Value not allocated for column R%d %s"
-#define MSG_VALUE_TOO_BIG "Value %lld too big for column %s"
+#define MSG_VALUE_TOO_BIG "Value %d too big for column %s"
#define MSG_VALUE_TOO_LONG "Value %s too long for column %s of length %d"
#define MSG_VAL_ALLOC_ERR "Cannot allocate value node"
-#define MSG_VAL_TOO_LONG "Value field %s too long for %s"
-#define MSG_VIEW_ALREADY "View %s already exists"
-#define MSG_VIEW_CREATED "%s view %s created"
-#define MSG_VIEW_DROPPED "View %s dropped"
-#define MSG_VIEW_NOT_IN_DB "View %s does not exist in %s"
#define MSG_VIR_NO_DELETE "Delete not allowed for %s tables"
#define MSG_VIR_READ_ONLY "Virtual %s tables are read only"
-#define MSG_VM_LANG "Language has VM format, not supported"
#define MSG_VOID_FIRST_ARG "First argument should not be void"
-#define MSG_VOID_IN_STRING "Error: void IN string"
-#define MSG_VOID_ORDER_LIST "Null ordering list, system error ?"
-#define MSG_VOID_POS_DICT "Void Pos dictionary"
-#define MSG_VOID_QUERY "Void query %s"
#define MSG_WORK_AREA "Work area: %s"
-#define MSG_WORK_TOO_SMALL "Work area too small, increase AreaSize"
-#define MSG_WRITE_ERROR "Error writing to %s"
#define MSG_WRITE_SEEK_ERR "Write seek error: %s"
#define MSG_WRITE_STRERROR "Error writing %s: %s"
#define MSG_WRITING "Writing"
#define MSG_WRITING_ERROR "Error writing to %s: %s"
-#define MSG_WRITING_QUERY "Writing query: "
-#define MSG_WRONG_ARG_NUM "Function %s does not take %d arguments"
-#define MSG_WRONG_COL_NUM "Column number %d out of range in %s"
-#define MSG_WRONG_DB_LIST "Wrong or nul database list"
-#define MSG_WRONG_FUNCTION "Wrong function %d"
-#define MSG_WRONG_OP_PARM "Wrong operator or parameters for %s"
-#define MSG_WRONG_PARMS "Wrong parameters for %s"
-#define MSG_WRONG_PASSWORD "Illegal password for %s"
-#define MSG_WRONG_TYPE "unsupported type"
-#define MSG_WRONG_USERFILE "Wrong Userfile size=%d"
#define MSG_WS_CONV_ERR "Error converting %s to WS"
#define MSG_XCOL_MISMATCH "Column %s mismatch in index"
-#define MSG_XDB_DEL_ERROR "Error while deleting entries from XDB file"
#define MSG_XFILE_READERR "Error %d reading index file"
-#define MSG_XFILE_TOO_SMALL "Index file is smaller than index length"
#define MSG_XFILE_WRITERR "Error writing index file: %s"
#define MSG_XMLTAB_INIT_ERR "Error initializing XML table"
#define MSG_XML_INIT_ERROR "Error initializing new XML file"
#define MSG_XPATH_CNTX_ERR "Unable to create new XPath context"
#define MSG_XPATH_EVAL_ERR "Unable to evaluate xpath location '%s'"
#define MSG_XPATH_NOT_SUPP "Unsupported Xpath for column %s"
-#define MSG_X_ARG_ADDED "%d arguments have been added"
-#define MSG_X_ARG_SET "%d arguments have been set"
-#define MSG_X_ON_TAB " %s on %s("
-#define MSG_ZERO_DIVIDE "Zero divide in expression"
diff --git a/storage/connect/enids.h b/storage/connect/enids.h
new file mode 100644
index 00000000000..d171955b0bd
--- /dev/null
+++ b/storage/connect/enids.h
@@ -0,0 +1,46 @@
+ case IDS_TABLES: p = "Table Headers"; break;
+ case IDS_TAB_01: p = "Table_Cat"; break;
+ case IDS_TAB_02: p = "Table_Schema"; break;
+ case IDS_TAB_03: p = "Table_Name"; break;
+ case IDS_TAB_04: p = "Table_Type"; break;
+ case IDS_TAB_05: p = "Remark"; break;
+ case IDS_COLUMNS: p = "Column Headers"; break;
+ case IDS_COL_01: p = "Table_Cat"; break;
+ case IDS_COL_02: p = "Table_Schema"; break;
+ case IDS_COL_03: p = "Table_Name"; break;
+ case IDS_COL_04: p = "Column_Name"; break;
+ case IDS_COL_05: p = "Data_Type"; break;
+ case IDS_COL_06: p = "Type_Name"; break;
+ case IDS_COL_07: p = "Column_Size"; break;
+ case IDS_COL_08: p = "Buffer_Length"; break;
+ case IDS_COL_09: p = "Decimal_Digits"; break;
+ case IDS_COL_10: p = "Radix"; break;
+ case IDS_COL_11: p = "Nullable"; break;
+ case IDS_COL_12: p = "Remarks"; break;
+ case IDS_PKEY: p = "Key Headers"; break;
+ case IDS_PKY_01: p = "Table_Catalog"; break;
+ case IDS_PKY_02: p = "Table_Schema"; break;
+ case IDS_PKY_03: p = "Table_Name"; break;
+ case IDS_PKY_04: p = "Column_Name"; break;
+ case IDS_PKY_05: p = "Key_Seq"; break;
+ case IDS_PKY_06: p = "Pk_Name"; break;
+ case IDS_STAT: p = "Stat Headers"; break;
+ case IDS_STA_01: p = "Table_Catalog"; break;
+ case IDS_STA_02: p = "Table_Schema"; break;
+ case IDS_STA_03: p = "Table_Name"; break;
+ case IDS_STA_04: p = "Non_Unique"; break;
+ case IDS_STA_05: p = "Index_Qualifier"; break;
+ case IDS_STA_06: p = "Index_Name"; break;
+ case IDS_STA_07: p = "Type"; break;
+ case IDS_STA_08: p = "Seq_in_Index"; break;
+ case IDS_STA_09: p = "Column_Name"; break;
+ case IDS_STA_10: p = "Collation"; break;
+ case IDS_STA_11: p = "Cardinality"; break;
+ case IDS_STA_12: p = "Pages"; break;
+ case IDS_STA_13: p = "Filter_Condition"; break;
+ case IDS_DRIVER: p = "Driver Headers"; break;
+ case IDS_DRV_01: p = "Description"; break;
+ case IDS_DRV_02: p = "Attributes"; break;
+ case IDS_DSRC: p = "DataSrc Headers"; break;
+ case IDS_DSC_01: p = "Name"; break;
+ case IDS_DSC_02: p = "Description"; break;
diff --git a/storage/connect/filamdbf.cpp b/storage/connect/filamdbf.cpp
index 38b02a02ffc..98b8bb6fd95 100644
--- a/storage/connect/filamdbf.cpp
+++ b/storage/connect/filamdbf.cpp
@@ -284,7 +284,8 @@ PQRYRES DBFColumns(PGLOBAL g, char *dp, const char *fn, bool info)
break;
default:
if (!info) {
- sprintf(g->Message, MSG(BAD_DBF_TYPE), thisfield.Type);
+ sprintf(g->Message, MSG(BAD_DBF_TYPE), thisfield.Type
+ , thisfield.Name);
goto err;
} // endif info
@@ -585,7 +586,7 @@ bool DBFFAM::AllocateBuffer(PGLOBAL g)
case 'D': // Date
break;
default: // Should never happen
- sprintf(g->Message, "Unsupported DBF type %c for column %s",
+ sprintf(g->Message, MSG(BAD_DBF_TYPE),
c, cdp->GetName());
return true;
} // endswitch c
diff --git a/storage/connect/frcas.h b/storage/connect/frcas.h
new file mode 100644
index 00000000000..47af24e6377
--- /dev/null
+++ b/storage/connect/frcas.h
@@ -0,0 +1,320 @@
+ case MSG_ACCESS_VIOLATN: p = "Violation accès mémoire"; break;
+ case MSG_ADD_BAD_TYPE: p = "Ajout d'une valeur de type %s non conforme dans un tableau %s"; break;
+ case MSG_ALLOC_ERROR: p = "Erreur d'allocation de %s"; break;
+ case MSG_ANSWER_TYPE: p = "Réponse de type"; break;
+ case MSG_API_CONF_ERROR: p = "Erreur SQL: API_CONFORMANCE"; break;
+ case MSG_APPL_NOT_INIT: p = "Application non initialisée"; break;
+ case MSG_ARRAY_BNDS_EXCD: p = "Hors limite de tableau"; break;
+ case MSG_BAD_ARRAY_OPER: p = "Les tableaux doivent utiliser l'opérateur IN"; break;
+ case MSG_BAD_ARRAY_TYPE: p = "Type=%d invalide pour un tableau"; break;
+ case MSG_BAD_ARRAY_VAL: p = "Les tableaux doivent avoir le même nombre de valeurs"; break;
+ case MSG_BAD_BIN_FMT: p = "Format invalide %c pour la colonne BIN %s"; break;
+ case MSG_BAD_BLK_ESTIM: p = "Nombre de blocs supérieur à l'estimation"; break;
+ case MSG_BAD_BLK_SIZE: p = "Taille du bloc %d non conforme"; break;
+ case MSG_BAD_BYTE_NUM: p = "Le nombre d'octets écrits est faux"; break;
+ case MSG_BAD_BYTE_READ: p = "Le nombre d'octets lus est faux"; break;
+ case MSG_BAD_COL_TYPE: p = "Type invalide %s pour la colonne %s"; break;
+ case MSG_BAD_COL_XPATH: p = "Xpath invalide colonne %s de la table HTML %s"; break;
+ case MSG_BAD_CONST_TYPE: p = "Type=%d invalide pour une constante"; break;
+ case MSG_BAD_CONV_TYPE: p = "Convertion de type invalide %d"; break;
+ case MSG_BAD_DATETIME: p = "Valeur date/temps invalide"; break;
+ case MSG_BAD_DBF_FILE: p = "Le fichier DBF %s est altéré"; break;
+ case MSG_BAD_DBF_REC: p = "Fichier DBF %s altéré enregistrement %d"; break;
+ case MSG_BAD_DBF_TYPE: p = "Type DBF %c non supporté colonne %s"; break;
+ case MSG_BAD_DIRECTORY: p = "Répertoire invalide %s: %s"; break;
+ case MSG_BAD_FIELD_RANK: p = "Rang %d invalide pour la colonne %s"; break;
+ case MSG_BAD_FIELD_TYPE: p = "Mauvais type de champ %s"; break;
+ case MSG_BAD_FILE_HANDLE: p = "Handle de fichier invalide: %s"; break;
+ case MSG_BAD_FILTER: p = "Mauvais filtre: Opc=%d B_T=%d %d Type=%d %d"; break;
+ case MSG_BAD_FILTER_CONV: p = "Conversion filtre incorrecte, B_T=%d,%d"; break;
+ case MSG_BAD_FILTER_OP: p = "Opérateur de filtre invalide %d"; break;
+ case MSG_BAD_FLD_FORMAT: p = "Format invalide pour le champs %d de %s"; break;
+ case MSG_BAD_FLD_LENGTH: p = "Champs %s trop long (%s --> %d) ligne %d de %s"; break;
+ case MSG_BAD_FREQ_SET: p = "Spécification erronnée de Freq pour la colonne %s"; break;
+ case MSG_BAD_FUNC_MODE: p = "%s: mode invalide %d"; break;
+ case MSG_BAD_HANDLE_VAL: p = "Valeur Handle invalide"; break;
+ case MSG_BAD_HEADER: p = "Fichier %s: bloc en-tête altéré"; break;
+ case MSG_BAD_HEAD_END: p = "Lecture fin d'en-tête impossible"; break;
+ case MSG_BAD_INDEX_FILE: p = "Fichier index %s corrompu"; break;
+ case MSG_BAD_LINEFLD_FMT: p = "Format invalide ligne %d champs %d de %s"; break;
+ case MSG_BAD_LINE_LEN: p = "Longueur ligne non égale à Lrecl"; break;
+ case MSG_BAD_LRECL: p = "Disparité lrecl table/fichier (%d,%hd)"; break;
+ case MSG_BAD_NODE_TYPE: p = "Type noeud erroné pour la table"; break;
+ case MSG_BAD_OFFSET_VAL: p = "Nul offset invalide pour une table CSV"; break;
+ case MSG_BAD_OPEN_MODE: p = "Mode d'ouverture invalide %d"; break;
+ case MSG_BAD_PARAM_TYPE: p = "%.8s: Paramètre de type=%d invalide"; break;
+ case MSG_BAD_PARM_COUNT: p = "Nombre de paramètres incohérent"; break;
+ case MSG_BAD_QUOTE_FIELD: p = "Quote manquante dans %s champs %d ligne %d"; break;
+ case MSG_BAD_READ_NUMBER: p = "Mauvais nombre %d de valeurs lues dans %s"; break;
+ case MSG_BAD_RECFM: p = "Recfm type %d invalide pour DOSCOL"; break;
+ case MSG_BAD_RECFM_VAL: p = "Valeur invalide %d de Recfm"; break;
+ case MSG_BAD_SET_CASE: p = "La casse d'un tableau ne peut pas passer de non respect à respecter"; break;
+ case MSG_BAD_SET_STRING: p = "SetValue: appel invalide pour STRING"; break;
+ case MSG_BAD_SPECIAL_COL: p = "Colonne spéciale invalide %s"; break;
+ case MSG_BAD_SPEC_COLUMN: p = "Colonne spéciale invalide pour ce type de table"; break;
+ case MSG_BAD_TABLE_TYPE: p = "Type invalide %s pour la table %s"; break;
+ case MSG_BAD_TYPE_LIKE: p = "Type(%d)= %d invalide pour LIKE"; break;
+ case MSG_BAD_VALBLK_INDX: p = "Valeur hors limites de l'index du bloc de valeurs"; break;
+ case MSG_BAD_VALBLK_TYPE: p = "Type=%d invalide pour un bloc de valeurs"; break;
+ case MSG_BAD_VALNODE: p = "Type %d invalide pour le noeud valeur colonne %s"; break;
+ case MSG_BAD_VALUE_TYPE: p = "Type de valeur invalide %d"; break;
+ case MSG_BAD_VAL_UPDATE: p = "Impossible de déterminer quelle valeur %s doit être mise à jour"; break;
+ case MSG_BAS_NS_LIST: p = "Format invalide de la liste des espace-noms"; break;
+ case MSG_BIN_F_TOO_LONG: p = "Valeur trop longue pour le champ %s (%d --> %d)"; break;
+ case MSG_BIN_MODE_FAIL: p = "Echec mode binaire: %s"; break;
+ case MSG_BLKTYPLEN_MISM: p = "Disparité types/longueurs de bloc dans SetValue"; break;
+ case MSG_BLK_IS_NULL: p = "Blk est nul"; break;
+ case MSG_BREAKPOINT: p = "Point de contrôle"; break;
+ case MSG_BUILD_INDEX: p = "Construction index %s sur %s"; break;
+ case MSG_CANNOT_OPEN: p = "Ouverture impossible de %s"; break;
+ case MSG_CHSIZE_ERROR: p = "Erreur dans chsize: %s"; break;
+ case MSG_COL_ALLOC_ERR: p = "Allocation impossible du noeud colonne"; break;
+ case MSG_COL_ISNOT_TABLE: p = "La colonne %s n'est pas dans la table %s"; break;
+ case MSG_COL_NOT_SORTED: p = "La colonne %s de la table %s n'est pas triée"; break;
+ case MSG_COL_NUM_MISM: p = "Disparité du nombre de colonnes"; break;
+ case MSG_COM_ERROR: p = "Erreur Com"; break;
+ case MSG_CONCAT_SUBNODE: p = "Concaténation de sous-noeuds impossible"; break;
+ case MSG_CONNECT_CANCEL: p = "Connection interrompue par l'utilisateur"; break;
+ case MSG_CONTROL_C_EXIT: p = "Exit par Ctrl-C"; break;
+ case MSG_DATABASE_LOADED: p = "Base de données %s chargée"; break;
+ case MSG_DATA_MISALIGN: p = "Mauvais alignement pour ce type de données"; break;
+ case MSG_DBASE_FILE: p = "Fichier dBASE dbf: "; break;
+ case MSG_DEF_ALLOC_ERROR: p = "Erreur d'allocation de la classe DEF %s"; break;
+ case MSG_DEL_FILE_ERR: p = "Erreur à l'effacement de %s"; break;
+ case MSG_DEL_READ_ERROR: p = "Delete: erreur en lecture req=%d len=%d"; break;
+ case MSG_DEL_WRITE_ERROR: p = "Delete: erreur en écriture: %s"; break;
+ case MSG_DEPREC_FLAG: p = "Option Flag périmée, utiliser Coltype"; break;
+ case MSG_DLL_LOAD_ERROR: p = "Erreur %d au chargement du module %s"; break;
+ case MSG_DOM_NOT_SUPP: p = "MS-DOM non supporté par cette version"; break;
+ case MSG_DVAL_NOTIN_LIST: p = "Valeur %s non trouvée dans la liste des valeurs distinctes de la colonne %s"; break;
+ case MSG_EMPTY_DOC: p = "Document vide"; break;
+ case MSG_EMPTY_FILE: p = "%s du fichier vide %s: "; break;
+ case MSG_EOF_AFTER_LINE: p = "Fin de fichier après la ligne %d"; break;
+ case MSG_EOF_INDEX_FILE: p = "EOF lisant le fichier index"; break;
+ case MSG_ERROR_IN_LSK: p = "Erreur %d dans lseek64"; break;
+ case MSG_ERROR_IN_SFP: p = "Erreur %d dans SetFilePointer"; break;
+ case MSG_ERR_READING_REC: p = "Erreur lisant l'enregistrement %d de %s"; break;
+ case MSG_FAIL_ADD_NODE: p = "L'ajout du noeud %s dans la table a échoué"; break;
+ case MSG_FETCH_NO_RES: p = "Fetch: Pas de Résultats"; break;
+ case MSG_FIELD_TOO_LONG: p = "Valeur trop longue pour le champs %d ligne %d"; break;
+ case MSG_FILELEN_ERROR: p = "Erreur dans %s pour %s"; break;
+ case MSG_FILE_IS_EMPTY: p = "Le fichier %s est vide"; break;
+ case MSG_FILE_MAP_ERR: p = "Erreur de File mapping"; break;
+ case MSG_FILE_MAP_ERROR: p = "CreateFileMapping %s erreur rc=%d"; break;
+ case MSG_FILE_OPEN_YET: p = "Fichier %s déjà ouvert"; break;
+ case MSG_FILE_UNFOUND: p = "Fichier %s non trouvé"; break;
+ case MSG_FLD_TOO_LNG_FOR: p = "Champs %d trop long pour %s ligne %d de %s"; break;
+ case MSG_FLT_BAD_RESULT: p = "Virgule flottante: résultat inexacte"; break;
+ case MSG_FLT_DENORMAL_OP: p = "Opérande virgule flottante non normalisé"; break;
+ case MSG_FLT_INVALID_OP: p = "Opération virgule flottante invalide"; break;
+ case MSG_FLT_OVERFLOW: p = "Dépassement de capacité virgule flottante"; break;
+ case MSG_FLT_STACK_CHECK: p = "Virgule flottante: Erreur de la pile"; break;
+ case MSG_FLT_UNDERFLOW: p = "Sous-dépassement de capacité virgule flottante"; break;
+ case MSG_FLT_ZERO_DIVIDE: p = "Virgule flottante: division par zéro"; break;
+ case MSG_FMT_WRITE_NIY: p = "L'écriture des fichiers %s n'est pas encore implémentée"; break;
+ case MSG_FOXPRO_FILE: p = "Fichier FoxPro: "; break;
+ case MSG_FPUTS_ERROR: p = "Erreur dans fputs: %s"; break;
+ case MSG_FSEEK_ERROR: p = "Erreur dans fseek: %s"; break;
+ case MSG_FSETPOS_ERROR: p = "Erreur dans fseek pour i=%d"; break;
+ case MSG_FTELL_ERROR: p = "Erreur dans ftell enregistrement=%d: %s"; break;
+ case MSG_FUNCTION_ERROR: p = "Erreur dans %s: %d"; break;
+ case MSG_FUNC_ERRNO: p = "Erreur %d dans %s"; break;
+ case MSG_FUNC_ERROR: p = "Erreur dans %s"; break;
+ case MSG_FUNC_ERR_S: p = "Erreur dans %s: %s"; break;
+ case MSG_FWRITE_ERROR: p = "Erreur dans fwrite: %s"; break;
+ case MSG_GET_DIST_VALS: p = "Récupération des valeurs distinctes de "; break;
+ case MSG_GET_FUNC_ERR: p = "Erreur en recherche de la fonction %s: %s"; break;
+ case MSG_GLOBAL_ERROR: p = "Erreur d'allocation de Global (taille=%d)\n"; break;
+ case MSG_GUARD_PAGE: p = "Violation de page de garde"; break;
+ case MSG_GZOPEN_ERROR: p = "gzopen %s: erreur %d sur %s"; break;
+ case MSG_ILLEGAL_INSTR: p = "Instruction illégale"; break;
+ case MSG_ILL_FILTER_CONV: p = "Conversion implicite illégale dans un filtre"; break;
+ case MSG_INDEX_NOT_UNIQ: p = "L'index n'est pas Unique"; break;
+ case MSG_INDEX_YET_ON: p = "L'index %s existe déjà sur %s"; break;
+ case MSG_INDX_COL_NOTIN: p = "La colonne index %s n'existe pas dans la table %s"; break;
+ case MSG_INDX_EXIST_YET: p = "L'entrée index existe déjà"; break;
+ case MSG_INIT_FAILED: p = "L'initialisation de %s a échoué"; break;
+ case MSG_INT_COL_ERROR: p = "Erreur interne sur la colonne index %s"; break;
+ case MSG_INT_OVERFLOW: p = "Dépassement de capacité sur entier"; break;
+ case MSG_INT_ZERO_DIVIDE: p = "Division entière par zéro"; break;
+ case MSG_INVALID_DISP: p = "Disposition invalide"; break;
+ case MSG_INVALID_FTYPE: p = "SBV: Ftype %d invalide"; break;
+ case MSG_INVALID_HANDLE: p = "Poignée invalide"; break;
+ case MSG_INVALID_OPER: p = "Opérateur invalide %d pour %s"; break;
+ case MSG_INV_COLUMN_TYPE: p = "Type %d Invalide pour la colonne %s"; break;
+ case MSG_INV_COL_TYPE: p = "Type de colonne %s invalide"; break;
+ case MSG_INV_DEF_READ: p = "Lecture différée invalide rc=%d"; break;
+ case MSG_INV_DIRCOL_OFST: p = "Offset invalide pour une colonne DIR"; break;
+ case MSG_INV_MAP_POS: p = "Position mémoire invalide"; break;
+ case MSG_INV_RAND_ACC: p = "L'accès aléatoire d'une table non optimisée est impossible"; break;
+ case MSG_INV_REC_POS: p = "Position d'enregistrement invalide"; break;
+ case MSG_INV_RESULT_TYPE: p = "Type de résultat invalide %s"; break;
+ case MSG_INV_UPDT_TABLE: p = "Table %s invalide pour Update"; break;
+ case MSG_IN_WITHOUT_SUB: p = "IN ou EXISTS sans tableau ou subquery"; break;
+ case MSG_KEY_ALLOC_ERR: p = "Erreur d'allocation d'un bloc offset clé"; break;
+ case MSG_KEY_ALLOC_ERROR: p = "Erreur d'allocation mémoire, Klen=%d n=%d"; break;
+ case MSG_LINE_TOO_LONG: p = "La nouvelle ligne est trop longue"; break;
+ case MSG_LIST: p = "--Liste--"; break;
+ case MSG_LOADING_FAILED: p = "Le chargement de %s a échoué"; break;
+ case MSG_LRECL_TOO_SMALL: p = "Lrecl trop petit (longueur en-tête = %d)"; break;
+ case MSG_MAKE_EMPTY_FILE: p = "Génération du fichier vide %s: %s"; break;
+ case MSG_MAKING: p = "Génération"; break;
+ case MSG_MALLOC_ERROR: p = "Allocation mémoire impossible par %s"; break;
+ case MSG_MAP_VIEW_ERROR: p = "MapViewOfFile %s erreur rc=%d"; break;
+ case MSG_MAXSIZE_ERROR: p = "Maxsize incalculable sur table ouverte"; break;
+ case MSG_MEM_ALLOC_ERR: p = "Erreur d'allocation mémoire, taille %s = %d"; break;
+ case MSG_MEM_ALLOC_ERROR: p = "Erreur d'allocation mémoire"; break;
+ case MSG_MISPLACED_QUOTE: p = "Appostrophe mal placée ligne %d"; break;
+ case MSG_MISSING_ARG: p = "Argument manquant pour l'opérateur %d"; break;
+ case MSG_MISSING_FIELD: p = "Champs %d manquant dans %s ligne %d"; break;
+ case MSG_MISSING_FNAME: p = "Nom du fichier manquant"; break;
+ case MSG_MISSING_NODE: p = "Noeud %s manquant dans %s"; break;
+ case MSG_MISSING_ROWNODE: p = "Impossible de trouver le noeud de la ligne %d"; break;
+ case MSG_MIS_TAG_LIST: p = "Liste des balises colonne manquante"; break;
+ case MSG_MUL_MAKECOL_ERR: p = "Erreur logique dans TABMUL::MakeCol"; break;
+ case MSG_NAME_CONV_ERR: p = "Erreur de convertion du nom de noeud"; break;
+ case MSG_NEW_DOC_FAILED: p = "Impossible de créer le nouveau document"; break;
+ case MSG_NEW_RETURN_NULL: p = "NULL renvoyé par New dans PlugEvalLike"; break;
+ case MSG_NEXT_FILE_ERROR: p = "Erreur en recherche du fichier suivant. rc=%s"; break;
+ case MSG_NONCONT_EXCEPT: p = "Exception non-continuable"; break;
+ case MSG_NOP_ZLIB_INDEX: p = "L'indexage d'une table zlib non optimisée est impossible"; break;
+ case MSG_NOT_A_DBF_FILE: p = "Le fichier n'a pas le format dBASE dbf "; break;
+ case MSG_NOT_FIXED_LEN: p = "Fichier %s non fixe, len=%d lrecl=%d"; break;
+ case MSG_NO_0DH_HEAD: p = "0DH manquant en fin d'en-tête (dbc=%d)"; break;
+ case MSG_NO_ACTIVE_DB: p = "Pas de base de données active"; break;
+ case MSG_NO_CHAR_FROM: p = "Conversion de type %d en caractères impossible"; break;
+ case MSG_NO_DATE_FMT: p = "Pas de format date pour le valblock de type %d"; break;
+ case MSG_NO_DEF_FNCCOL: p = "Colonne fonction par défaut introuvable"; break;
+ case MSG_NO_DEF_PIVOTCOL: p = "Colonne pivot par défaut introuvable"; break;
+ case MSG_NO_DIR_INDX_RD: p = "Pas d'accès directe des tables %s"; break;
+ case MSG_NO_FEAT_SUPPORT: p = "%s non supporté dans cette version"; break;
+ case MSG_NO_FLD_FORMAT: p = "Format absent pour le champs %d de %s"; break;
+ case MSG_NO_FORMAT_COL: p = "Type COLUMN informattable"; break;
+ case MSG_NO_FORMAT_TYPE: p = "Le format ne peut pas être défini à partir du type %d"; break;
+ case MSG_NO_INDEX_READ: p = "Pas d'accès directe des tables multiples"; break;
+ case MSG_NO_KEY_COL: p = "Pas de colonne clé trouvée"; break;
+ case MSG_NO_KEY_UPDATE: p = "Le nom des clés ne peut pas être modifié"; break;
+ case MSG_NO_MAP_INSERT: p = "MAP incompatible avec Insert"; break;
+ case MSG_NO_MATCHING_COL: p = "Pas de colonne correspondant à %s dans %s"; break;
+ case MSG_NO_MATCH_COL: p = "Colonne correspondante introuvable"; break;
+ case MSG_NO_MEMORY: p = "Mémoire pleine"; break;
+ case MSG_NO_MODE_PADDED: p = "Mode non supporté pour les fichiers 'padded'"; break;
+ case MSG_NO_MUL_VCT: p = "Les tables VCT ne peuvent pas être multiples"; break;
+ case MSG_NO_ODBC_DELETE: p = "Delete ne devrait pas être appelé pour les tables ODBC"; break;
+ case MSG_NO_ODBC_DIRECT: p = "Accès directe des tables ODBC non encore implémenté"; break;
+ case MSG_NO_ODBC_MUL: p = "Multiple(2) non supporté pour les tables ODBC"; break;
+ case MSG_NO_ODBC_SPECOL: p = "Pas de colonne spéciale ODBC"; break;
+ case MSG_NO_PART_DEL: p = "Delete partiel des fichier %s impossible"; break;
+ case MSG_NO_PART_MAP: p = "Mapping partiel non implémenté pour cet OS"; break;
+ case MSG_NO_PAR_BLK_INS: p = "Insertion de bloc partiel impossible"; break;
+ case MSG_NO_PIV_DIR_ACC: p = "Pas d'accès directe aux tables PIVOT"; break;
+ case MSG_NO_READ_32: p = "Lecture de 32 octets impossible"; break;
+ case MSG_NO_RECOV_SPACE: p = "Espace non recouvrable dans le fichier index"; break;
+ case MSG_NO_ROWID_FOR_AM: p = "Accès direct impossible de ROWID pour les tables de type %s"; break;
+ case MSG_NO_ROW_NODE: p = "Le nom du Rownode n'est pas défini"; break;
+ case MSG_NO_SECTION_NAME: p = "Nom de section manquant"; break;
+ case MSG_NO_SEC_UPDATE: p = "Les noms de section ne peuvent pas être modifiés"; break;
+ case MSG_NO_SETPOS_YET: p = "SetPos pas encore implémenté pour les fichier %s"; break;
+ case MSG_NO_SPEC_COL: p = "Pas de colonne spéciales MYSQL"; break;
+ case MSG_NO_SUB_VAL: p = "Pas de sous-value d'un tableau de type %d"; break;
+ case MSG_NO_TABCOL_DATA: p = "Pas de données pour la table %s colonne %s"; break;
+ case MSG_NO_TABLE_DEL: p = "Delete non autorisé pour les tables %s "; break;
+ case MSG_NO_TAB_DATA: p = "Pas de données pour la table %s"; break;
+ case MSG_NO_VCT_DELETE: p = "Délétion Partielle non implémentée pour les fichiers VCT"; break;
+ case MSG_NO_ZIP_DELETE: p = "Delete sur fichier Zip non encore implementé"; break;
+ case MSG_OPENING: p = "Ouverture"; break;
+ case MSG_OPEN_EMPTY_FILE: p = "Ouverture du fichier vide %s: %s"; break;
+ case MSG_OPEN_ERROR: p = "Erreur d'ouverture %d en mode %d sur %s: "; break;
+ case MSG_OPEN_ERROR_IS: p = "Erreur à l'ouverture de %s: %s"; break;
+ case MSG_OPEN_MODE_ERROR: p = "Erreur d'ouverture(%s) %d sur %s"; break;
+ case MSG_OPEN_STRERROR: p = "Erreur à l'ouverture: %s"; break;
+ case MSG_OPTBLK_RD_ERR: p = "Erreur à la lecture d'un bloc optimisation: %s"; break;
+ case MSG_OPTBLK_WR_ERR: p = "Erreur à l'écriture d'un bloc optimisation: %s"; break;
+ case MSG_OPTIMIZING: p = "Optimisation de "; break;
+ case MSG_OPT_BMAP_RD_ERR: p = "Erreur en lecture des bitmaps d'optimisation: %s"; break;
+ case MSG_OPT_BMAP_WR_ERR: p = "Erreur en écriture des bitmaps d'optimisation: %s"; break;
+ case MSG_OPT_CANCELLED: p = "Optimisation interrompue par l'utilisateur"; break;
+ case MSG_OPT_DVAL_RD_ERR: p = "Erreur en lecture des valeurs distinctes: %s"; break;
+ case MSG_OPT_DVAL_WR_ERR: p = "Erreur en écriture des valeurs distinctes: %s"; break;
+ case MSG_OPT_HEAD_RD_ERR: p = "Erreur en lecture de l'entête du fichier opt: %s"; break;
+ case MSG_OPT_HEAD_WR_ERR: p = "Erreur en écriture de l'entête du fichier opt: %s"; break;
+ case MSG_OPT_LOGIC_ERR: p = "Erreur logique dans SetBitmap, i=%d"; break;
+ case MSG_OPT_MAX_RD_ERR: p = "Erreur en lecture des valeurs maxi: %s"; break;
+ case MSG_OPT_MAX_WR_ERR: p = "Erreur en écriture des valeurs maxi: %s"; break;
+ case MSG_OPT_MIN_RD_ERR: p = "Erreur en lecture des valeurs mini: %s"; break;
+ case MSG_OPT_MIN_WR_ERR: p = "Erreur en écriture des valeurs mini: %s"; break;
+ case MSG_OPT_NOT_MATCH: p = "Le fichier opt %s n'est pas à jour"; break;
+ case MSG_PAGE_ERROR: p = "Erreur de pagination"; break;
+ case MSG_PARM_CNT_MISS: p = "Disparité du nombre de Paramètres"; break;
+ case MSG_PREC_VBLP_NULL: p = "ARRAY SetPrecision: Vblp est NULL"; break;
+ case MSG_PRIV_INSTR: p = "Instruction privilégiée"; break;
+ case MSG_PROCADD_ERROR: p = "Erreur %d sur l'adresse de %s"; break;
+ case MSG_QUERY_CANCELLED: p = "Requête interrompue par l'utilisateur"; break;
+ case MSG_RANGE_NO_JOIN: p = "Range non compatible avec les index de jointure"; break;
+ case MSG_RC_READING: p = "rc=%d en lecture de la table %s"; break;
+ case MSG_READY: p = "Prêt"; break;
+ case MSG_READ_ERROR: p = "Erreur en lecture sur %s: %s"; break;
+ case MSG_READ_ONLY: p = "Cette table protégée en lecture seule ne peut être modifiée"; break;
+ case MSG_READ_SEEK_ERROR: p = "Erreur de recherche en lecture: %s"; break;
+ case MSG_REGISTER_ERR: p = "Enregistrement NS impossible, préfix='%s' et href='%s'"; break;
+ case MSG_REMOVE_ERROR: p = "Erreur en supprimant %s: %s"; break;
+ case MSG_RENAME_ERROR: p = "Erreur renommant %s en %s: %s"; break;
+ case MSG_ROWID_NOT_IMPL: p = "RowNumber non implémenté pour les tables de type %s"; break;
+ case MSG_SEC_KEY_FIRST: p = "Les sections et clés doivent être insérées en premier"; break;
+ case MSG_SEC_NAME_FIRST: p = "Le nom de section doit être en tête de liste en insertion"; break;
+ case MSG_SEP_IN_FIELD: p = "Le champ %d contient le caractère séparateur"; break;
+ case MSG_SEQUENCE_ERROR: p = "HSTMT: Allocation hors séquence"; break;
+ case MSG_SETEOF_ERROR: p = "Erreur %d dans SetEndOfFile"; break;
+ case MSG_SETRECPOS_NIY: p = "SetRecpos non implémenté pour ce type de table"; break;
+ case MSG_SET_STR_TRUNC: p = "SetValue: Chaîne de caractères tronquée"; break;
+ case MSG_SFP_ERROR: p = "Erreur sur SetFilePointer: %s"; break;
+ case MSG_SHARED_LIB_ERR: p = "Erreur au chargement de la librairie partagée %s: %s"; break;
+ case MSG_SINGLE_STEP: p = "Pas à pas"; break;
+ case MSG_SORTING_VAL: p = "Tri de %d valeurs"; break;
+ case MSG_SPCOL_READONLY: p = "La colonne spéciale %s est en lecture seulement"; break;
+ case MSG_SQL_CONF_ERROR: p = "Erreur SQL: SQL_CONFORMANCE"; break;
+ case MSG_SRCH_CLOSE_ERR: p = "Erreur à la fermeture de l'Handle de recherche"; break;
+ case MSG_SRC_TABLE_UNDEF: p = "La table source n'est pas définie"; break;
+ case MSG_STACK_OVERFLOW: p = "Dépassement de capacité de la pile"; break;
+ case MSG_TABDIR_READONLY: p = "Les tables DIR sont en lecture seulement"; break;
+ case MSG_TABLE_NOT_OPT: p = "Table non optimisable"; break;
+ case MSG_TABLE_NO_INDEX: p = "La table %s n'est pas indexable"; break;
+ case MSG_TABLE_READ_ONLY: p = "Les tables %s sont en lecture seulement "; break;
+ case MSG_TABMUL_READONLY: p = "Les tables multiples sont en lecture seulement"; break;
+ case MSG_TOO_MANY_FIELDS: p = "Trop de champs ligne %d de %s"; break;
+ case MSG_TOO_MANY_JUMPS: p = "Trop de niveaux de saut"; break;
+ case MSG_TOO_MANY_KEYS: p = "Trop de clés (%d)"; break;
+ case MSG_TO_BLK_IS_NULL: p = "To Blk est nul"; break;
+ case MSG_TRUNCATE_ERROR: p = "Erreur en troncation: %s"; break;
+ case MSG_TRUNC_BY_ESTIM: p = "Tronqué par l'option Estimate"; break;
+ case MSG_TYPE_MISMATCH: p = "Clé et source ne sont pas du même type"; break;
+ case MSG_TYPE_VALUE_ERR: p = "Colonne %s: disparité type(%s)/valeur(%s)"; break;
+ case MSG_UNBALANCE_QUOTE: p = "Appostrophe en trop ligne %d"; break;
+ case MSG_UNDEFINED_AM: p = "COLBLK %s: méthode d'accès indéfinie"; break;
+ case MSG_UNKNOWN_EXCPT: p = "Exception non répertoriée"; break;
+ case MSG_UNMATCH_FIL_ARG: p = "Argument de filtre dépareillé"; break;
+ case MSG_UPDATE_ERROR: p = "Erreur en Update sur %s"; break;
+ case MSG_UPD_ZIP_NOT_IMP: p = "Mise à jour des tables ZDOS non encore implementé"; break;
+ case MSG_VALSTR_TOO_LONG: p = "Valeur %s trop longue pour une chaîne de longueur %d"; break;
+ case MSG_VALTYPE_NOMATCH: p = "Disparité types de valeur"; break;
+ case MSG_VALUE_ERROR: p = "Colonne %s: bloc valeur nul"; break;
+ case MSG_VALUE_TOO_BIG: p = "Valeur %d trop grande pour la colonne %s"; break;
+ case MSG_VALUE_TOO_LONG: p = "Valeur %s trop longue pour la colonne %s de longueur %d"; break;
+ case MSG_VAL_ALLOC_ERR: p = "Allocation impossible du noeud valeur"; break;
+ case MSG_VIR_NO_DELETE: p = "Delete impossible sur les tables %s"; break;
+ case MSG_VIR_READ_ONLY: p = "Les tables virtuelles %s sont en lecture seulement"; break;
+ case MSG_VOID_FIRST_ARG: p = "Le premier argument ne doit pas être vide"; break;
+ case MSG_WORK_AREA: p = "Espace de travail: %s"; break;
+ case MSG_WRITE_SEEK_ERR: p = "Erreur de recherche en écriture: %s"; break;
+ case MSG_WRITE_STRERROR: p = "Erreur en écriture sur %s: %s"; break;
+ case MSG_WRITING: p = "Ecriture"; break;
+ case MSG_WRITING_ERROR: p = "Erreur à l'écriture de %s: %s"; break;
+ case MSG_WS_CONV_ERR: p = "Erreur de convertion de %s en WS"; break;
+ case MSG_XCOL_MISMATCH: p = "La colonne %s ne correspond pas à l'index"; break;
+ case MSG_XFILE_READERR: p = "Erreur %d en lisant le fichier index"; break;
+ case MSG_XFILE_WRITERR: p = "Erreur en écrivant le fichier index: %s"; break;
+ case MSG_XMLTAB_INIT_ERR: p = "Erreur d'initialisation de la table XML"; break;
+ case MSG_XML_INIT_ERROR: p = "Erreur d'initialisation du nouveau fichier XML"; break;
+ case MSG_XPATH_CNTX_ERR: p = "Le nouveau contexte XPath ne peut être créé"; break;
+ case MSG_XPATH_EVAL_ERR: p = "Impossible d'évaluer l'emplacement xpath '%s'"; break;
+ case MSG_XPATH_NOT_SUPP: p = "Xpath non supporté colonne %s"; break;
diff --git a/storage/connect/french.msg b/storage/connect/french.msg
new file mode 100644
index 00000000000..9c3e4e0059d
--- /dev/null
+++ b/storage/connect/french.msg
@@ -0,0 +1,366 @@
+ 100 IDS_TABLES "Table Entêtes"
+ 101 IDS_TAB_01 "Catalogue"
+ 102 IDS_TAB_02 "Schéma"
+ 103 IDS_TAB_03 "Nom"
+ 104 IDS_TAB_04 "Type"
+ 105 IDS_TAB_05 "Remarque"
+ 106 IDS_COLUMNS "Colonne Entêtes"
+ 107 IDS_COL_01 "Cat_Table"
+ 108 IDS_COL_02 "Schem_Table"
+ 109 IDS_COL_03 "Nom_Table"
+ 110 IDS_COL_04 "Nom_Colonne"
+ 111 IDS_COL_05 "Type_Données"
+ 112 IDS_COL_06 "Nom_Type"
+ 113 IDS_COL_07 "Précision"
+ 114 IDS_COL_08 "Longueur"
+ 115 IDS_COL_09 "Echelle"
+ 116 IDS_COL_10 "Base"
+ 117 IDS_COL_11 "Nullifiable"
+ 118 IDS_COL_12 "Remarques"
+ 119 IDS_PKEY "Clé Entêtes"
+ 120 IDS_PKY_01 "Cat_Table"
+ 121 IDS_PKY_02 "Schem_Table"
+ 122 IDS_PKY_03 "Nom_Table"
+ 123 IDS_PKY_04 "Nom_Colonne"
+ 124 IDS_PKY_05 "Numéro_Clé"
+ 125 IDS_PKY_06 "Nom_Clé"
+ 126 IDS_STAT "Stat Entêtes"
+ 127 IDS_STA_01 "Table_Catalog"
+ 128 IDS_STA_02 "Table_Schema"
+ 129 IDS_STA_03 "Table_Name"
+ 130 IDS_STA_04 "Non_Unique"
+ 131 IDS_STA_05 "Index_Qualifier"
+ 132 IDS_STA_06 "Index_Name"
+ 133 IDS_STA_07 "Type"
+ 134 IDS_STA_08 "Seq_in_Index"
+ 135 IDS_STA_09 "Column_Name"
+ 136 IDS_STA_10 "Collation"
+ 137 IDS_STA_11 "Cardinality"
+ 138 IDS_STA_12 "Pages"
+ 139 IDS_STA_13 "Filter_Condition"
+ 140 IDS_DRIVER "Driver Entêtes"
+ 141 IDS_DRV_01 "Description"
+ 142 IDS_DRV_02 "Attributs"
+ 143 IDS_DSRC "DataSrc Entêtes"
+ 144 IDS_DSC_01 "Nom"
+ 145 IDS_DSC_02 "Description"
+ 200 ACCESS_VIOLATN "Violation accès mémoire"
+ 201 ADD_BAD_TYPE "Ajout d'une valeur de type %s non conforme dans un tableau %s"
+ 202 ALLOC_ERROR "Erreur d'allocation de %s"
+ 203 ANSWER_TYPE "Réponse de type"
+ 204 API_CONF_ERROR "Erreur SQL: API_CONFORMANCE"
+ 205 APPL_NOT_INIT "Application non initialisée"
+ 206 ARRAY_BNDS_EXCD "Hors limite de tableau"
+ 207 BAD_ARRAY_OPER "Les tableaux doivent utiliser l'opérateur IN"
+ 208 BAD_ARRAY_TYPE "Type=%d invalide pour un tableau"
+ 209 BAD_ARRAY_VAL "Les tableaux doivent avoir le même nombre de valeurs"
+ 210 BAD_BIN_FMT "Format invalide %c pour la colonne BIN %s"
+ 211 BAD_BLK_ESTIM "Nombre de blocs supérieur à l'estimation"
+ 212 BAD_BLK_SIZE "Taille du bloc %d non conforme"
+ 213 BAD_BYTE_NUM "Le nombre d'octets écrits est faux"
+ 214 BAD_BYTE_READ "Le nombre d'octets lus est faux"
+ 215 BAD_COL_TYPE "Type invalide %s pour la colonne %s"
+ 216 BAD_COL_XPATH "Xpath invalide colonne %s de la table HTML %s"
+ 217 BAD_CONST_TYPE "Type=%d invalide pour une constante"
+ 218 BAD_CONV_TYPE "Convertion de type invalide %d"
+ 219 BAD_DATETIME "Valeur date/temps invalide"
+ 220 BAD_DBF_FILE "Le fichier DBF %s est altéré"
+ 221 BAD_DBF_REC "Fichier DBF %s altéré enregistrement %d"
+ 222 BAD_DBF_TYPE "Type DBF %c non supporté colonne %s"
+ 223 BAD_DIRECTORY "Répertoire invalide %s: %s"
+ 224 BAD_FIELD_RANK "Rang %d invalide pour la colonne %s"
+ 225 BAD_FIELD_TYPE "Mauvais type de champ %s"
+ 226 BAD_FILE_HANDLE "Handle de fichier invalide: %s"
+ 227 BAD_FILTER "Mauvais filtre: Opc=%d B_T=%d %d Type=%d %d"
+ 228 BAD_FILTER_CONV "Conversion filtre incorrecte, B_T=%d,%d"
+ 229 BAD_FILTER_OP "Opérateur de filtre invalide %d"
+ 230 BAD_FLD_FORMAT "Format invalide pour le champs %d de %s"
+ 231 BAD_FLD_LENGTH "Champs %s trop long (%s --> %d) ligne %d de %s"
+ 232 BAD_FREQ_SET "Spécification erronnée de Freq pour la colonne %s"
+ 233 BAD_FUNC_MODE "%s: mode invalide %d"
+ 234 BAD_HANDLE_VAL "Valeur Handle invalide"
+ 235 BAD_HEADER "Fichier %s: bloc en-tête altéré"
+ 236 BAD_HEAD_END "Lecture fin d'en-tête impossible"
+ 237 BAD_INDEX_FILE "Fichier index %s corrompu"
+ 238 BAD_LINEFLD_FMT "Format invalide ligne %d champs %d de %s"
+ 239 BAD_LINE_LEN "Longueur ligne non égale à Lrecl"
+ 240 BAD_LRECL "Disparité lrecl table/fichier (%d,%hd)"
+ 241 BAD_NODE_TYPE "Type noeud erroné pour la table"
+ 242 BAD_OFFSET_VAL "Nul offset invalide pour une table CSV"
+ 243 BAD_OPEN_MODE "Mode d'ouverture invalide %d"
+ 244 BAD_PARAM_TYPE "%.8s: Paramètre de type=%d invalide"
+ 245 BAD_PARM_COUNT "Nombre de paramètres incohérent"
+ 246 BAD_QUOTE_FIELD "Quote manquante dans %s champs %d ligne %d"
+ 247 BAD_READ_NUMBER "Mauvais nombre %d de valeurs lues dans %s"
+ 248 BAD_RECFM "Recfm type %d invalide pour DOSCOL"
+ 249 BAD_RECFM_VAL "Valeur invalide %d de Recfm"
+ 250 BAD_SET_CASE "La casse d'un tableau ne peut pas passer de non respect à respecter"
+ 251 BAD_SET_STRING "SetValue: appel invalide pour STRING"
+ 252 BAD_SPECIAL_COL "Colonne spéciale invalide %s"
+ 253 BAD_SPEC_COLUMN "Colonne spéciale invalide pour ce type de table"
+ 254 BAD_TABLE_TYPE "Type invalide %s pour la table %s"
+ 255 BAD_TYPE_LIKE "Type(%d)= %d invalide pour LIKE"
+ 256 BAD_VALBLK_INDX "Valeur hors limites de l'index du bloc de valeurs"
+ 257 BAD_VALBLK_TYPE "Type=%d invalide pour un bloc de valeurs"
+ 258 BAD_VALNODE "Type %d invalide pour le noeud valeur colonne %s"
+ 259 BAD_VALUE_TYPE "Type de valeur invalide %d"
+ 260 BAD_VAL_UPDATE "Impossible de déterminer quelle valeur %s doit être mise à jour"
+ 261 BAS_NS_LIST "Format invalide de la liste des espace-noms"
+ 262 BIN_F_TOO_LONG "Valeur trop longue pour le champ %s (%d --> %d)"
+ 263 BIN_MODE_FAIL "Echec mode binaire: %s"
+ 264 BLKTYPLEN_MISM "Disparité types/longueurs de bloc dans SetValue"
+ 265 BLK_IS_NULL "Blk est nul"
+ 266 BREAKPOINT "Point de contrôle"
+ 267 BUILD_INDEX "Construction index %s sur %s"
+ 268 CANNOT_OPEN "Ouverture impossible de %s"
+ 269 CHSIZE_ERROR "Erreur dans chsize: %s"
+ 270 COL_ALLOC_ERR "Allocation impossible du noeud colonne"
+ 271 COL_ISNOT_TABLE "La colonne %s n'est pas dans la table %s"
+ 272 COL_NOT_SORTED "La colonne %s de la table %s n'est pas triée"
+ 273 COL_NUM_MISM "Disparité du nombre de colonnes"
+ 274 COM_ERROR "Erreur Com"
+ 275 CONCAT_SUBNODE "Concaténation de sous-noeuds impossible"
+ 276 CONNECT_CANCEL "Connection interrompue par l'utilisateur"
+ 277 CONTROL_C_EXIT "Exit par Ctrl-C"
+ 278 DATABASE_LOADED "Base de données %s chargée"
+ 279 DATA_MISALIGN "Mauvais alignement pour ce type de données"
+ 280 DBASE_FILE "Fichier dBASE dbf: "
+ 281 DEF_ALLOC_ERROR "Erreur d'allocation de la classe DEF %s"
+ 282 DEL_FILE_ERR "Erreur à l'effacement de %s"
+ 283 DEL_READ_ERROR "Delete: erreur en lecture req=%d len=%d"
+ 284 DEL_WRITE_ERROR "Delete: erreur en écriture: %s"
+ 285 DEPREC_FLAG "Option Flag périmée, utiliser Coltype"
+ 286 DLL_LOAD_ERROR "Erreur %d au chargement du module %s"
+ 287 DOM_NOT_SUPP "MS-DOM non supporté par cette version"
+ 288 DVAL_NOTIN_LIST "Valeur %s non trouvée dans la liste des valeurs distinctes de la colonne %s"
+ 289 EMPTY_DOC "Document vide"
+ 290 EMPTY_FILE "%s du fichier vide %s: "
+ 291 EOF_AFTER_LINE "Fin de fichier après la ligne %d"
+ 292 EOF_INDEX_FILE "EOF lisant le fichier index"
+ 293 ERROR_IN_LSK "Erreur %d dans lseek64"
+ 294 ERROR_IN_SFP "Erreur %d dans SetFilePointer"
+ 295 ERR_READING_REC "Erreur lisant l'enregistrement %d de %s"
+ 296 FAIL_ADD_NODE "L'ajout du noeud %s dans la table a échoué"
+ 297 FETCH_NO_RES "Fetch: Pas de Résultats"
+ 298 FIELD_TOO_LONG "Valeur trop longue pour le champs %d ligne %d"
+ 299 FILELEN_ERROR "Erreur dans %s pour %s"
+ 300 FILE_IS_EMPTY "Le fichier %s est vide"
+ 301 FILE_MAP_ERR "Erreur de File mapping"
+ 302 FILE_MAP_ERROR "CreateFileMapping %s erreur rc=%d"
+ 303 FILE_OPEN_YET "Fichier %s déjà ouvert"
+ 304 FILE_UNFOUND "Fichier %s non trouvé"
+ 305 FLD_TOO_LNG_FOR "Champs %d trop long pour %s ligne %d de %s"
+ 306 FLT_BAD_RESULT "Virgule flottante: résultat inexacte"
+ 307 FLT_DENORMAL_OP "Opérande virgule flottante non normalisé"
+ 308 FLT_INVALID_OP "Opération virgule flottante invalide"
+ 309 FLT_OVERFLOW "Dépassement de capacité virgule flottante"
+ 310 FLT_STACK_CHECK "Virgule flottante: Erreur de la pile"
+ 311 FLT_UNDERFLOW "Sous-dépassement de capacité virgule flottante"
+ 312 FLT_ZERO_DIVIDE "Virgule flottante: division par zéro"
+ 313 FMT_WRITE_NIY "L'écriture des fichiers %s n'est pas encore implémentée"
+ 314 FOXPRO_FILE "Fichier FoxPro: "
+ 315 FPUTS_ERROR "Erreur dans fputs: %s"
+ 316 FSEEK_ERROR "Erreur dans fseek: %s"
+ 317 FSETPOS_ERROR "Erreur dans fseek pour i=%d"
+ 318 FTELL_ERROR "Erreur dans ftell enregistrement=%d: %s"
+ 319 FUNCTION_ERROR "Erreur dans %s: %d"
+ 320 FUNC_ERRNO "Erreur %d dans %s"
+ 321 FUNC_ERROR "Erreur dans %s"
+ 322 FUNC_ERR_S "Erreur dans %s: %s"
+ 323 FWRITE_ERROR "Erreur dans fwrite: %s"
+ 324 GET_DIST_VALS "Récupération des valeurs distinctes de "
+ 325 GET_FUNC_ERR "Erreur en recherche de la fonction %s: %s"
+ 326 GLOBAL_ERROR "Erreur d'allocation de Global (taille=%d)\n"
+ 327 GUARD_PAGE "Violation de page de garde"
+ 328 GZOPEN_ERROR "gzopen %s: erreur %d sur %s"
+ 329 ILLEGAL_INSTR "Instruction illégale"
+ 330 ILL_FILTER_CONV "Conversion implicite illégale dans un filtre"
+ 331 INDEX_NOT_UNIQ "L'index n'est pas Unique"
+ 332 INDEX_YET_ON "L'index %s existe déjà sur %s"
+ 333 INDX_COL_NOTIN "La colonne index %s n'existe pas dans la table %s"
+ 334 INDX_EXIST_YET "L'entrée index existe déjà"
+ 335 INIT_FAILED "L'initialisation de %s a échoué"
+ 336 INT_COL_ERROR "Erreur interne sur la colonne index %s"
+ 337 INT_OVERFLOW "Dépassement de capacité sur entier"
+ 338 INT_ZERO_DIVIDE "Division entière par zéro"
+ 339 INVALID_DISP "Disposition invalide"
+ 340 INVALID_FTYPE "SBV: Ftype %d invalide"
+ 341 INVALID_HANDLE "Poignée invalide"
+ 342 INVALID_OPER "Opérateur invalide %d pour %s"
+ 343 INV_COLUMN_TYPE "Type %d Invalide pour la colonne %s"
+ 344 INV_COL_TYPE "Type de colonne %s invalide"
+ 345 INV_DEF_READ "Lecture différée invalide rc=%d"
+ 346 INV_DIRCOL_OFST "Offset invalide pour une colonne DIR"
+ 347 INV_MAP_POS "Position mémoire invalide"
+ 348 INV_RAND_ACC "L'accès aléatoire d'une table non optimisée est impossible"
+ 349 INV_REC_POS "Position d'enregistrement invalide"
+ 350 INV_RESULT_TYPE "Type de résultat invalide %s"
+ 351 INV_UPDT_TABLE "Table %s invalide pour Update"
+ 352 IN_WITHOUT_SUB "IN ou EXISTS sans tableau ou subquery"
+ 353 KEY_ALLOC_ERR "Erreur d'allocation d'un bloc offset clé"
+ 354 KEY_ALLOC_ERROR "Erreur d'allocation mémoire, Klen=%d n=%d"
+ 355 LINE_TOO_LONG "La nouvelle ligne est trop longue"
+ 356 LIST "--Liste--"
+ 357 LOADING_FAILED "Le chargement de %s a échoué"
+ 358 LRECL_TOO_SMALL "Lrecl trop petit (longueur en-tête = %d)"
+ 359 MAKE_EMPTY_FILE "Génération du fichier vide %s: %s"
+ 360 MAKING "Génération"
+ 361 MALLOC_ERROR "Allocation mémoire impossible par %s"
+ 362 MAP_VIEW_ERROR "MapViewOfFile %s erreur rc=%d"
+ 363 MAXSIZE_ERROR "Maxsize incalculable sur table ouverte"
+ 364 MEM_ALLOC_ERR "Erreur d'allocation mémoire, taille %s = %d"
+ 365 MEM_ALLOC_ERROR "Erreur d'allocation mémoire"
+ 366 MISPLACED_QUOTE "Appostrophe mal placée ligne %d"
+ 367 MISSING_ARG "Argument manquant pour l'opérateur %d"
+ 368 MISSING_FIELD "Champs %d manquant dans %s ligne %d"
+ 369 MISSING_FNAME "Nom du fichier manquant"
+ 370 MISSING_NODE "Noeud %s manquant dans %s"
+ 371 MISSING_ROWNODE "Impossible de trouver le noeud de la ligne %d"
+ 372 MIS_TAG_LIST "Liste des balises colonne manquante"
+ 373 MUL_MAKECOL_ERR "Erreur logique dans TABMUL::MakeCol"
+ 374 NAME_CONV_ERR "Erreur de convertion du nom de noeud"
+ 375 NEW_DOC_FAILED "Impossible de créer le nouveau document"
+ 376 NEW_RETURN_NULL "NULL renvoyé par New dans PlugEvalLike"
+ 377 NEXT_FILE_ERROR "Erreur en recherche du fichier suivant. rc=%s"
+ 378 NONCONT_EXCEPT "Exception non-continuable"
+ 379 NOP_ZLIB_INDEX "L'indexage d'une table zlib non optimisée est impossible"
+ 380 NOT_A_DBF_FILE "Le fichier n'a pas le format dBASE dbf "
+ 381 NOT_FIXED_LEN "Fichier %s non fixe, len=%d lrecl=%d"
+ 382 NO_0DH_HEAD "0DH manquant en fin d'en-tête (dbc=%d)"
+ 383 NO_ACTIVE_DB "Pas de base de données active"
+ 384 NO_CHAR_FROM "Conversion de type %d en caractères impossible"
+ 385 NO_DATE_FMT "Pas de format date pour le valblock de type %d"
+ 386 NO_DEF_FNCCOL "Colonne fonction par défaut introuvable"
+ 387 NO_DEF_PIVOTCOL "Colonne pivot par défaut introuvable"
+ 388 NO_DIR_INDX_RD "Pas d'accès directe des tables %s"
+ 389 NO_FEAT_SUPPORT "%s non supporté dans cette version"
+ 390 NO_FLD_FORMAT "Format absent pour le champs %d de %s"
+ 391 NO_FORMAT_COL "Type COLUMN informattable"
+ 392 NO_FORMAT_TYPE "Le format ne peut pas être défini à partir du type %d"
+ 393 NO_INDEX_READ "Pas d'accès directe des tables multiples"
+ 394 NO_KEY_COL "Pas de colonne clé trouvée"
+ 395 NO_KEY_UPDATE "Le nom des clés ne peut pas être modifié"
+ 396 NO_MAP_INSERT "MAP incompatible avec Insert"
+ 397 NO_MATCHING_COL "Pas de colonne correspondant à %s dans %s"
+ 398 NO_MATCH_COL "Colonne correspondante introuvable"
+ 399 NO_MEMORY "Mémoire pleine"
+ 400 NO_MODE_PADDED "Mode non supporté pour les fichiers 'padded'"
+ 401 NO_MUL_VCT "Les tables VCT ne peuvent pas être multiples"
+ 402 NO_ODBC_DELETE "Delete ne devrait pas être appelé pour les tables ODBC"
+ 403 NO_ODBC_DIRECT "Accès directe des tables ODBC non encore implémenté"
+ 404 NO_ODBC_MUL "Multiple(2) non supporté pour les tables ODBC"
+ 405 NO_ODBC_SPECOL "Pas de colonne spéciale ODBC"
+ 406 NO_PART_DEL "Delete partiel des fichier %s impossible"
+ 407 NO_PART_MAP "Mapping partiel non implémenté pour cet OS"
+ 408 NO_PAR_BLK_INS "Insertion de bloc partiel impossible"
+ 409 NO_PIV_DIR_ACC "Pas d'accès directe aux tables PIVOT"
+ 410 NO_READ_32 "Lecture de 32 octets impossible"
+ 411 NO_RECOV_SPACE "Espace non recouvrable dans le fichier index"
+ 412 NO_ROWID_FOR_AM "Accès direct impossible de ROWID pour les tables de type %s"
+ 413 NO_ROW_NODE "Le nom du Rownode n'est pas défini"
+ 414 NO_SECTION_NAME "Nom de section manquant"
+ 415 NO_SEC_UPDATE "Les noms de section ne peuvent pas être modifiés"
+ 416 NO_SETPOS_YET "SetPos pas encore implémenté pour les fichier %s"
+ 417 NO_SPEC_COL "Pas de colonne spéciales MYSQL"
+ 418 NO_SUB_VAL "Pas de sous-value d'un tableau de type %d"
+ 419 NO_TABCOL_DATA "Pas de données pour la table %s colonne %s"
+ 420 NO_TABLE_DEL "Delete non autorisé pour les tables %s "
+ 421 NO_TAB_DATA "Pas de données pour la table %s"
+ 422 NO_VCT_DELETE "Délétion Partielle non implémentée pour les fichiers VCT"
+ 423 NO_ZIP_DELETE "Delete sur fichier Zip non encore implementé"
+ 424 OPENING "Ouverture"
+ 425 OPEN_EMPTY_FILE "Ouverture du fichier vide %s: %s"
+ 426 OPEN_ERROR "Erreur d'ouverture %d en mode %d sur %s: "
+ 427 OPEN_ERROR_IS "Erreur à l'ouverture de %s: %s"
+ 428 OPEN_MODE_ERROR "Erreur d'ouverture(%s) %d sur %s"
+ 429 OPEN_STRERROR "Erreur à l'ouverture: %s"
+ 430 OPTBLK_RD_ERR "Erreur à la lecture d'un bloc optimisation: %s"
+ 431 OPTBLK_WR_ERR "Erreur à l'écriture d'un bloc optimisation: %s"
+ 432 OPTIMIZING "Optimisation de "
+ 433 OPT_BMAP_RD_ERR "Erreur en lecture des bitmaps d'optimisation: %s"
+ 434 OPT_BMAP_WR_ERR "Erreur en écriture des bitmaps d'optimisation: %s"
+ 435 OPT_CANCELLED "Optimisation interrompue par l'utilisateur"
+ 436 OPT_DVAL_RD_ERR "Erreur en lecture des valeurs distinctes: %s"
+ 437 OPT_DVAL_WR_ERR "Erreur en écriture des valeurs distinctes: %s"
+ 438 OPT_HEAD_RD_ERR "Erreur en lecture de l'entête du fichier opt: %s"
+ 439 OPT_HEAD_WR_ERR "Erreur en écriture de l'entête du fichier opt: %s"
+ 440 OPT_LOGIC_ERR "Erreur logique dans SetBitmap, i=%d"
+ 441 OPT_MAX_RD_ERR "Erreur en lecture des valeurs maxi: %s"
+ 442 OPT_MAX_WR_ERR "Erreur en écriture des valeurs maxi: %s"
+ 443 OPT_MIN_RD_ERR "Erreur en lecture des valeurs mini: %s"
+ 444 OPT_MIN_WR_ERR "Erreur en écriture des valeurs mini: %s"
+ 445 OPT_NOT_MATCH "Le fichier opt %s n'est pas à jour"
+ 446 PAGE_ERROR "Erreur de pagination"
+ 447 PARM_CNT_MISS "Disparité du nombre de Paramètres"
+ 448 PREC_VBLP_NULL "ARRAY SetPrecision: Vblp est NULL"
+ 449 PRIV_INSTR "Instruction privilégiée"
+ 450 PROCADD_ERROR "Erreur %d sur l'adresse de %s"
+ 451 QUERY_CANCELLED "Requête interrompue par l'utilisateur"
+ 452 RANGE_NO_JOIN "Range non compatible avec les index de jointure"
+ 453 RC_READING "rc=%d en lecture de la table %s"
+ 454 READY "Prêt"
+ 455 READ_ERROR "Erreur en lecture sur %s: %s"
+ 456 READ_ONLY "Cette table protégée en lecture seule ne peut être modifiée"
+ 457 READ_SEEK_ERROR "Erreur de recherche en lecture: %s"
+ 458 REGISTER_ERR "Enregistrement NS impossible, préfix='%s' et href='%s'"
+ 459 REMOVE_ERROR "Erreur en supprimant %s: %s"
+ 460 RENAME_ERROR "Erreur renommant %s en %s: %s"
+ 461 ROWID_NOT_IMPL "RowNumber non implémenté pour les tables de type %s"
+ 462 SEC_KEY_FIRST "Les sections et clés doivent être insérées en premier"
+ 463 SEC_NAME_FIRST "Le nom de section doit être en tête de liste en insertion"
+ 464 SEP_IN_FIELD "Le champ %d contient le caractère séparateur"
+ 465 SEQUENCE_ERROR "HSTMT: Allocation hors séquence"
+ 466 SETEOF_ERROR "Erreur %d dans SetEndOfFile"
+ 467 SETRECPOS_NIY "SetRecpos non implémenté pour ce type de table"
+ 468 SET_STR_TRUNC "SetValue: Chaîne de caractères tronquée"
+ 469 SFP_ERROR "Erreur sur SetFilePointer: %s"
+ 470 SHARED_LIB_ERR "Erreur au chargement de la librairie partagée %s: %s"
+ 471 SINGLE_STEP "Pas à pas"
+ 472 SORTING_VAL "Tri de %d valeurs"
+ 473 SPCOL_READONLY "La colonne spéciale %s est en lecture seulement"
+ 474 SQL_CONF_ERROR "Erreur SQL: SQL_CONFORMANCE"
+ 475 SRCH_CLOSE_ERR "Erreur à la fermeture de l'Handle de recherche"
+ 476 SRC_TABLE_UNDEF "La table source n'est pas définie"
+ 477 STACK_OVERFLOW "Dépassement de capacité de la pile"
+ 478 TABDIR_READONLY "Les tables DIR sont en lecture seulement"
+ 479 TABLE_NOT_OPT "Table non optimisable"
+ 480 TABLE_NO_INDEX "La table %s n'est pas indexable"
+ 481 TABLE_READ_ONLY "Les tables %s sont en lecture seulement "
+ 482 TABMUL_READONLY "Les tables multiples sont en lecture seulement"
+ 483 TOO_MANY_FIELDS "Trop de champs ligne %d de %s"
+ 484 TOO_MANY_JUMPS "Trop de niveaux de saut"
+ 485 TOO_MANY_KEYS "Trop de clés (%d)"
+ 486 TO_BLK_IS_NULL "To Blk est nul"
+ 487 TRUNCATE_ERROR "Erreur en troncation: %s"
+ 488 TRUNC_BY_ESTIM "Tronqué par l'option Estimate"
+ 489 TYPE_MISMATCH "Clé et source ne sont pas du même type"
+ 490 TYPE_VALUE_ERR "Colonne %s: disparité type(%s)/valeur(%s)"
+ 491 UNBALANCE_QUOTE "Appostrophe en trop ligne %d"
+ 492 UNDEFINED_AM "COLBLK %s: méthode d'accès indéfinie"
+ 493 UNKNOWN_EXCPT "Exception non répertoriée"
+ 494 UNMATCH_FIL_ARG "Argument de filtre dépareillé"
+ 495 UPDATE_ERROR "Erreur en Update sur %s"
+ 496 UPD_ZIP_NOT_IMP "Mise à jour des tables ZDOS non encore implementé"
+ 497 VALSTR_TOO_LONG "Valeur %s trop longue pour une chaîne de longueur %d"
+ 498 VALTYPE_NOMATCH "Disparité types de valeur"
+ 499 VALUE_ERROR "Colonne %s: bloc valeur nul"
+ 500 VALUE_TOO_BIG "Valeur %d trop grande pour la colonne %s"
+ 501 VALUE_TOO_LONG "Valeur %s trop longue pour la colonne %s de longueur %d"
+ 502 VAL_ALLOC_ERR "Allocation impossible du noeud valeur"
+ 503 VIR_NO_DELETE "Delete impossible sur les tables %s"
+ 504 VIR_READ_ONLY "Les tables virtuelles %s sont en lecture seulement"
+ 505 VOID_FIRST_ARG "Le premier argument ne doit pas être vide"
+ 506 WORK_AREA "Espace de travail: %s"
+ 507 WRITE_SEEK_ERR "Erreur de recherche en écriture: %s"
+ 508 WRITE_STRERROR "Erreur en écriture sur %s: %s"
+ 509 WRITING "Ecriture"
+ 510 WRITING_ERROR "Erreur à l'écriture de %s: %s"
+ 511 WS_CONV_ERR "Erreur de convertion de %s en WS"
+ 512 XCOL_MISMATCH "La colonne %s ne correspond pas à l'index"
+ 513 XFILE_READERR "Erreur %d en lisant le fichier index"
+ 514 XFILE_WRITERR "Erreur en écrivant le fichier index: %s"
+ 515 XMLTAB_INIT_ERR "Erreur d'initialisation de la table XML"
+ 516 XML_INIT_ERROR "Erreur d'initialisation du nouveau fichier XML"
+ 517 XPATH_CNTX_ERR "Le nouveau contexte XPath ne peut être créé"
+ 518 XPATH_EVAL_ERR "Impossible d'évaluer l'emplacement xpath '%s'"
+ 519 XPATH_NOT_SUPP "Xpath non supporté colonne %s"
diff --git a/storage/connect/frids.h b/storage/connect/frids.h
new file mode 100644
index 00000000000..561dbb68837
--- /dev/null
+++ b/storage/connect/frids.h
@@ -0,0 +1,46 @@
+ case IDS_TABLES: p = "Table Entêtes"; break;
+ case IDS_TAB_01: p = "Catalogue"; break;
+ case IDS_TAB_02: p = "Schéma"; break;
+ case IDS_TAB_03: p = "Nom"; break;
+ case IDS_TAB_04: p = "Type"; break;
+ case IDS_TAB_05: p = "Remarque"; break;
+ case IDS_COLUMNS: p = "Colonne Entêtes"; break;
+ case IDS_COL_01: p = "Cat_Table"; break;
+ case IDS_COL_02: p = "Schem_Table"; break;
+ case IDS_COL_03: p = "Nom_Table"; break;
+ case IDS_COL_04: p = "Nom_Colonne"; break;
+ case IDS_COL_05: p = "Type_Données"; break;
+ case IDS_COL_06: p = "Nom_Type"; break;
+ case IDS_COL_07: p = "Précision"; break;
+ case IDS_COL_08: p = "Longueur"; break;
+ case IDS_COL_09: p = "Echelle"; break;
+ case IDS_COL_10: p = "Base"; break;
+ case IDS_COL_11: p = "Nullifiable"; break;
+ case IDS_COL_12: p = "Remarques"; break;
+ case IDS_PKEY: p = "Clé Entêtes"; break;
+ case IDS_PKY_01: p = "Cat_Table"; break;
+ case IDS_PKY_02: p = "Schem_Table"; break;
+ case IDS_PKY_03: p = "Nom_Table"; break;
+ case IDS_PKY_04: p = "Nom_Colonne"; break;
+ case IDS_PKY_05: p = "Numéro_Clé"; break;
+ case IDS_PKY_06: p = "Nom_Clé"; break;
+ case IDS_STAT: p = "Stat Entêtes"; break;
+ case IDS_STA_01: p = "Table_Catalog"; break;
+ case IDS_STA_02: p = "Table_Schema"; break;
+ case IDS_STA_03: p = "Table_Name"; break;
+ case IDS_STA_04: p = "Non_Unique"; break;
+ case IDS_STA_05: p = "Index_Qualifier"; break;
+ case IDS_STA_06: p = "Index_Name"; break;
+ case IDS_STA_07: p = "Type"; break;
+ case IDS_STA_08: p = "Seq_in_Index"; break;
+ case IDS_STA_09: p = "Column_Name"; break;
+ case IDS_STA_10: p = "Collation"; break;
+ case IDS_STA_11: p = "Cardinality"; break;
+ case IDS_STA_12: p = "Pages"; break;
+ case IDS_STA_13: p = "Filter_Condition"; break;
+ case IDS_DRIVER: p = "Driver Entêtes"; break;
+ case IDS_DRV_01: p = "Description"; break;
+ case IDS_DRV_02: p = "Attributs"; break;
+ case IDS_DSRC: p = "DataSrc Entêtes"; break;
+ case IDS_DSC_01: p = "Nom"; break;
+ case IDS_DSC_02: p = "Description"; break;
diff --git a/storage/connect/frmsg.h b/storage/connect/frmsg.h
new file mode 100644
index 00000000000..ec61a71500e
--- /dev/null
+++ b/storage/connect/frmsg.h
@@ -0,0 +1,320 @@
+#define MSG_ACCESS_VIOLATN "Violation accès mémoire"
+#define MSG_ADD_BAD_TYPE "Ajout d'une valeur de type %s non conforme dans un tableau %s"
+#define MSG_ALLOC_ERROR "Erreur d'allocation de %s"
+#define MSG_ANSWER_TYPE "Réponse de type"
+#define MSG_API_CONF_ERROR "Erreur SQL: API_CONFORMANCE"
+#define MSG_APPL_NOT_INIT "Application non initialisée"
+#define MSG_ARRAY_BNDS_EXCD "Hors limite de tableau"
+#define MSG_BAD_ARRAY_OPER "Les tableaux doivent utiliser l'opérateur IN"
+#define MSG_BAD_ARRAY_TYPE "Type=%d invalide pour un tableau"
+#define MSG_BAD_ARRAY_VAL "Les tableaux doivent avoir le même nombre de valeurs"
+#define MSG_BAD_BIN_FMT "Format invalide %c pour la colonne BIN %s"
+#define MSG_BAD_BLK_ESTIM "Nombre de blocs supérieur à l'estimation"
+#define MSG_BAD_BLK_SIZE "Taille du bloc %d non conforme"
+#define MSG_BAD_BYTE_NUM "Le nombre d'octets écrits est faux"
+#define MSG_BAD_BYTE_READ "Le nombre d'octets lus est faux"
+#define MSG_BAD_COL_TYPE "Type invalide %s pour la colonne %s"
+#define MSG_BAD_COL_XPATH "Xpath invalide colonne %s de la table HTML %s"
+#define MSG_BAD_CONST_TYPE "Type=%d invalide pour une constante"
+#define MSG_BAD_CONV_TYPE "Convertion de type invalide %d"
+#define MSG_BAD_DATETIME "Valeur date/temps invalide"
+#define MSG_BAD_DBF_FILE "Le fichier DBF %s est altéré"
+#define MSG_BAD_DBF_REC "Fichier DBF %s altéré enregistrement %d"
+#define MSG_BAD_DBF_TYPE "Type DBF %c non supporté colonne %s"
+#define MSG_BAD_DIRECTORY "Répertoire invalide %s: %s"
+#define MSG_BAD_FIELD_RANK "Rang %d invalide pour la colonne %s"
+#define MSG_BAD_FIELD_TYPE "Mauvais type de champ %s"
+#define MSG_BAD_FILE_HANDLE "Handle de fichier invalide: %s"
+#define MSG_BAD_FILTER "Mauvais filtre: Opc=%d B_T=%d %d Type=%d %d"
+#define MSG_BAD_FILTER_CONV "Conversion filtre incorrecte, B_T=%d,%d"
+#define MSG_BAD_FILTER_OP "Opérateur de filtre invalide %d"
+#define MSG_BAD_FLD_FORMAT "Format invalide pour le champs %d de %s"
+#define MSG_BAD_FLD_LENGTH "Champs %s trop long (%s --> %d) ligne %d de %s"
+#define MSG_BAD_FREQ_SET "Spécification erronnée de Freq pour la colonne %s"
+#define MSG_BAD_FUNC_MODE "%s: mode invalide %d"
+#define MSG_BAD_HANDLE_VAL "Valeur Handle invalide"
+#define MSG_BAD_HEADER "Fichier %s: bloc en-tête altéré"
+#define MSG_BAD_HEAD_END "Lecture fin d'en-tête impossible"
+#define MSG_BAD_INDEX_FILE "Fichier index %s corrompu"
+#define MSG_BAD_LINEFLD_FMT "Format invalide ligne %d champs %d de %s"
+#define MSG_BAD_LINE_LEN "Longueur ligne non égale à Lrecl"
+#define MSG_BAD_LRECL "Disparité lrecl table/fichier (%d,%hd)"
+#define MSG_BAD_NODE_TYPE "Type noeud erroné pour la table"
+#define MSG_BAD_OFFSET_VAL "Nul offset invalide pour une table CSV"
+#define MSG_BAD_OPEN_MODE "Mode d'ouverture invalide %d"
+#define MSG_BAD_PARAM_TYPE "%.8s: Paramètre de type=%d invalide"
+#define MSG_BAD_PARM_COUNT "Nombre de paramètres incohérent"
+#define MSG_BAD_QUOTE_FIELD "Quote manquante dans %s champs %d ligne %d"
+#define MSG_BAD_READ_NUMBER "Mauvais nombre %d de valeurs lues dans %s"
+#define MSG_BAD_RECFM "Recfm type %d invalide pour DOSCOL"
+#define MSG_BAD_RECFM_VAL "Valeur invalide %d de Recfm"
+#define MSG_BAD_SET_CASE "La casse d'un tableau ne peut pas passer de non respect à respecter"
+#define MSG_BAD_SET_STRING "SetValue: appel invalide pour STRING"
+#define MSG_BAD_SPECIAL_COL "Colonne spéciale invalide %s"
+#define MSG_BAD_SPEC_COLUMN "Colonne spéciale invalide pour ce type de table"
+#define MSG_BAD_TABLE_TYPE "Type invalide %s pour la table %s"
+#define MSG_BAD_TYPE_LIKE "Type(%d)= %d invalide pour LIKE"
+#define MSG_BAD_VALBLK_INDX "Valeur hors limites de l'index du bloc de valeurs"
+#define MSG_BAD_VALBLK_TYPE "Type=%d invalide pour un bloc de valeurs"
+#define MSG_BAD_VALNODE "Type %d invalide pour le noeud valeur colonne %s"
+#define MSG_BAD_VALUE_TYPE "Type de valeur invalide %d"
+#define MSG_BAD_VAL_UPDATE "Impossible de déterminer quelle valeur %s doit être mise à jour"
+#define MSG_BAS_NS_LIST "Format invalide de la liste des espace-noms"
+#define MSG_BIN_F_TOO_LONG "Valeur trop longue pour le champ %s (%d --> %d)"
+#define MSG_BIN_MODE_FAIL "Echec mode binaire: %s"
+#define MSG_BLKTYPLEN_MISM "Disparité types/longueurs de bloc dans SetValue"
+#define MSG_BLK_IS_NULL "Blk est nul"
+#define MSG_BREAKPOINT "Point de contrôle"
+#define MSG_BUILD_INDEX "Construction index %s sur %s"
+#define MSG_CANNOT_OPEN "Ouverture impossible de %s"
+#define MSG_CHSIZE_ERROR "Erreur dans chsize: %s"
+#define MSG_COL_ALLOC_ERR "Allocation impossible du noeud colonne"
+#define MSG_COL_ISNOT_TABLE "La colonne %s n'est pas dans la table %s"
+#define MSG_COL_NOT_SORTED "La colonne %s de la table %s n'est pas triée"
+#define MSG_COL_NUM_MISM "Disparité du nombre de colonnes"
+#define MSG_COM_ERROR "Erreur Com"
+#define MSG_CONCAT_SUBNODE "Concaténation de sous-noeuds impossible"
+#define MSG_CONNECT_CANCEL "Connection interrompue par l'utilisateur"
+#define MSG_CONTROL_C_EXIT "Exit par Ctrl-C"
+#define MSG_DATABASE_LOADED "Base de données %s chargée"
+#define MSG_DATA_MISALIGN "Mauvais alignement pour ce type de données"
+#define MSG_DBASE_FILE "Fichier dBASE dbf: "
+#define MSG_DEF_ALLOC_ERROR "Erreur d'allocation de la classe DEF %s"
+#define MSG_DEL_FILE_ERR "Erreur à l'effacement de %s"
+#define MSG_DEL_READ_ERROR "Delete: erreur en lecture req=%d len=%d"
+#define MSG_DEL_WRITE_ERROR "Delete: erreur en écriture: %s"
+#define MSG_DEPREC_FLAG "Option Flag périmée, utiliser Coltype"
+#define MSG_DLL_LOAD_ERROR "Erreur %d au chargement du module %s"
+#define MSG_DOM_NOT_SUPP "MS-DOM non supporté par cette version"
+#define MSG_DVAL_NOTIN_LIST "Valeur %s non trouvée dans la liste des valeurs distinctes de la colonne %s"
+#define MSG_EMPTY_DOC "Document vide"
+#define MSG_EMPTY_FILE "%s du fichier vide %s: "
+#define MSG_EOF_AFTER_LINE "Fin de fichier après la ligne %d"
+#define MSG_EOF_INDEX_FILE "EOF lisant le fichier index"
+#define MSG_ERROR_IN_LSK "Erreur %d dans lseek64"
+#define MSG_ERROR_IN_SFP "Erreur %d dans SetFilePointer"
+#define MSG_ERR_READING_REC "Erreur lisant l'enregistrement %d de %s"
+#define MSG_FAIL_ADD_NODE "L'ajout du noeud %s dans la table a échoué"
+#define MSG_FETCH_NO_RES "Fetch: Pas de Résultats"
+#define MSG_FIELD_TOO_LONG "Valeur trop longue pour le champs %d ligne %d"
+#define MSG_FILELEN_ERROR "Erreur dans %s pour %s"
+#define MSG_FILE_IS_EMPTY "Le fichier %s est vide"
+#define MSG_FILE_MAP_ERR "Erreur de File mapping"
+#define MSG_FILE_MAP_ERROR "CreateFileMapping %s erreur rc=%d"
+#define MSG_FILE_OPEN_YET "Fichier %s déjà ouvert"
+#define MSG_FILE_UNFOUND "Fichier %s non trouvé"
+#define MSG_FLD_TOO_LNG_FOR "Champs %d trop long pour %s ligne %d de %s"
+#define MSG_FLT_BAD_RESULT "Virgule flottante: résultat inexacte"
+#define MSG_FLT_DENORMAL_OP "Opérande virgule flottante non normalisé"
+#define MSG_FLT_INVALID_OP "Opération virgule flottante invalide"
+#define MSG_FLT_OVERFLOW "Dépassement de capacité virgule flottante"
+#define MSG_FLT_STACK_CHECK "Virgule flottante: Erreur de la pile"
+#define MSG_FLT_UNDERFLOW "Sous-dépassement de capacité virgule flottante"
+#define MSG_FLT_ZERO_DIVIDE "Virgule flottante: division par zéro"
+#define MSG_FMT_WRITE_NIY "L'écriture des fichiers %s n'est pas encore implémentée"
+#define MSG_FOXPRO_FILE "Fichier FoxPro: "
+#define MSG_FPUTS_ERROR "Erreur dans fputs: %s"
+#define MSG_FSEEK_ERROR "Erreur dans fseek: %s"
+#define MSG_FSETPOS_ERROR "Erreur dans fseek pour i=%d"
+#define MSG_FTELL_ERROR "Erreur dans ftell enregistrement=%d: %s"
+#define MSG_FUNCTION_ERROR "Erreur dans %s: %d"
+#define MSG_FUNC_ERRNO "Erreur %d dans %s"
+#define MSG_FUNC_ERROR "Erreur dans %s"
+#define MSG_FUNC_ERR_S "Erreur dans %s: %s"
+#define MSG_FWRITE_ERROR "Erreur dans fwrite: %s"
+#define MSG_GET_DIST_VALS "Récupération des valeurs distinctes de "
+#define MSG_GET_FUNC_ERR "Erreur en recherche de la fonction %s: %s"
+#define MSG_GLOBAL_ERROR "Erreur d'allocation de Global (taille=%d)\n"
+#define MSG_GUARD_PAGE "Violation de page de garde"
+#define MSG_GZOPEN_ERROR "gzopen %s: erreur %d sur %s"
+#define MSG_ILLEGAL_INSTR "Instruction illégale"
+#define MSG_ILL_FILTER_CONV "Conversion implicite illégale dans un filtre"
+#define MSG_INDEX_NOT_UNIQ "L'index n'est pas Unique"
+#define MSG_INDEX_YET_ON "L'index %s existe déjà sur %s"
+#define MSG_INDX_COL_NOTIN "La colonne index %s n'existe pas dans la table %s"
+#define MSG_INDX_EXIST_YET "L'entrée index existe déjà"
+#define MSG_INIT_FAILED "L'initialisation de %s a échoué"
+#define MSG_INT_COL_ERROR "Erreur interne sur la colonne index %s"
+#define MSG_INT_OVERFLOW "Dépassement de capacité sur entier"
+#define MSG_INT_ZERO_DIVIDE "Division entière par zéro"
+#define MSG_INVALID_DISP "Disposition invalide"
+#define MSG_INVALID_FTYPE "SBV: Ftype %d invalide"
+#define MSG_INVALID_HANDLE "Poignée invalide"
+#define MSG_INVALID_OPER "Opérateur invalide %d pour %s"
+#define MSG_INV_COLUMN_TYPE "Type %d Invalide pour la colonne %s"
+#define MSG_INV_COL_TYPE "Type de colonne %s invalide"
+#define MSG_INV_DEF_READ "Lecture différée invalide rc=%d"
+#define MSG_INV_DIRCOL_OFST "Offset invalide pour une colonne DIR"
+#define MSG_INV_MAP_POS "Position mémoire invalide"
+#define MSG_INV_RAND_ACC "L'accès aléatoire d'une table non optimisée est impossible"
+#define MSG_INV_REC_POS "Position d'enregistrement invalide"
+#define MSG_INV_RESULT_TYPE "Type de résultat invalide %s"
+#define MSG_INV_UPDT_TABLE "Table %s invalide pour Update"
+#define MSG_IN_WITHOUT_SUB "IN ou EXISTS sans tableau ou subquery"
+#define MSG_KEY_ALLOC_ERR "Erreur d'allocation d'un bloc offset clé"
+#define MSG_KEY_ALLOC_ERROR "Erreur d'allocation mémoire, Klen=%d n=%d"
+#define MSG_LINE_TOO_LONG "La nouvelle ligne est trop longue"
+#define MSG_LIST "--Liste--"
+#define MSG_LOADING_FAILED "Le chargement de %s a échoué"
+#define MSG_LRECL_TOO_SMALL "Lrecl trop petit (longueur en-tête = %d)"
+#define MSG_MAKE_EMPTY_FILE "Génération du fichier vide %s: %s"
+#define MSG_MAKING "Génération"
+#define MSG_MALLOC_ERROR "Allocation mémoire impossible par %s"
+#define MSG_MAP_VIEW_ERROR "MapViewOfFile %s erreur rc=%d"
+#define MSG_MAXSIZE_ERROR "Maxsize incalculable sur table ouverte"
+#define MSG_MEM_ALLOC_ERR "Erreur d'allocation mémoire, taille %s = %d"
+#define MSG_MEM_ALLOC_ERROR "Erreur d'allocation mémoire"
+#define MSG_MISPLACED_QUOTE "Appostrophe mal placée ligne %d"
+#define MSG_MISSING_ARG "Argument manquant pour l'opérateur %d"
+#define MSG_MISSING_FIELD "Champs %d manquant dans %s ligne %d"
+#define MSG_MISSING_FNAME "Nom du fichier manquant"
+#define MSG_MISSING_NODE "Noeud %s manquant dans %s"
+#define MSG_MISSING_ROWNODE "Impossible de trouver le noeud de la ligne %d"
+#define MSG_MIS_TAG_LIST "Liste des balises colonne manquante"
+#define MSG_MUL_MAKECOL_ERR "Erreur logique dans TABMUL::MakeCol"
+#define MSG_NAME_CONV_ERR "Erreur de convertion du nom de noeud"
+#define MSG_NEW_DOC_FAILED "Impossible de créer le nouveau document"
+#define MSG_NEW_RETURN_NULL "NULL renvoyé par New dans PlugEvalLike"
+#define MSG_NEXT_FILE_ERROR "Erreur en recherche du fichier suivant. rc=%s"
+#define MSG_NONCONT_EXCEPT "Exception non-continuable"
+#define MSG_NOP_ZLIB_INDEX "L'indexage d'une table zlib non optimisée est impossible"
+#define MSG_NOT_A_DBF_FILE "Le fichier n'a pas le format dBASE dbf "
+#define MSG_NOT_FIXED_LEN "Fichier %s non fixe, len=%d lrecl=%d"
+#define MSG_NO_0DH_HEAD "0DH manquant en fin d'en-tête (dbc=%d)"
+#define MSG_NO_ACTIVE_DB "Pas de base de données active"
+#define MSG_NO_CHAR_FROM "Conversion de type %d en caractères impossible"
+#define MSG_NO_DATE_FMT "Pas de format date pour le valblock de type %d"
+#define MSG_NO_DEF_FNCCOL "Colonne fonction par défaut introuvable"
+#define MSG_NO_DEF_PIVOTCOL "Colonne pivot par défaut introuvable"
+#define MSG_NO_DIR_INDX_RD "Pas d'accès directe des tables %s"
+#define MSG_NO_FEAT_SUPPORT "%s non supporté dans cette version"
+#define MSG_NO_FLD_FORMAT "Format absent pour le champs %d de %s"
+#define MSG_NO_FORMAT_COL "Type COLUMN informattable"
+#define MSG_NO_FORMAT_TYPE "Le format ne peut pas être défini à partir du type %d"
+#define MSG_NO_INDEX_READ "Pas d'accès directe des tables multiples"
+#define MSG_NO_KEY_COL "Pas de colonne clé trouvée"
+#define MSG_NO_KEY_UPDATE "Le nom des clés ne peut pas être modifié"
+#define MSG_NO_MAP_INSERT "MAP incompatible avec Insert"
+#define MSG_NO_MATCHING_COL "Pas de colonne correspondant à %s dans %s"
+#define MSG_NO_MATCH_COL "Colonne correspondante introuvable"
+#define MSG_NO_MEMORY "Mémoire pleine"
+#define MSG_NO_MODE_PADDED "Mode non supporté pour les fichiers 'padded'"
+#define MSG_NO_MUL_VCT "Les tables VCT ne peuvent pas être multiples"
+#define MSG_NO_ODBC_DELETE "Delete ne devrait pas être appelé pour les tables ODBC"
+#define MSG_NO_ODBC_DIRECT "Accès directe des tables ODBC non encore implémenté"
+#define MSG_NO_ODBC_MUL "Multiple(2) non supporté pour les tables ODBC"
+#define MSG_NO_ODBC_SPECOL "Pas de colonne spéciale ODBC"
+#define MSG_NO_PART_DEL "Delete partiel des fichier %s impossible"
+#define MSG_NO_PART_MAP "Mapping partiel non implémenté pour cet OS"
+#define MSG_NO_PAR_BLK_INS "Insertion de bloc partiel impossible"
+#define MSG_NO_PIV_DIR_ACC "Pas d'accès directe aux tables PIVOT"
+#define MSG_NO_READ_32 "Lecture de 32 octets impossible"
+#define MSG_NO_RECOV_SPACE "Espace non recouvrable dans le fichier index"
+#define MSG_NO_ROWID_FOR_AM "Accès direct impossible de ROWID pour les tables de type %s"
+#define MSG_NO_ROW_NODE "Le nom du Rownode n'est pas défini"
+#define MSG_NO_SECTION_NAME "Nom de section manquant"
+#define MSG_NO_SEC_UPDATE "Les noms de section ne peuvent pas être modifiés"
+#define MSG_NO_SETPOS_YET "SetPos pas encore implémenté pour les fichier %s"
+#define MSG_NO_SPEC_COL "Pas de colonne spéciales MYSQL"
+#define MSG_NO_SUB_VAL "Pas de sous-value d'un tableau de type %d"
+#define MSG_NO_TABCOL_DATA "Pas de données pour la table %s colonne %s"
+#define MSG_NO_TABLE_DEL "Delete non autorisé pour les tables %s "
+#define MSG_NO_TAB_DATA "Pas de données pour la table %s"
+#define MSG_NO_VCT_DELETE "Délétion Partielle non implémentée pour les fichiers VCT"
+#define MSG_NO_ZIP_DELETE "Delete sur fichier Zip non encore implementé"
+#define MSG_OPENING "Ouverture"
+#define MSG_OPEN_EMPTY_FILE "Ouverture du fichier vide %s: %s"
+#define MSG_OPEN_ERROR "Erreur d'ouverture %d en mode %d sur %s: "
+#define MSG_OPEN_ERROR_IS "Erreur à l'ouverture de %s: %s"
+#define MSG_OPEN_MODE_ERROR "Erreur d'ouverture(%s) %d sur %s"
+#define MSG_OPEN_STRERROR "Erreur à l'ouverture: %s"
+#define MSG_OPTBLK_RD_ERR "Erreur à la lecture d'un bloc optimisation: %s"
+#define MSG_OPTBLK_WR_ERR "Erreur à l'écriture d'un bloc optimisation: %s"
+#define MSG_OPTIMIZING "Optimisation de "
+#define MSG_OPT_BMAP_RD_ERR "Erreur en lecture des bitmaps d'optimisation: %s"
+#define MSG_OPT_BMAP_WR_ERR "Erreur en écriture des bitmaps d'optimisation: %s"
+#define MSG_OPT_CANCELLED "Optimisation interrompue par l'utilisateur"
+#define MSG_OPT_DVAL_RD_ERR "Erreur en lecture des valeurs distinctes: %s"
+#define MSG_OPT_DVAL_WR_ERR "Erreur en écriture des valeurs distinctes: %s"
+#define MSG_OPT_HEAD_RD_ERR "Erreur en lecture de l'entête du fichier opt: %s"
+#define MSG_OPT_HEAD_WR_ERR "Erreur en écriture de l'entête du fichier opt: %s"
+#define MSG_OPT_LOGIC_ERR "Erreur logique dans SetBitmap, i=%d"
+#define MSG_OPT_MAX_RD_ERR "Erreur en lecture des valeurs maxi: %s"
+#define MSG_OPT_MAX_WR_ERR "Erreur en écriture des valeurs maxi: %s"
+#define MSG_OPT_MIN_RD_ERR "Erreur en lecture des valeurs mini: %s"
+#define MSG_OPT_MIN_WR_ERR "Erreur en écriture des valeurs mini: %s"
+#define MSG_OPT_NOT_MATCH "Le fichier opt %s n'est pas à jour"
+#define MSG_PAGE_ERROR "Erreur de pagination"
+#define MSG_PARM_CNT_MISS "Disparité du nombre de Paramètres"
+#define MSG_PREC_VBLP_NULL "ARRAY SetPrecision: Vblp est NULL"
+#define MSG_PRIV_INSTR "Instruction privilégiée"
+#define MSG_PROCADD_ERROR "Erreur %d sur l'adresse de %s"
+#define MSG_QUERY_CANCELLED "Requête interrompue par l'utilisateur"
+#define MSG_RANGE_NO_JOIN "Range non compatible avec les index de jointure"
+#define MSG_RC_READING "rc=%d en lecture de la table %s"
+#define MSG_READY "Prêt"
+#define MSG_READ_ERROR "Erreur en lecture sur %s: %s"
+#define MSG_READ_ONLY "Cette table protégée en lecture seule ne peut être modifiée"
+#define MSG_READ_SEEK_ERROR "Erreur de recherche en lecture: %s"
+#define MSG_REGISTER_ERR "Enregistrement NS impossible, préfix='%s' et href='%s'"
+#define MSG_REMOVE_ERROR "Erreur en supprimant %s: %s"
+#define MSG_RENAME_ERROR "Erreur renommant %s en %s: %s"
+#define MSG_ROWID_NOT_IMPL "RowNumber non implémenté pour les tables de type %s"
+#define MSG_SEC_KEY_FIRST "Les sections et clés doivent être insérées en premier"
+#define MSG_SEC_NAME_FIRST "Le nom de section doit être en tête de liste en insertion"
+#define MSG_SEP_IN_FIELD "Le champ %d contient le caractère séparateur"
+#define MSG_SEQUENCE_ERROR "HSTMT: Allocation hors séquence"
+#define MSG_SETEOF_ERROR "Erreur %d dans SetEndOfFile"
+#define MSG_SETRECPOS_NIY "SetRecpos non implémenté pour ce type de table"
+#define MSG_SET_STR_TRUNC "SetValue: Chaîne de caractères tronquée"
+#define MSG_SFP_ERROR "Erreur sur SetFilePointer: %s"
+#define MSG_SHARED_LIB_ERR "Erreur au chargement de la librairie partagée %s: %s"
+#define MSG_SINGLE_STEP "Pas à pas"
+#define MSG_SORTING_VAL "Tri de %d valeurs"
+#define MSG_SPCOL_READONLY "La colonne spéciale %s est en lecture seulement"
+#define MSG_SQL_CONF_ERROR "Erreur SQL: SQL_CONFORMANCE"
+#define MSG_SRCH_CLOSE_ERR "Erreur à la fermeture de l'Handle de recherche"
+#define MSG_SRC_TABLE_UNDEF "La table source n'est pas définie"
+#define MSG_STACK_OVERFLOW "Dépassement de capacité de la pile"
+#define MSG_TABDIR_READONLY "Les tables DIR sont en lecture seulement"
+#define MSG_TABLE_NOT_OPT "Table non optimisable"
+#define MSG_TABLE_NO_INDEX "La table %s n'est pas indexable"
+#define MSG_TABLE_READ_ONLY "Les tables %s sont en lecture seulement "
+#define MSG_TABMUL_READONLY "Les tables multiples sont en lecture seulement"
+#define MSG_TOO_MANY_FIELDS "Trop de champs ligne %d de %s"
+#define MSG_TOO_MANY_JUMPS "Trop de niveaux de saut"
+#define MSG_TOO_MANY_KEYS "Trop de clés (%d)"
+#define MSG_TO_BLK_IS_NULL "To Blk est nul"
+#define MSG_TRUNCATE_ERROR "Erreur en troncation: %s"
+#define MSG_TRUNC_BY_ESTIM "Tronqué par l'option Estimate"
+#define MSG_TYPE_MISMATCH "Clé et source ne sont pas du même type"
+#define MSG_TYPE_VALUE_ERR "Colonne %s: disparité type(%s)/valeur(%s)"
+#define MSG_UNBALANCE_QUOTE "Appostrophe en trop ligne %d"
+#define MSG_UNDEFINED_AM "COLBLK %s: méthode d'accès indéfinie"
+#define MSG_UNKNOWN_EXCPT "Exception non répertoriée"
+#define MSG_UNMATCH_FIL_ARG "Argument de filtre dépareillé"
+#define MSG_UPDATE_ERROR "Erreur en Update sur %s"
+#define MSG_UPD_ZIP_NOT_IMP "Mise à jour des tables ZDOS non encore implementé"
+#define MSG_VALSTR_TOO_LONG "Valeur %s trop longue pour une chaîne de longueur %d"
+#define MSG_VALTYPE_NOMATCH "Disparité types de valeur"
+#define MSG_VALUE_ERROR "Colonne %s: bloc valeur nul"
+#define MSG_VALUE_TOO_BIG "Valeur %d trop grande pour la colonne %s"
+#define MSG_VALUE_TOO_LONG "Valeur %s trop longue pour la colonne %s de longueur %d"
+#define MSG_VAL_ALLOC_ERR "Allocation impossible du noeud valeur"
+#define MSG_VIR_NO_DELETE "Delete impossible sur les tables %s"
+#define MSG_VIR_READ_ONLY "Les tables virtuelles %s sont en lecture seulement"
+#define MSG_VOID_FIRST_ARG "Le premier argument ne doit pas être vide"
+#define MSG_WORK_AREA "Espace de travail: %s"
+#define MSG_WRITE_SEEK_ERR "Erreur de recherche en écriture: %s"
+#define MSG_WRITE_STRERROR "Erreur en écriture sur %s: %s"
+#define MSG_WRITING "Ecriture"
+#define MSG_WRITING_ERROR "Erreur à l'écriture de %s: %s"
+#define MSG_WS_CONV_ERR "Erreur de convertion de %s en WS"
+#define MSG_XCOL_MISMATCH "La colonne %s ne correspond pas à l'index"
+#define MSG_XFILE_READERR "Erreur %d en lisant le fichier index"
+#define MSG_XFILE_WRITERR "Erreur en écrivant le fichier index: %s"
+#define MSG_XMLTAB_INIT_ERR "Erreur d'initialisation de la table XML"
+#define MSG_XML_INIT_ERROR "Erreur d'initialisation du nouveau fichier XML"
+#define MSG_XPATH_CNTX_ERR "Le nouveau contexte XPath ne peut être créé"
+#define MSG_XPATH_EVAL_ERR "Impossible d'évaluer l'emplacement xpath '%s'"
+#define MSG_XPATH_NOT_SUPP "Xpath non supporté colonne %s"
diff --git a/storage/connect/global.h b/storage/connect/global.h
index e02a3731be3..88e5094d6d2 100644
--- a/storage/connect/global.h
+++ b/storage/connect/global.h
@@ -24,13 +24,13 @@
#endif
#if defined(XMSG)
-#error Option XMSG is not yet fully implemented
+//#error Option XMSG is not yet fully implemented
// Definition used to read messages from message file.
#include "msgid.h"
#define MSG(I) PlugReadMessage(NULL, MSG_##I, #I)
#define STEP(I) PlugReadMessage(g, MSG_##I, #I)
#elif defined(NEWMSG)
-#error Option NEWMSG is not yet fully implemented
+//#error Option NEWMSG is not yet fully implemented
// Definition used to get messages from resource.
#include "msgid.h"
#define MSG(I) PlugGetMessage(NULL, MSG_##I)
diff --git a/storage/connect/ha_connect.cc b/storage/connect/ha_connect.cc
index 3aea9e13ac5..9919af4844e 100644
--- a/storage/connect/ha_connect.cc
+++ b/storage/connect/ha_connect.cc
@@ -179,25 +179,25 @@ extern "C" {
char slash= '/';
#endif // !WIN32
-// int trace= 0; // The general trace value
- int xconv= 0; // The type conversion option
- int zconv= SZCONV; // The text conversion size
+// int trace= 0; // The general trace value
+ ulong xconv= 0; // The type conversion option
+ int zconv= 0; // The text conversion size
} // extern "C"
#if defined(XMAP)
- bool xmap= false;
+ my_bool xmap= false;
#endif // XMAP
- uint worksize= SZWORK;
+// uint worksize= 0;
ulong ha_connect::num= 0;
//int DTVAL::Shift= 0;
/* CONNECT system variables */
-static int conv_size= SZCONV;
-static uint work_size= SZWORK;
-static ulong type_conv= 0;
+//atic int conv_size= 0;
+//atic uint work_size= 0;
+//atic ulong type_conv= 0;
#if defined(XMAP)
-static my_bool indx_map= 0;
+//atic my_bool indx_map= 0;
#endif // XMAP
#if defined(XMSG)
extern "C" {
@@ -215,6 +215,8 @@ bool CheckSelf(PGLOBAL g, TABLE_SHARE *s, const char *host,
const char *db, char *tab, const char *src, int port);
bool ExactInfo(void);
USETEMP UseTemp(void);
+uint GetWorkSize(void);
+void SetWorkSize(uint);
static PCONNECT GetUser(THD *thd, PCONNECT xp);
static PGLOBAL GetPlug(THD *thd, PCONNECT& lxp);
@@ -280,7 +282,13 @@ static MYSQL_THDVAR_ENUM(
1, // def (AUTO)
&usetemp_typelib); // typelib
-#if defined(XMSG)
+// Size used for g->Sarea_Size
+static MYSQL_THDVAR_UINT(work_size,
+ PLUGIN_VAR_RQCMDARG,
+ "Size of the CONNECT work area.",
+ NULL, NULL, SZWORK, SZWMIN, UINT_MAX, 1);
+
+#if defined(XMSG) || defined(NEWMSG)
const char *language_names[]=
{
"default", "english", "french", NullS
@@ -300,7 +308,7 @@ static MYSQL_THDVAR_ENUM(
NULL, // update
1, // def (ENGLISH)
&language_typelib); // typelib
-#endif // XMSG
+#endif // XMSG || NEWMSG
/***********************************************************************/
/* Function to export session variable values to other source files. */
@@ -308,13 +316,31 @@ static MYSQL_THDVAR_ENUM(
extern "C" int GetTraceValue(void) {return THDVAR(current_thd, xtrace);}
bool ExactInfo(void) {return THDVAR(current_thd, exact_info);}
USETEMP UseTemp(void) {return (USETEMP)THDVAR(current_thd, use_tempfile);}
-#if defined(XMSG)
+uint GetWorkSize(void) {return THDVAR(current_thd, work_size);}
+void SetWorkSize(uint n)
+{
+ // Changing the session variable value seems to be impossible here
+ // and should be done in a check function
+ push_warning(current_thd, Sql_condition::WARN_LEVEL_WARN, 0,
+ "Work size too big, try setting a smaller value");
+} // end of SetWorkSize
+#if defined(XMSG) || defined(NEWMSG)
extern "C" const char *msglang(void)
{
return language_names[THDVAR(current_thd, msg_lang)];
} // end of msglang
-#endif // XMSG
+#else // !XMSG && !NEWMSG
+extern "C" const char *msglang(void)
+{
+#if defined(FRENCH)
+ return "french";
+#else // DEFAULT
+ return "english";
+#endif // DEFAULT
+} // end of msglang
+#endif // !XMSG && !NEWMSG
+#if 0
/***********************************************************************/
/* Global variables update functions. */
/***********************************************************************/
@@ -332,21 +358,57 @@ static void update_connect_xconv(MYSQL_THD thd,
xconv= (int)(*(ulong *)var_ptr= *(ulong *)save);
} // end of update_connect_xconv
-static void update_connect_worksize(MYSQL_THD thd,
- struct st_mysql_sys_var *var,
- void *var_ptr, const void *save)
-{
- worksize= (uint)(*(ulong *)var_ptr= *(ulong *)save);
-} // end of update_connect_worksize
-
#if defined(XMAP)
static void update_connect_xmap(MYSQL_THD thd,
struct st_mysql_sys_var *var,
void *var_ptr, const void *save)
{
- xmap= (bool)(*(my_bool *)var_ptr= *(my_bool *)save);
+ xmap= (my_bool)(*(my_bool *)var_ptr= *(my_bool *)save);
} // end of update_connect_xmap
#endif // XMAP
+#endif // 0
+
+#if 0 // (was XMSG) Unuseful because not called for default value
+static void update_msg_path(MYSQL_THD thd,
+ struct st_mysql_sys_var *var,
+ void *var_ptr, const void *save)
+{
+ char *value= *(char**)save;
+ char *old= *(char**)var_ptr;
+
+ if (value)
+ *(char**)var_ptr= my_strdup(value, MYF(0));
+ else
+ *(char**)var_ptr= 0;
+
+ my_free(old);
+} // end of update_msg_path
+
+static int check_msg_path (MYSQL_THD thd, struct st_mysql_sys_var *var,
+ void *save, struct st_mysql_value *value)
+{
+ const char *path;
+ char buff[512];
+ int len= sizeof(buff);
+
+ path= value->val_str(value, buff, &len);
+
+ if (path && *path != '*') {
+ /* Save a pointer to the name in the
+ 'file_format_name_map' constant array. */
+ *(char**)save= my_strdup(path, MYF(0));
+ return(0);
+ } else {
+ push_warning_printf(thd,
+ Sql_condition::WARN_LEVEL_WARN,
+ ER_WRONG_ARGUMENTS,
+ "CONNECT: invalid message path");
+ } // endif path
+
+ *(char**)save= NULL;
+ return(1);
+} // end of check_msg_path
+#endif // 0
/***********************************************************************/
/* The CONNECT handlerton object. */
@@ -6237,15 +6299,15 @@ struct st_mysql_storage_engine connect_storage_engine=
/***********************************************************************/
// Size used when converting TEXT columns to VARCHAR
#if defined(_DEBUG)
-static MYSQL_SYSVAR_INT(conv_size, conv_size,
+static MYSQL_SYSVAR_INT(conv_size, zconv,
PLUGIN_VAR_RQCMDARG, // opt
"Size used when converting TEXT columns.",
- NULL, update_connect_zconv, SZCONV, 0, 65500, 1);
+ NULL, NULL, SZCONV, 0, 65500, 1);
#else
-static MYSQL_SYSVAR_INT(conv_size, conv_size,
+static MYSQL_SYSVAR_INT(conv_size, zconv,
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY, // opt
"Size used when converting TEXT columns.",
- NULL, update_connect_zconv, SZCONV, 0, 65500, 1);
+ NULL, NULL, SZCONV, 0, 65500, 1);
#endif
/**
@@ -6268,45 +6330,41 @@ TYPELIB xconv_typelib=
#if defined(_DEBUG)
static MYSQL_SYSVAR_ENUM(
type_conv, // name
- type_conv, // varname
+ xconv, // varname
PLUGIN_VAR_RQCMDARG, // opt
"Unsupported types conversion.", // comment
NULL, // check
- update_connect_xconv, // update function
+ NULL, // update function
0, // def (no)
&xconv_typelib); // typelib
#else
static MYSQL_SYSVAR_ENUM(
type_conv, // name
- type_conv, // varname
+ xconv, // varname
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
"Unsupported types conversion.", // comment
NULL, // check
- update_connect_xconv, // update function
+ NULL, // update function
0, // def (no)
&xconv_typelib); // typelib
#endif
#if defined(XMAP)
// Using file mapping for indexes if true
-static MYSQL_SYSVAR_BOOL(indx_map, indx_map, PLUGIN_VAR_RQCMDARG,
- "Using file mapping for indexes",
- NULL, update_connect_xmap, 0);
+static MYSQL_SYSVAR_BOOL(indx_map, xmap, PLUGIN_VAR_RQCMDARG,
+ "Using file mapping for indexes", NULL, NULL, 0);
#endif // XMAP
#if defined(XMSG)
static MYSQL_SYSVAR_STR(errmsg_dir_path, msg_path,
+// PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_MEMALLOC,
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
"Path to the directory where are the message files",
- NULL, NULL, "");
+// check_msg_path, update_msg_path,
+ NULL, NULL,
+ "../../../../storage/connect/"); // for testing
#endif // XMSG
-// Size used for g->Sarea_Size
-static MYSQL_SYSVAR_UINT(work_size, work_size,
- PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
- "Size of the CONNECT work area.",
- NULL, update_connect_worksize, SZWORK, SZWMIN, UINT_MAX, 1);
-
static struct st_mysql_sys_var* connect_system_variables[]= {
MYSQL_SYSVAR(xtrace),
MYSQL_SYSVAR(conv_size),
@@ -6317,8 +6375,10 @@ static struct st_mysql_sys_var* connect_system_variables[]= {
MYSQL_SYSVAR(work_size),
MYSQL_SYSVAR(use_tempfile),
MYSQL_SYSVAR(exact_info),
-#if defined(XMSG)
+#if defined(XMSG) || defined(NEWMSG)
MYSQL_SYSVAR(msg_lang),
+#endif // XMSG || NEWMSG
+#if defined(XMSG)
MYSQL_SYSVAR(errmsg_dir_path),
#endif // XMSG
NULL
diff --git a/storage/connect/msgid.h b/storage/connect/msgid.h
index 7a9f9438472..4496994afa3 100644
--- a/storage/connect/msgid.h
+++ b/storage/connect/msgid.h
@@ -1,1013 +1,320 @@
-#define MSG_BAD_ARRAY_VAL 239
-#define MSG_BAD_SET_CASE 240
-#define MSG_MISSING_ARG 241
-#define MSG_NO_SUB_VAL 242
-#define MSG_PREC_VBLP_NULL 243
-#define MSG_X_ON_TAB 244
-#define MSG_BAD_COLCRT_ARG 245
-#define MSG_BAD_COLSIZE 246
-#define MSG_BAD_COL_ENTRY 247
-#define MSG_BAD_COL_TYPE 248
-#define MSG_BAD_FILE_LIST 249
-#define MSG_BAD_GETVIEW_RET 250
-#define MSG_BAD_OFFSET_VAL 251
-#define MSG_BAD_TABLE_LINE 252
-#define MSG_BAD_TABLE_TYPE 253
-#define MSG_COLSEC_TOO_BIG 254
-#define MSG_COL_HAS_NO_DEF 255
-#define MSG_COL_NOT_CODED 256
-#define MSG_ERASED 257
-#define MSG_ERASE_FAILED 258
-#define MSG_INDEX_DROPPED 259
-#define MSG_INDX_ALL_DROP 260
-#define MSG_INV_QUALIFIER 261
-#define MSG_LOADING_DB 262
-#define MSG_NO_COL_FOUND 263
-#define MSG_NO_COL_SECTION 264
-#define MSG_NO_FEAT_SUPPORT 265
-#define MSG_NO_FILE_LIST 266
-#define MSG_NO_INDEX 267
-#define MSG_NO_MORE_VAR 268
-#define MSG_NO_MUL_VCT 269
-#define MSG_NO_OPT_COLUMN 270
-#define MSG_NO_SUCH_INDEX 271
-#define MSG_NO_SUCH_TABLE 272
-#define MSG_NO_TABLE_INDEX 273
-#define MSG_OPEN_ERROR_ON 274
-#define MSG_RECORD_ERROR 275
-#define MSG_SUBSET_ERROR 276
-#define MSG_TABLE_ALREADY 277
-#define MSG_TABLE_NOT_IN_DB 278
-#define MSG_TABLE_NO_OPT 279
-#define MSG_TAB_NOT_LOADED 280
-#define MSG_TAB_NOT_SPEC 281
-#define MSG_TB_VW_NOTIN_DB 282
-#define MSG_TOO_MANY_COLTAB 283
-#define MSG_TOO_MANY_JUMPS 284
-#define MSG_TOO_MANY_TABLES 285
-#define MSG_VIEW_ALREADY 286
-#define MSG_VIEW_NOT_IN_DB 287
-#define MSG_WRITE_ERROR 288
-#define MSG_XDB_DEL_ERROR 289
-#define MSG_COL_NOTIN_GRPBY 290
-#define MSG_DOMAIN_ERROR 291
-#define MSG_NO_TOKEN_DB 292
-#define MSG_SPCOL_READONLY 293
-#define MSG_TYPE_VALUE_ERR 294
-#define MSG_UNDEFINED_AM 295
-#define MSG_VALUE_ERROR 296
-#define MSG_SORTING_VAL 297
-#define MSG_NAME_CONV_ERR 298
-#define MSG_WS_CONV_ERR 299
-#define MSG_BAD_COMPARE_OP 300
-#define MSG_BAD_EXP_ARGTYPE 301
-#define MSG_BAD_IN_ARGTYPE 302
-#define MSG_BAD_SUBSEL_IN_X 303
-#define MSG_IN_ARGTYPE_MISM 304
-#define MSG_ROW_ARGNB_ERR 305
-#define MSG_TYPE_CONV_ERROR 306
-#define MSG_NO_MAP_INSERT 307
-#define MSG_SEEK_ERROR 308
-#define MSG_BAD_DBF_FILE 309
-#define MSG_BAD_DBF_REC 310
-#define MSG_BAD_DBF_TYPE 311
-#define MSG_BAD_HEADER 312
-#define MSG_BAD_HEAD_END 313
-#define MSG_BAD_LRECL 314
-#define MSG_BIN_MODE_FAIL 315
-#define MSG_DBASE_FILE 316
-#define MSG_FOXPRO_FILE 317
-#define MSG_NOT_A_DBF_FILE 318
-#define MSG_NO_0DH_HEAD 319
-#define MSG_NO_DBF_INSERT 320
-#define MSG_NO_READ_32 321
-#define MSG_NO_MODE_PADDED 322
-#define MSG_SETEOF_ERROR 323
-#define MSG_REMOVE_ERROR 324
-#define MSG_RENAME_ERROR 325
-#define MSG_BAD_HEADER_VAL 326
-#define MSG_BAD_MAX_NREC 327
-#define MSG_HEAD_OPEN_ERROR 328
-#define MSG_HEAD_READ_ERROR 329
-#define MSG_HEAD_WRITE_ERR 330
-#define MSG_MAP_VEC_ONLY 331
-#define MSG_MKEMPTY_NIY 332
-#define MSG_BAD_BLK_SIZE 333
-#define MSG_BAD_LINE_LEN 334
-#define MSG_FUNC_ERR_S 335
-#define MSG_INV_RAND_ACC 336
-#define MSG_NOP_ZLIB_INDEX 337
-#define MSG_NO_PART_DEL 338
-#define MSG_NO_PAR_BLK_INS 339
-#define MSG_NO_SETPOS_YET 340
-#define MSG_BAD_ARRAY_OPER 341
-#define MSG_BAD_FILTER 342
-#define MSG_BAD_FILTER_CONV 343
-#define MSG_BAD_HAV_FILTYPE 344
-#define MSG_BAD_TYPE_LIKE 345
-#define MSG_ILL_FILTER_CONV 346
-#define MSG_IN_WITHOUT_SUB 347
-#define MSG_UNMATCH_FIL_ARG 348
-#define MSG_VALUE_NOT_ALLOC 349
-#define MSG_VOID_FIRST_ARG 350
-#define MSG_DISTINCT_ERROR 351
-#define MSG_INV_FNC_BUFTYPE 352
-#define MSG_INV_SET_SUBTYPE 353
-#define MSG_NO_AGGR_FUNC 354
-#define MSG_APP_STILL_ACTIV 355
-#define MSG_AREAFILE_NOTFND 356
-#define MSG_BAD_LANG_SIZE 357
-#define MSG_BAD_PARAMETERS 358
-#define MSG_BAD_PARAM_TYPE 359
-#define MSG_GRAM_ALLOC_ERR 360
-#define MSG_GRAM_MISMATCH 361
-#define MSG_GRAM_SUBSET_ERR 362
-#define MSG_INVALID_BIP 363
-#define MSG_LANGUAGE_QUIT 364
-#define MSG_LANG_ALREADY_UP 365
-#define MSG_LANG_BAD_SAVE 366
-#define MSG_LANG_NOT_FREED 367
-#define MSG_LANG_SAVED 368
-#define MSG_LANG_WR_LEN_ERR 369
-#define MSG_LDF_ALLOC_ERROR 370
-#define MSG_LDF_W_LEN_ERROR 371
-#define MSG_LNG_NOT_IN_LIST 372
-#define MSG_METAFILE_NOTFND 373
-#define MSG_NODE_SUBSET_ERR 374
-#define MSG_NO_LANG_TO_QUIT 375
-#define MSG_NO_MORE_LANG 376
-#define MSG_ONE_LANG_YET 377
-#define MSG_ON_LANGUAGE 378
-#define MSG_OPEN_W_ERROR 379
-#define MSG_RULE_SUBSET_ERR 380
-#define MSG_UP_LANGUAGE 381
-#define MSG_VM_LANG 382
-#define MSG_BUILD_INDEX 383
-#define MSG_CD_ORDER_ERROR 384
-#define MSG_DSORT_LOG_ERROR 385
-#define MSG_JOIN_KEY_NO_COL 386
-#define MSG_KEY_ALLOC_ERROR 387
-#define MSG_LOGICAL_ERROR 388
-#define MSG_MEM_ALLOC_ERR 389
-#define MSG_QUERY_CANCELLED 390
-#define MSG_RC_READING 391
-#define MSG_REORDER_INDEX 392
-#define MSG_SORTING_INDEX 393
-#define MSG_SORT_JOIN_INDEX 394
-#define MSG_TOO_MANY_KEYS 395
-#define MSG_TYPE_MISMATCH 396
-#define MSG_REGISTER_ERR 397
-#define MSG_XPATH_CNTX_ERR 398
-#define MSG_XPATH_EVAL_ERR 399
-#define MSG_API_CONF_ERROR 400
-#define MSG_BAD_HANDLE_VAL 401
-#define MSG_COL_NUM_MISM 402
-#define MSG_CONNECT_CANCEL 403
-#define MSG_INV_COLUMN_TYPE 404
-#define MSG_NO_CONNECT_ADDR 405
-#define MSG_NO_TABCOL_DATA 406
-#define MSG_NO_TAB_DATA 407
-#define MSG_SEQUENCE_ERROR 408
-#define MSG_SQL_CONF_ERROR 409
-#define MSG_CONNECTED 410
-#define MSG_CONN_CLOSED 411
-#define MSG_CONN_CREATED 412
-#define MSG_CONN_DROPPED 413
-#define MSG_CONN_OPEN 414
-#define MSG_CONN_SUC_OPEN 415
-#define MSG_DISCONNECTED 416
-#define MSG_IS_NOT_CONN 417
-#define MSG_NAME_IS_USED 418
-#define MSG_NO_SUCH_SERVER 419
-#define MSG_BAD_COLIST_ITEM 420
-#define MSG_BAD_COLIST_TYPE 421
-#define MSG_BAD_COL_IN_FILT 422
-#define MSG_BAD_FUNC_ARG 423
-#define MSG_BAD_FUNC_ARGTYP 424
-#define MSG_BAD_OPERATOR 425
-#define MSG_BAD_PROJNUM 426
-#define MSG_BAD_SEM_DOMAIN 427
-#define MSG_CLN_NOT_IN_JOIN 428
-#define MSG_COLIST_BAD_TYPE 429
-#define MSG_COLUMN_ERROR 430
-#define MSG_COL_NOT_EXIST 431
-#define MSG_COL_NOT_FOUND 432
-#define MSG_COL_NOT_IN_JOIN 433
-#define MSG_DUPLICAT_COUNT 434
-#define MSG_DUP_PROJNUM 435
-#define MSG_FILTER_ATTACH 436
-#define MSG_GRBY_TAB_NOTIMP 437
-#define MSG_NON_DUP_HAVING 438
-#define MSG_NOT_IMPL_JOIN 439
-#define MSG_NOT_IMPL_SET 440
-#define MSG_NO_COL_IN_TABLE 441
-#define MSG_NO_MULT_HAVING 442
-#define MSG_NO_TABLE_DESC 443
-#define MSG_REMOVE_NOT_IMPL 444
-#define MSG_TYPE_TO_VERIFY 445
-#define MSG_UNDEF_COL_COUNT 446
-#define MSG_UNKNOWN_NAME 447
-#define MSG_WRONG_COL_NUM 448
-#define MSG_ALL_DELETED 449
-#define MSG_BAD_LOCALE 450
-#define MSG_BAD_QUERY_TYPE 451
-#define MSG_BUFSIZE_ERROR 452
-#define MSG_END_OF_DELETE 453
-#define MSG_END_OF_INSERT 454
-#define MSG_END_OF_QUERY 455
-#define MSG_END_OF_UPDATE 456
-#define MSG_NCOL_GT_MAXCOL 457
-#define MSG_OPEN_ERROR_IS 458
-#define MSG_SET_LOCALE 459
-#define MSG_X_ARG_ADDED 460
-#define MSG_ALG_CHOICE_AUTO 461
-#define MSG_ALG_CHOICE_BAD 462
-#define MSG_ALG_CHOICE_QRY 463
-#define MSG_ALG_CURLY_BRK 464
-#define MSG_ALTER_DB_ERR 465
-#define MSG_APPL_IS_ACTIVE 466
-#define MSG_APPL_NOT_INIT 467
-#define MSG_AVGLEN_ERROR 468
-#define MSG_BAD_DEF_TYPE 469
-#define MSG_BAD_DIST_JN_FIL 470
-#define MSG_BAD_DIST_JOIN 471
-#define MSG_BAD_DOM_COL_DEF 472
-#define MSG_BAD_FIELD_FMT 473
-#define MSG_BAD_OUTER_JOIN 474
-#define MSG_BAD_SETTINGS 475
-#define MSG_BAD_XMODE_VAL 476
-#define MSG_DATABASE_ACTIVE 477
-#define MSG_DATABASE_LOADED 478
-#define MSG_DB_ALREADY_DEF 479
-#define MSG_DB_ALTERED 480
-#define MSG_DB_CREATED 481
-#define MSG_DB_REMOVED 482
-#define MSG_DB_STOPPED 483
-#define MSG_DIS_NOHEAD_JOIN 484
-#define MSG_DROP_DB_ERR 485
-#define MSG_DUP_COL_NAME 486
-#define MSG_EXECUTING 487
-#define MSG_EXEC_MODE_SET 488
-#define MSG_INDEX_CREATED 489
-#define MSG_INV_DATA_PATH 490
-#define MSG_INV_WORK_PATH 491
-#define MSG_IN_USE 492
-#define MSG_LIC_NO_MYSQL 493
-#define MSG_LINE_LENGTH 494
-#define MSG_LINE_MAXLIN 495
-#define MSG_LINE_MAXRES 496
-#define MSG_LINE_MAXTMP 497
-#define MSG_MAC_WIN_ONLY 498
-#define MSG_MALLOC_NULL 499
-#define MSG_MAP_NO_MORE 500
-#define MSG_MISSING_COL_DEF 501
-#define MSG_MISSING_CONNECT 502
-#define MSG_MISSING_SERV_DB 503
-#define MSG_MISS_NAME_LRECL 504
-#define MSG_MISS_TABLE_LIST 505
-#define MSG_MISS_VCT_ELMT 506
-#define MSG_NEW_CHAR_NULL 507
-#define MSG_NODEF_FROM_VIEW 508
-#define MSG_NO_COL_ADDING 509
-#define MSG_NO_COL_DEF_AS 510
-#define MSG_NO_DATABASE 511
-#define MSG_NO_FULL_JOIN 512
-#define MSG_NO_FUL_OUT_JOIN 513
-#define MSG_NO_HEAD_JOIN 514
-#define MSG_NO_ODBC_COL 515
-#define MSG_NO_SELECTED_DB 516
-#define MSG_NO_SELF_PIVOT 517
-#define MSG_NULL_QUERY 518
-#define MSG_READY 519
-#define MSG_SEC_NOT_FOUND 520
-#define MSG_SET_OP_NOT_IMPL 521
-#define MSG_TABLE_ALTERED 522
-#define MSG_TABLE_CREATED 523
-#define MSG_TABLE_DROPPED 524
-#define MSG_TDB_NXT_NOT_NUL 525
-#define MSG_TYPE_DEF_MISM 526
-#define MSG_TYPE_RECFM_MISM 527
-#define MSG_VIEW_CREATED 528
-#define MSG_VIEW_DROPPED 529
-#define MSG_ANSWER_TYPE 530
-#define MSG_COPY_BAD_PHASE 531
-#define MSG_LIST 532
-#define MSG_MEM_ALLOC_ERROR 533
-#define MSG_PTR_NOT_FOUND 534
-#define MSG_SEMANTIC_TREE 535
-#define MSG_WRONG_TYPE 536
-#define MSG_ARRAY_ERROR 537
-#define MSG_BAD_EVAL_TYPE 538
-#define MSG_BAD_FILTER_LINK 539
-#define MSG_BAD_IN_ENDING 540
-#define MSG_BAD_IN_STRING 541
-#define MSG_BAD_LIST_TYPE 542
-#define MSG_BAD_ORDER_MODE 543
-#define MSG_BAD_ORDER_TYPE 544
-#define MSG_GROUP_ON_FUNC 545
-#define MSG_GRP_LIST_MISMAT 546
-#define MSG_LINEAR_ERROR 547
-#define MSG_NO_FUNC_ORDER 548
-#define MSG_NO_OP_MODIF 549
-#define MSG_NO_TABLE_LIST 550
-#define MSG_ORDER_TWICE 551
-#define MSG_UNKNOWN_ERROR 552
-#define MSG_VOID_IN_STRING 553
-#define MSG_VOID_ORDER_LIST 554
-#define MSG_ACCESS_VIOLATN 555
-#define MSG_ARRAY_BNDS_EXCD 556
-#define MSG_BREAKPOINT 557
-#define MSG_CONTROL_C_EXIT 558
-#define MSG_DATA_MISALIGN 559
-#define MSG_FLT_BAD_RESULT 560
-#define MSG_FLT_DENORMAL_OP 561
-#define MSG_FLT_INVALID_OP 562
-#define MSG_FLT_OVERFLOW 563
-#define MSG_FLT_STACK_CHECK 564
-#define MSG_FLT_UNDERFLOW 565
-#define MSG_FLT_ZERO_DIVIDE 566
-#define MSG_GUARD_PAGE 567
-#define MSG_ILLEGAL_INSTR 568
-#define MSG_INT_OVERFLOW 569
-#define MSG_INT_ZERO_DIVIDE 570
-#define MSG_INVALID_DISP 571
-#define MSG_INVALID_HANDLE 572
-#define MSG_NEW_RETURN_NULL 573
-#define MSG_NONCONT_EXCEPT 574
-#define MSG_NO_ACTIVE_DB 575
-#define MSG_NO_MEMORY 576
-#define MSG_PAGE_ERROR 577
-#define MSG_PARSING_QUERY 578
-#define MSG_PRIV_INSTR 579
-#define MSG_SINGLE_STEP 580
-#define MSG_SQL_BAD_TYPE 581
-#define MSG_UNKNOWN_EXCPT 582
-#define MSG_WRONG_FUNCTION 583
-#define MSG_BAD_RESULT_TYPE 584
-#define MSG_BUFF_TOO_SMALL 585
-#define MSG_COL_ALLOC_ERROR 586
-#define MSG_DATA_IS_NULL 587
-#define MSG_GET_ERROR 588
-#define MSG_INV_COL_DATATYP 589
-#define MSG_INV_INIPATH 590
-#define MSG_NO_NBLIN_CONT 591
-#define MSG_NO_SERVER_FOUND 592
-#define MSG_TYPES_ERROR 593
-#define MSG_UNDEFINED_PATH 594
-#define MSG_UNKNOWN_PATH 595
-#define MSG_WRONG_DB_LIST 596
-#define MSG_BAD_SPECIAL_CMD 597
-#define MSG_CURSOR_SET 598
-#define MSG_EVAL_EXPIRED 599
-#define MSG_EVAL_ONLY 600
-#define MSG_INV_SPECIAL_CMD 601
-#define MSG_PROGRESS_INFO 602
-#define MSG_PROMPT_CANCEL 603
-#define MSG_ARG_ALREADY_SET 604
-#define MSG_BAD_ARG_NUM 605
-#define MSG_BAD_CHECK_VAL 606
-#define MSG_BAD_EXEC_MODE 607
-#define MSG_BAD_MAX_PARAM 608
-#define MSG_BAD_MAX_SETTING 609
-#define MSG_BAD_USETEMP 610
-#define MSG_BAD_USETEMP_VAL 611
-#define MSG_CHECK_LEVEL 612
-#define MSG_COLS_REDUCED 613
-#define MSG_COLUMN_MISMATCH 614
-#define MSG_COL_NOT_IN_DB 615
-#define MSG_DB_NOT_SPEC 616
-#define MSG_DONE 617
-#define MSG_EXEC_MODE_IS 618
-#define MSG_EXEC_MODE_RESET 619
-#define MSG_HUGE_DEFAULT 620
-#define MSG_INDEX_ONE_SAVE 621
-#define MSG_INDEX_SEP_SAVE 622
-#define MSG_INVALID_OPTION 623
-#define MSG_INV_COL_NUM 624
-#define MSG_INV_INFO_TYPE 625
-#define MSG_INV_RESULT_TYPE 626
-#define MSG_LANG_ACTIVE 627
-#define MSG_MAX_BITMAP 628
-#define MSG_MYSQL_CNC_OFF 629
-#define MSG_MYSQL_CNC_ON 630
-#define MSG_MYSQL_NOT_SUP 631
-#define MSG_MY_CNC_ALREADY 632
-#define MSG_NO_AVAIL_RESULT 633
-#define MSG_NO_HQL_CONV 634
-#define MSG_NO_MYSQL_CONN 635
-#define MSG_NO_UNIX_CATINFO 636
-#define MSG_OPENING 637
-#define MSG_PLUG_NOT_RUN 638
-#define MSG_PROMPT_NIY 639
-#define MSG_QUERY_SAVED 640
-#define MSG_REC_SKIPPED 641
-#define MSG_ROWS_SELECTED 642
-#define MSG_ROWS_TRUNCATED 643
-#define MSG_SLEEP 644
-#define MSG_SPEC_CMD_SEP 645
-#define MSG_SYSTEM_ERROR 646
-#define MSG_UNLOADABLE 647
-#define MSG_UNLOADABLE_PRM 648
-#define MSG_USETEMP_IS 649
-#define MSG_USETEMP_RESET 650
-#define MSG_USETEMP_SET 651
-#define MSG_USING_INDEX 652
-#define MSG_VOID_QUERY 653
-#define MSG_WORK_TOO_SMALL 654
-#define MSG_WRITING_QUERY 655
-#define MSG_X_ARG_SET 656
-#define MSG_BAS_NS_LIST 657
-#define MSG_DOM_NOT_SUPP 658
-#define MSG_AFTER 659
-#define MSG_ARG_OUT_CONTEXT 660
-#define MSG_ARG_OUT_RANGE 661
-#define MSG_ARG_PTR_NOSEM 662
-#define MSG_ARG_PTR_NOSEMS 663
-#define MSG_BAD_ARG_TYPE 664
-#define MSG_ERR_RET_RULE 665
-#define MSG_ERR_RET_TYPE 666
-#define MSG_FUNC_REF_DEL 667
-#define MSG_INV_TOPSEM_CMD 668
-#define MSG_NON_EVAL_SEM 669
-#define MSG_N_FULL_PARSES 670
-#define MSG_PARSE_NULL_SEM 671
-#define MSG_PNODE_RULE 672
-#define MSG_SCAN_NOT_IMP 673
-#define MSG_SEM_BAD_REF 674
-#define MSG_SEM_UNKNOWN 675
-#define MSG_SUBARG_NOSEM 676
-#define MSG_SUBARG_OUTRANGE 677
-#define MSG_SYNTAX_ERROR 678
-#define MSG_TOPSEM_ERROR 679
-#define MSG_UNKN_ERR_CODE 680
-#define MSG_ATTRIBUTE_ERROR 681
-#define MSG_BAD_PHRASE_NB 682
-#define MSG_INV_OPERATOR 683
-#define MSG_NO_LANGUAGE 684
-#define MSG_PIX_ERROR 685
-#define MSG_PIX_TEST_ERROR 686
-#define MSG_PLUG_NOT_INIT 687
-#define MSG_STACK_ERROR 688
-#define MSG_STACK_OVERFLOW 689
-#define MSG_APPL_ACCESSIBLE 690
-#define MSG_APPL_BAD_SAVE 691
-#define MSG_APPL_CREATED 692
-#define MSG_APPL_NOT_LOADED 693
-#define MSG_APPL_QUIT 694
-#define MSG_APPL_SAVED 695
-#define MSG_ARG_NOT_AN_ATTR 696
-#define MSG_ATT_NOT_CASE 697
-#define MSG_ATT_POSCODE_BIG 698
-#define MSG_BAD_EDIT_INIT 699
-#define MSG_BAD_FPARM_NEXT 700
-#define MSG_BAD_PHASE_NUM 701
-#define MSG_BAD_SUBLST_TYPE 702
-#define MSG_BAD_USERBLK_LEN 703
-#define MSG_COPY_INV_TYPE 704
-#define MSG_DEBUG_NOT_ACTIV 705
-#define MSG_DEBUG_SET_INV 706
-#define MSG_DICTIONARY 707
-#define MSG_ENDSTR_MISMATCH 708
-#define MSG_ERROR_NO_PARM 709
-#define MSG_EXECUTION_ERROR 710
-#define MSG_FILE_NOT_FOUND 711
-#define MSG_INPUT 712
-#define MSG_INPUT_KEYBD_YET 713
-#define MSG_INV_CONC_BIP 714
-#define MSG_INV_DOMAIN_TYPE 715
-#define MSG_INV_PARAMETER 716
-#define MSG_INV_PARM_TYPE 717
-#define MSG_INV_TRANSF_USE 718
-#define MSG_INV_TYPE_SPEC 719
-#define MSG_LDF_RN_MISMATCH 720
-#define MSG_LDF_WLEN_ERROR 721
-#define MSG_MOVE_INV_TYPE 722
-#define MSG_NODE_FOR_CHAR 723
-#define MSG_NOT_IMPLEMENTED 724
-#define MSG_NOT_IMPL_YET 725
-#define MSG_NOT_MODIFIABLE 726
-#define MSG_NO_ACTIVE_APPL 727
-#define MSG_NO_ACTIVE_UDIC 728
-#define MSG_NO_AREA_FILE 729
-#define MSG_NO_EDITED_LANG 730
-#define MSG_NO_PARAMETER 731
-#define MSG_NO_RCUR_DSK_YET 732
-#define MSG_NO_SOURCE 733
-#define MSG_ONE_PARAM_ONLY 734
-#define MSG_READING_FROM 735
-#define MSG_RESET_TO 736
-#define MSG_STRING_INV_LIST 737
-#define MSG_UNKNOWN_SEM 738
-#define MSG_USED_FREE_MEM 739
-#define MSG_WRONG_PASSWORD 740
-#define MSG_WRONG_USERFILE 741
-#define MSG_ACT_ALLOC_FAIL 742
-#define MSG_APPL_ACTIVE 743
-#define MSG_BAD_CASE_SPEC 744
-#define MSG_DOSALMEM_NOMEM 745
-#define MSG_EXIT_FROM_LANG 746
-#define MSG_GLOBAL_ERROR 747
-#define MSG_HUGE_WARNING_1 748
-#define MSG_HUGE_WARNING_2 749
-#define MSG_LANG_ALLOC_FAIL 750
-#define MSG_MALLOC_ERROR 751
-#define MSG_NO_INIT_LANG 752
-#define MSG_NULL_ENTRY 753
-#define MSG_READ_MEM_ERROR 754
-#define MSG_READ_SEG_ERROR 755
-#define MSG_RECEIVED 756
-#define MSG_RET_FROM_LANG 757
-#define MSG_STRG_NOT_FOUND 758
-#define MSG_SUBALLOC_ERROR 759
-#define MSG_SUBAL_HUGE_ERR 760
-#define MSG_S_ACCESS_DENIED 761
-#define MSG_S_ERROR 762
-#define MSG_S_ERROR_NUM 763
-#define MSG_S_INTRUPT_ERROR 764
-#define MSG_S_INVALID_PARM 765
-#define MSG_S_INV_ADDRESS 766
-#define MSG_S_UNKNOWN_ERROR 767
-#define MSG_VOID_POS_DICT 768
-#define MSG_WORK_AREA 769
-#define MSG_BAD_AGGREG_FUNC 770
-#define MSG_BAD_MAX_HAVING 771
-#define MSG_BUILDING_GROUPS 772
-#define MSG_CD_ONE_STEP 773
-#define MSG_CNTDIS_COL_LOST 774
-#define MSG_COMPUTING 775
-#define MSG_DISTINCT_ROWS 776
-#define MSG_DISTINCT_VALUES 777
-#define MSG_FETCHING_DATA 778
-#define MSG_FETCHING_ROWS 779
-#define MSG_GROUPBY_NOT_ALL 780
-#define MSG_HAVING_FILTER 781
-#define MSG_IDLE 782
-#define MSG_INTERNAL 783
-#define MSG_INV_QUERY_TYPE 784
-#define MSG_MAKING_DISTINCT 785
-#define MSG_MAXTMP_TRUNCATE 786
-#define MSG_MEM_ALLOC_YET 787
-#define MSG_NOT_ENOUGH_MEM 788
-#define MSG_NO_NULL_CONST 789
-#define MSG_OFFSET_NOT_SUPP 790
-#define MSG_OPENING_QUERY 791
-#define MSG_OPEN_SORT_ERROR 792
-#define MSG_PROC_WOULD_LOOP 793
-#define MSG_RSC_ALLOC_ERROR 794
-#define MSG_SMART_SORTING 795
-#define MSG_SMART_SORT_ERR 796
-#define MSG_SORTING 797
-#define MSG_DEF_ALLOC_ERROR 798
-#define MSG_GET_FUNC_ERR 799
-#define MSG_PROCADD_ERROR 800
-#define MSG_PXDEF_IS_NULL 801
-#define MSG_SHARED_LIB_ERR 802
-#define MSG_ADPOS_IN_DICTP 803
-#define MSG_BAD_CHAR_SPEC 804
-#define MSG_BAD_GENRE 805
-#define MSG_BAD_INPUT 806
-#define MSG_BAD_LOCDFON_ARG 807
-#define MSG_BAD_LOCNODE_USE 808
-#define MSG_BAD_POS_CODE 809
-#define MSG_BAD_POS_TYPE 810
-#define MSG_BAD_TYPE_FOR_S 811
-#define MSG_BLOCK_NO_MATCH 812
-#define MSG_BXP_NULL 813
-#define MSG_DIRECT_VARTOK 814
-#define MSG_FSBPARP_NULL 815
-#define MSG_LOCSTRG_TOO_BIG 816
-#define MSG_MISSING_POS 817
-#define MSG_NO_POS_ADDED 818
-#define MSG_NO_TERM_IN_TOK 819
-#define MSG_POS_TOO_LONG 820
-#define MSG_RENUM_RULES 821
-#define MSG_RULE_ENTERED 822
-#define MSG_TOO_MANY_POS 823
-#define MSG_TO_FTR_NOT_NULL 824
-#define MSG_TO_PIX_NOT_NULL 825
-#define MSG_TO_SEM_NOT_NULL 826
-#define MSG_UNKNOWN_POS 827
-#define MSG_UNKNOWN_SYNONYM 828
-#define MSG_USE_NO_MATCH 829
-#define MSG_ALLOC_ERROR 830
-#define MSG_ARG_TWO_CONST 831
-#define MSG_BAD_ARGTYPES 832
-#define MSG_BAD_ARGUMENTS 833
-#define MSG_BAD_ROW_VALIST 834
-#define MSG_BAD_ROW_VALNB 835
-#define MSG_BAD_SCF_ARGTYPE 836
-#define MSG_BAD_SUB_SELECT 837
-#define MSG_BAD_TYPE_FOR_IN 838
-#define MSG_CONNECT_ERROR 839
-#define MSG_EXIT_EVAL_ERR 840
-#define MSG_FORMAT_ERROR 841
-#define MSG_INIT_ERROR 842
-#define MSG_INVALID_OPER 843
-#define MSG_NO_SFEXIT_UNIX 844
-#define MSG_READING_RECORD 845
-#define MSG_REQU_ARG_NUM 846
-#define MSG_SFUNC_NOT_IMPL 847
-#define MSG_UNKNOWN_DOMAIN 848
-#define MSG_WRONG_ARG_NUM 849
-#define MSG_WRONG_OP_PARM 850
-#define MSG_WRONG_PARMS 851
-#define MSG_AMBIG_CORREL 852
-#define MSG_BAD_CHECK_TYPE 853
-#define MSG_BAD_CORREL 854
-#define MSG_BAD_XOBJ_TYPE 855
-#define MSG_HBUF_TOO_SMALL 856
-#define MSG_MISSING 857
-#define MSG_MULT_DISTINCT 858
-#define MSG_NO_TABLE_COL 859
-#define MSG_ARG_REF_LOOP 860
-#define MSG_GETCWD_ERR_NO 861
-#define MSG_UNRESOLVED_ARG 862
-#define MSG_ARGS_SYNTAX_ERR 863
-#define MSG_AMBIG_COL_QUAL 864
-#define MSG_AMBIG_SPEC_COL 865
-#define MSG_BAD_COL_QUALIF 866
-#define MSG_BAD_FETCH_RC 867
-#define MSG_BAD_FILTER_OP 868
-#define MSG_BAD_HAV_FILTER 869
-#define MSG_BAD_JOIN_FILTER 870
-#define MSG_BAD_SET_TYPE 871
-#define MSG_BAD_SPECIAL_COL 872
-#define MSG_BAD_SPEC_COLUMN 873
-#define MSG_BAD_SQL_PARAM 874
-#define MSG_BAD_TABLE_LIST 875
-#define MSG_BAD_UPD_COR 876
-#define MSG_BAD_VALUE_TYPE 877
-#define MSG_BUILD_DIST_GRPS 878
-#define MSG_CHECKING_ROWS 879
-#define MSG_COL_INVAL_TABLE 880
-#define MSG_COL_ISNOT_TABLE 881
-#define MSG_COL_NOTIN_TABLE 882
-#define MSG_COL_NOTIN_UPDT 883
-#define MSG_COMPUTING_DIST 884
-#define MSG_COMPUTING_FUNC 885
-#define MSG_DELETING_ROWS 886
-#define MSG_ERROR 887
-#define MSG_FILGRP_NO_TABLE 888
-#define MSG_FILTER_NO_TABLE 889
-#define MSG_INSERTING 890
-#define MSG_INSERT_MISMATCH 891
-#define MSG_INV_FILTER 892
-#define MSG_INV_UPDT_TABLE 893
-#define MSG_INV_VALUE_LIST 894
-#define MSG_INV_WHERE_JOIN 895
-#define MSG_NOT_LINEARIZED 896
-#define MSG_NO_CONST_FILTER 897
-#define MSG_NO_INDEX_GBX 898
-#define MSG_READB_BAD_INIT 899
-#define MSG_READING 900
-#define MSG_SEVERAL_TREES 901
-#define MSG_UNKNW_QRY_TYPE 902
-#define MSG_UNQ_COL_SEV_TAB 903
-#define MSG_UPDATING_ROWS 904
-#define MSG_VAL_TOO_LONG 905
-#define MSG_BAD_FILTEST_OP 906
-#define MSG_BAD_SUBSEL_TYPE 907
-#define MSG_BAD_SUB_RESULT 908
-#define MSG_CORREL_NO_QRY 909
-#define MSG_FLTST_NO_CORREL 910
-#define MSG_NO_MEM_CORR_SUB 911
-#define MSG_NO_QUERY_ARRAY 912
-#define MSG_PROCESS_SUBQRY 913
-#define MSG_READ_ERROR_RC 914
-#define MSG_RES_NOT_UNIQUE 915
-#define MSG_SQL_BLOCK_MISM 916
-#define MSG_SUBQRY_ONEITEM 917
-#define MSG_SUB_OPEN_YET 918
-#define MSG_FNC_NOTIN_SLIST 919
-#define MSG_NO_FORMAT_COL 920
-#define MSG_ORDER_OUT_RANGE 921
-#define MSG_SEP_IN_FIELD 922
-#define MSG_BAD_OPEN_MODE 923
-#define MSG_OPEN_MODE_ERROR 924
-#define MSG_RECORD_NO_SEP 925
-#define MSG_BAD_BLK_ESTIM 926
-#define MSG_BAD_FREQ_SET 927
-#define MSG_BAD_RECFM 928
-#define MSG_BAD_RECFM_VAL 929
-#define MSG_BIN_F_TOO_LONG 930
-#define MSG_CHSIZE_ERROR 931
-#define MSG_DEL_FILE_ERR 932
-#define MSG_DEL_READ_ERROR 933
-#define MSG_DEL_WRITE_ERROR 934
-#define MSG_DVAL_NOTIN_LIST 935
-#define MSG_FILELEN_ERROR 936
-#define MSG_FILE_IS_EMPTY 937
-#define MSG_FILE_MAP_ERROR 938
-#define MSG_FPUTS_ERROR 939
-#define MSG_FSEEK_ERROR 940
-#define MSG_FSETPOS_ERROR 941
-#define MSG_FTELL_ERROR 942
-#define MSG_FUNCTION_ERROR 943
-#define MSG_GETFILESIZE_ERR 944
-#define MSG_GET_DIST_VALS 945
-#define MSG_INDEX_NOT_DEF 946
-#define MSG_INDEX_YET_ON 947
-#define MSG_INDX_COL_NOTIN 948
-#define MSG_INDX_EXIST_YET 949
-#define MSG_INSERT_ERROR 950
-#define MSG_INV_DEF_READ 951
-#define MSG_INV_MAP_POS 952
-#define MSG_MAP_VIEW_ERROR 953
-#define MSG_NOT_FIXED_LEN 954
-#define MSG_NO_INDEX_IN 955
-#define MSG_NO_RECOV_SPACE 956
-#define MSG_NO_ROWID_FOR_AM 957
-#define MSG_OPEN_STRERROR 958
-#define MSG_OPTBLK_RD_ERR 959
-#define MSG_OPTBLK_WR_ERR 960
-#define MSG_OPT_BMAP_RD_ERR 961
-#define MSG_OPT_BMAP_WR_ERR 962
-#define MSG_OPT_DVAL_RD_ERR 963
-#define MSG_OPT_DVAL_WR_ERR 964
-#define MSG_OPT_LOGIC_ERR 965
-#define MSG_READ_ERROR 966
-#define MSG_READ_SEEK_ERROR 967
-#define MSG_TABLE_NOT_OPT 968
-#define MSG_TRUNCATE_ERROR 969
-#define MSG_VALUE_TOO_LONG 970
-#define MSG_WRITE_SEEK_ERR 971
-#define MSG_BAD_BIN_FMT 972
-#define MSG_BAD_DEF_READ 973
-#define MSG_COL_NOT_SORTED 974
-#define MSG_ERROR_IN_LSK 975
-#define MSG_ERROR_IN_SFP 976
-#define MSG_FILE_OPEN_YET 977
-#define MSG_FWRITE_ERROR 978
-#define MSG_INVALID_FTYPE 979
-#define MSG_INV_REC_POS 980
-#define MSG_NO_BIG_DELETE 981
-#define MSG_NO_CLUSTER_COL 982
-#define MSG_OPEN_ERROR 983
-#define MSG_OPTIMIZING 984
-#define MSG_OPT_CANCELLED 985
-#define MSG_OPT_HEAD_RD_ERR 986
-#define MSG_OPT_HEAD_WR_ERR 987
-#define MSG_OPT_MAX_RD_ERR 988
-#define MSG_OPT_MAX_WR_ERR 989
-#define MSG_OPT_MIN_RD_ERR 990
-#define MSG_OPT_MIN_WR_ERR 991
-#define MSG_OPT_NOT_MATCH 992
-#define MSG_VALUE_TOO_BIG 993
-#define MSG_WRITING_ERROR 994
-#define MSG_BAD_FIELD_RANK 995
-#define MSG_BAD_FLD_FORMAT 996
-#define MSG_BAD_FLD_LENGTH 997
-#define MSG_BAD_LINEFLD_FMT 998
-#define MSG_BAD_QUOTE_FIELD 999
-#define MSG_CANNOT_OPEN 1000
-#define MSG_EOF_AFTER_LINE 1001
-#define MSG_ERR_READING_REC 1002
-#define MSG_FIELD_TOO_LONG 1003
-#define MSG_FLD_TOO_LNG_FOR 1004
-#define MSG_FMT_WRITE_NIY 1005
-#define MSG_LINE_TOO_LONG 1006
-#define MSG_LRECL_TOO_SMALL 1007
-#define MSG_MISPLACED_QUOTE 1008
-#define MSG_MISSING_EOL 1009
-#define MSG_MISSING_FIELD 1010
-#define MSG_MISSING_FNAME 1011
-#define MSG_NO_FLD_FORMAT 1012
-#define MSG_QUOTE_IN_QUOTE 1013
-#define MSG_TOO_MANY_FIELDS 1014
-#define MSG_UNBALANCE_QUOTE 1015
-#define MSG_BAD_JCOL_TYPE 1016
-#define MSG_COL_USED_TWICE 1017
-#define MSG_DUMMY_NO_COLS 1018
-#define MSG_JCT_MISS_COLS 1019
-#define MSG_JCT_MISS_TABLE 1020
-#define MSG_JCT_NO_FILTER 1021
-#define MSG_JCT_NO_KEY 1022
-#define MSG_NO_DMY_DIR_ACC 1023
-#define MSG_NO_EXP_LINK 1024
-#define MSG_VIR_NO_DELETE 1025
-#define MSG_VIR_READ_ONLY 1026
-#define MSG_BAD_JOIN_EXP 1027
-#define MSG_BAD_JOIN_OP 1028
-#define MSG_COLUMN_NOT_KEY 1029
-#define MSG_DB_SORT_ERROR 1030
-#define MSG_LINJOINDB_ERROR 1031
-#define MSG_MULT_KEY_ERROR 1032
-#define MSG_NO_JOIN_TO_EXP 1033
-#define MSG_NO_MULCOL_JOIN 1034
-#define MSG_READ_ONLY 1035
-#define MSG_ROWID_NOT_IMPL 1036
-#define MSG_SETRECPOS_NIY 1037
-#define MSG_TABLE_MULT_JOIN 1038
-#define MSG_TDB_USE_ERROR 1039
-#define MSG_BAD_CARDINALITY 1040
-#define MSG_BAD_DIRECTORY 1041
-#define MSG_BAD_FILE_HANDLE 1042
-#define MSG_INV_DIRCOL_OFST 1043
-#define MSG_MAXSIZE_ERROR 1044
-#define MSG_MUL_MAKECOL_ERR 1045
-#define MSG_NEXT_FILE_ERROR 1046
-#define MSG_NO_DIR_INDX_RD 1047
-#define MSG_NO_INDEX_READ 1048
-#define MSG_NO_MUL_DIR_ACC 1049
-#define MSG_SRCH_CLOSE_ERR 1050
-#define MSG_TABDIR_READONLY 1051
-#define MSG_TABMUL_READONLY 1052
-#define MSG_NO_EXT_FILTER 1053
-#define MSG_NO_EXT_UPDATE 1054
-#define MSG_NO_ODBC_DELETE 1055
-#define MSG_NO_ODBC_DIRECT 1056
-#define MSG_NO_ODBC_MUL 1057
-#define MSG_NO_ODBC_SPECOL 1058
-#define MSG_NO_UPDEL_JOIN 1059
-#define MSG_ODBC_READ_ONLY 1060
-#define MSG_PARM_CNT_MISS 1061
-#define MSG_COLNAM_TOO_LONG 1062
-#define MSG_NOT_ENOUGH_COLS 1063
-#define MSG_NO_DEF_FNCCOL 1064
-#define MSG_NO_DEF_PIVOTCOL 1065
-#define MSG_NO_MATCH_COL 1066
-#define MSG_NO_MORE_COL 1067
-#define MSG_NO_PIV_DIR_ACC 1068
-#define MSG_NO_TABLE_DEL 1069
-#define MSG_SRC_TABLE_UNDEF 1070
-#define MSG_TABLE_READ_ONLY 1071
-#define MSG_TOO_MANY_COLS 1072
-#define MSG_BAD_COLDEF_TYPE 1073
-#define MSG_BAD_MERGE_TYPE 1074
-#define MSG_COL_NB_MISM 1075
-#define MSG_ERROR_OPENING 1076
-#define MSG_FETCH_NO_RES 1077
-#define MSG_LOAD_CDLL_ERROR 1078
-#define MSG_NO_NBCOL 1079
-#define MSG_NO_NBLIN 1080
-#define MSG_NO_PROMPTING 1081
-#define MSG_NO_REMOTE_FNC 1082
-#define MSG_NO_VIEW_COLDEF 1083
-#define MSG_PLG_READ_ONLY 1084
-#define MSG_PLM_NULL_SFP 1085
-#define MSG_QUERY_NOT_EXEC 1086
-#define MSG_REMOTE_CONN_ERR 1087
-#define MSG_RPC_SERVER_ERR 1088
-#define MSG_BAD_QUERY_OPEN 1089
-#define MSG_BAD_RETURN_TYPE 1090
-#define MSG_BAD_VIEW_OPEN 1091
-#define MSG_NO_QRY_DELETE 1092
-#define MSG_NO_SQL_DELETE 1093
-#define MSG_NO_VIEW_SORT 1094
-#define MSG_NULL_COL_VALUE 1095
-#define MSG_QRY_READ_ONLY 1096
-#define MSG_READCOL_ERROR 1097
-#define MSG_SQL_READ_ONLY 1098
-#define MSG_GET_NAME_ERR 1099
-#define MSG_INV_SUBTYPE 1100
-#define MSG_NO_CURLY_BRKT 1101
-#define MSG_NO_KEY_UPDATE 1102
-#define MSG_NO_SECTION_NAME 1103
-#define MSG_NO_SEC_UPDATE 1104
-#define MSG_SEC_KEY_FIRST 1105
-#define MSG_SEC_NAME_FIRST 1106
-#define MSG_NO_MATCHING_COL 1107
-#define MSG_BAD_BYTE_NUM 1108
-#define MSG_BAD_BYTE_READ 1109
-#define MSG_BAD_READ_NUMBER 1110
-#define MSG_BLK_IS_NULL 1111
-#define MSG_EMPTY_FILE 1112
-#define MSG_MAKE_EMPTY_FILE 1113
-#define MSG_MAKING 1114
-#define MSG_NO_VCT_DELETE 1115
-#define MSG_OPEN_EMPTY_FILE 1116
-#define MSG_OPT_INIT 1117
-#define MSG_SFP_ERROR 1118
-#define MSG_TO_BLK_IS_NULL 1119
-#define MSG_TRUNC_BY_ESTIM 1120
-#define MSG_UPDATE_ERROR 1121
-#define MSG_WRITE_STRERROR 1122
-#define MSG_WRITING 1123
-#define MSG_BAD_COL_XPATH 1124
-#define MSG_BAD_NODE_TYPE 1125
-#define MSG_BAD_VALNODE 1126
-#define MSG_BAD_VAL_UPDATE 1127
-#define MSG_COL_ALLOC_ERR 1128
-#define MSG_COM_ERROR 1129
-#define MSG_CONCAT_SUBNODE 1130
-#define MSG_CREATED_PLUGDB 1131
-#define MSG_DEPREC_FLAG 1132
-#define MSG_EMPTY_DOC 1133
-#define MSG_FAIL_ADD_NODE 1134
-#define MSG_FILE_UNFOUND 1135
-#define MSG_INIT_FAILED 1136
-#define MSG_INV_COL_TYPE 1137
-#define MSG_LOADING_FAILED 1138
-#define MSG_MISSING_NODE 1139
-#define MSG_MISSING_ROWNODE 1140
-#define MSG_MIS_TAG_LIST 1141
-#define MSG_NEW_DOC_FAILED 1142
-#define MSG_NO_ROW_NODE 1143
-#define MSG_VAL_ALLOC_ERR 1144
-#define MSG_XMLTAB_INIT_ERR 1145
-#define MSG_XML_INIT_ERROR 1146
-#define MSG_XPATH_NOT_SUPP 1147
-#define MSG_DLL_LOAD_ERROR 1148
-#define MSG_GZOPEN_ERROR 1149
-#define MSG_GZPUTS_ERROR 1150
-#define MSG_NO_ZIP_DELETE 1151
-#define MSG_NO_ZIP_DIR_ACC 1152
-#define MSG_UPD_ZIP_NOT_IMP 1153
-#define MSG_MAC_NO_DELETE 1154
-#define MSG_MAC_NO_INDEX 1155
-#define MSG_MAC_READ_ONLY 1156
-#define MSG_BAD_FIELD_TYPE 1157
-#define MSG_BAD_PARM_COUNT 1158
-#define MSG_NO_JOIN_UPDEL 1159
-#define MSG_NO_MYSQL_DELETE 1160
-#define MSG_NO_REF_DELETE 1161
-#define MSG_NO_REF_UPDATE 1162
-#define MSG_NO_SPEC_COL 1163
-#define MSG_ADD_NULL_DOM 1164
-#define MSG_BAD_DOM_VALUE 1165
-#define MSG_BAD_SET_STRING 1166
-#define MSG_BAD_VALBLK_INDX 1167
-#define MSG_BAD_VALBLK_TYPE 1168
-#define MSG_COMPUTE_NIY 1169
-#define MSG_DOMAIN_EMPTY 1170
-#define MSG_DOMAIN_FULL 1171
-#define MSG_DOM_FILE_ERROR 1172
-#define MSG_DOM_OPEN_ERROR 1173
-#define MSG_DOM_READ_ERROR 1174
-#define MSG_DOM_READ_ONLY 1175
-#define MSG_DOM_WRITE_ERROR 1176
-#define MSG_ERR_NUM_GT_MAX 1177
-#define MSG_INV_TOK_DOMAIN 1178
-#define MSG_MEMSIZE_TOO_BIG 1179
-#define MSG_NO_DOM_DELETE 1180
-#define MSG_NO_DOM_MATCH 1181
-#define MSG_SET_NULL_DOM 1182
-#define MSG_STRING_TOO_BIG 1183
-#define MSG_VALTYPE_NOMATCH 1184
-#define MSG_NO_DATE_FMT 1185
-#define MSG_NO_LISTVAL_HERE 1186
-#define MSG_BAD_COL_FORMAT 1187
-#define MSG_BAD_DATETIME 1188
-#define MSG_BAD_DATE_OPER 1189
-#define MSG_BAD_EXP_OPER 1190
-#define MSG_BAD_PAD_ARGTYP 1191
-#define MSG_BAD_TRIM_ARGTYP 1192
-#define MSG_BLKTYPLEN_MISM 1193
-#define MSG_COMPUTE_ERROR 1194
-#define MSG_FIX_OVFLW_ADD 1195
-#define MSG_FIX_OVFLW_TIMES 1196
-#define MSG_FIX_UNFLW_ADD 1197
-#define MSG_FIX_UNFLW_TIMES 1198
-#define MSG_HARRY_COMP_NIY 1199
-#define MSG_NO_CHAR_FROM 1200
-#define MSG_NO_FORMAT_TYPE 1201
-#define MSG_ONLY_LOG10_IMPL 1202
-#define MSG_OP_RES_TOO_LONG 1203
-#define MSG_SET_STR_TRUNC 1204
-#define MSG_SUB_RES_TOO_LNG 1205
-#define MSG_VALIST_MISMATCH 1206
-#define MSG_VALSTR_TOO_LONG 1207
-#define MSG_ZERO_DIVIDE 1208
-#define MSG_ADDVAL_ERROR 1209
-#define MSG_ARRAY_ALLOC_ERR 1210
-#define MSG_BAD_DEF_ARG 1211
-#define MSG_BAD_FUNC_MODE 1212
-#define MSG_BAD_INDEX_COL 1213
-#define MSG_BAD_INDEX_DEF 1214
-#define MSG_BAD_INDEX_FILE 1215
-#define MSG_BAD_INDEX_PART 1216
-#define MSG_EOF_INDEX_FILE 1217
-#define MSG_FILE_CLOSE_ERR 1218
-#define MSG_FILE_MAP_ERR 1219
-#define MSG_FUNC_ERRNO 1220
-#define MSG_FUNC_ERROR 1221
-#define MSG_GRP_COL_MISM 1222
-#define MSG_HANDLE_IS_NULL 1223
-#define MSG_HI_OFFSET_ERR 1224
-#define MSG_INDEX_DEF_ERR 1225
-#define MSG_INDEX_INIT_ERR 1226
-#define MSG_INDEX_NOT_UNIQ 1227
-#define MSG_INT_COL_ERROR 1228
-#define MSG_KEY_ALLOC_ERR 1229
-#define MSG_MAP_OBJ_ERR 1230
-#define MSG_MISS_LEAD_COL 1231
-#define MSG_NEW_TABLE_ERR 1232
-#define MSG_NO_KEY_COL 1233
-#define MSG_NO_PART_MAP 1234
-#define MSG_NUMVAL_NOMATCH 1235
-#define MSG_RANGE_NIY 1236
-#define MSG_RANGE_NO_JOIN 1237
-#define MSG_REDUCE_INDEX 1238
-#define MSG_SAVING_INDEX 1239
-#define MSG_TABLE_NO_INDEX 1240
-#define MSG_XCOL_MISMATCH 1241
-#define MSG_XFILE_READERR 1242
-#define MSG_XFILE_TOO_SMALL 1243
-#define MSG_XFILE_WRITERR 1244
-#define MSG_ADD_BAD_TYPE 1245
-#define MSG_BAD_ARRAY_TYPE 1246
-#define MSG_BAD_CONST_TYPE 1247
-#define MSG_BAD_CONV_TYPE 1248
-#define MSG_BAD_FLOAT_CONV 1249
-#define MSG_BAD_TEST_TYPE 1250
-#define MSG_FIND_BAD_TYPE 1251
+#define MSG_ACCESS_VIOLATN 200
+#define MSG_ADD_BAD_TYPE 201
+#define MSG_ALLOC_ERROR 202
+#define MSG_ANSWER_TYPE 203
+#define MSG_API_CONF_ERROR 204
+#define MSG_APPL_NOT_INIT 205
+#define MSG_ARRAY_BNDS_EXCD 206
+#define MSG_BAD_ARRAY_OPER 207
+#define MSG_BAD_ARRAY_TYPE 208
+#define MSG_BAD_ARRAY_VAL 209
+#define MSG_BAD_BIN_FMT 210
+#define MSG_BAD_BLK_ESTIM 211
+#define MSG_BAD_BLK_SIZE 212
+#define MSG_BAD_BYTE_NUM 213
+#define MSG_BAD_BYTE_READ 214
+#define MSG_BAD_COL_TYPE 215
+#define MSG_BAD_COL_XPATH 216
+#define MSG_BAD_CONST_TYPE 217
+#define MSG_BAD_CONV_TYPE 218
+#define MSG_BAD_DATETIME 219
+#define MSG_BAD_DBF_FILE 220
+#define MSG_BAD_DBF_REC 221
+#define MSG_BAD_DBF_TYPE 222
+#define MSG_BAD_DIRECTORY 223
+#define MSG_BAD_FIELD_RANK 224
+#define MSG_BAD_FIELD_TYPE 225
+#define MSG_BAD_FILE_HANDLE 226
+#define MSG_BAD_FILTER 227
+#define MSG_BAD_FILTER_CONV 228
+#define MSG_BAD_FILTER_OP 229
+#define MSG_BAD_FLD_FORMAT 230
+#define MSG_BAD_FLD_LENGTH 231
+#define MSG_BAD_FREQ_SET 232
+#define MSG_BAD_FUNC_MODE 233
+#define MSG_BAD_HANDLE_VAL 234
+#define MSG_BAD_HEADER 235
+#define MSG_BAD_HEAD_END 236
+#define MSG_BAD_INDEX_FILE 237
+#define MSG_BAD_LINEFLD_FMT 238
+#define MSG_BAD_LINE_LEN 239
+#define MSG_BAD_LRECL 240
+#define MSG_BAD_NODE_TYPE 241
+#define MSG_BAD_OFFSET_VAL 242
+#define MSG_BAD_OPEN_MODE 243
+#define MSG_BAD_PARAM_TYPE 244
+#define MSG_BAD_PARM_COUNT 245
+#define MSG_BAD_QUOTE_FIELD 246
+#define MSG_BAD_READ_NUMBER 247
+#define MSG_BAD_RECFM 248
+#define MSG_BAD_RECFM_VAL 249
+#define MSG_BAD_SET_CASE 250
+#define MSG_BAD_SET_STRING 251
+#define MSG_BAD_SPECIAL_COL 252
+#define MSG_BAD_SPEC_COLUMN 253
+#define MSG_BAD_TABLE_TYPE 254
+#define MSG_BAD_TYPE_LIKE 255
+#define MSG_BAD_VALBLK_INDX 256
+#define MSG_BAD_VALBLK_TYPE 257
+#define MSG_BAD_VALNODE 258
+#define MSG_BAD_VALUE_TYPE 259
+#define MSG_BAD_VAL_UPDATE 260
+#define MSG_BAS_NS_LIST 261
+#define MSG_BIN_F_TOO_LONG 262
+#define MSG_BIN_MODE_FAIL 263
+#define MSG_BLKTYPLEN_MISM 264
+#define MSG_BLK_IS_NULL 265
+#define MSG_BREAKPOINT 266
+#define MSG_BUILD_INDEX 267
+#define MSG_CANNOT_OPEN 268
+#define MSG_CHSIZE_ERROR 269
+#define MSG_COL_ALLOC_ERR 270
+#define MSG_COL_ISNOT_TABLE 271
+#define MSG_COL_NOT_SORTED 272
+#define MSG_COL_NUM_MISM 273
+#define MSG_COM_ERROR 274
+#define MSG_CONCAT_SUBNODE 275
+#define MSG_CONNECT_CANCEL 276
+#define MSG_CONTROL_C_EXIT 277
+#define MSG_DATABASE_LOADED 278
+#define MSG_DATA_MISALIGN 279
+#define MSG_DBASE_FILE 280
+#define MSG_DEF_ALLOC_ERROR 281
+#define MSG_DEL_FILE_ERR 282
+#define MSG_DEL_READ_ERROR 283
+#define MSG_DEL_WRITE_ERROR 284
+#define MSG_DEPREC_FLAG 285
+#define MSG_DLL_LOAD_ERROR 286
+#define MSG_DOM_NOT_SUPP 287
+#define MSG_DVAL_NOTIN_LIST 288
+#define MSG_EMPTY_DOC 289
+#define MSG_EMPTY_FILE 290
+#define MSG_EOF_AFTER_LINE 291
+#define MSG_EOF_INDEX_FILE 292
+#define MSG_ERROR_IN_LSK 293
+#define MSG_ERROR_IN_SFP 294
+#define MSG_ERR_READING_REC 295
+#define MSG_FAIL_ADD_NODE 296
+#define MSG_FETCH_NO_RES 297
+#define MSG_FIELD_TOO_LONG 298
+#define MSG_FILELEN_ERROR 299
+#define MSG_FILE_IS_EMPTY 300
+#define MSG_FILE_MAP_ERR 301
+#define MSG_FILE_MAP_ERROR 302
+#define MSG_FILE_OPEN_YET 303
+#define MSG_FILE_UNFOUND 304
+#define MSG_FLD_TOO_LNG_FOR 305
+#define MSG_FLT_BAD_RESULT 306
+#define MSG_FLT_DENORMAL_OP 307
+#define MSG_FLT_INVALID_OP 308
+#define MSG_FLT_OVERFLOW 309
+#define MSG_FLT_STACK_CHECK 310
+#define MSG_FLT_UNDERFLOW 311
+#define MSG_FLT_ZERO_DIVIDE 312
+#define MSG_FMT_WRITE_NIY 313
+#define MSG_FOXPRO_FILE 314
+#define MSG_FPUTS_ERROR 315
+#define MSG_FSEEK_ERROR 316
+#define MSG_FSETPOS_ERROR 317
+#define MSG_FTELL_ERROR 318
+#define MSG_FUNCTION_ERROR 319
+#define MSG_FUNC_ERRNO 320
+#define MSG_FUNC_ERROR 321
+#define MSG_FUNC_ERR_S 322
+#define MSG_FWRITE_ERROR 323
+#define MSG_GET_DIST_VALS 324
+#define MSG_GET_FUNC_ERR 325
+#define MSG_GLOBAL_ERROR 326
+#define MSG_GUARD_PAGE 327
+#define MSG_GZOPEN_ERROR 328
+#define MSG_ILLEGAL_INSTR 329
+#define MSG_ILL_FILTER_CONV 330
+#define MSG_INDEX_NOT_UNIQ 331
+#define MSG_INDEX_YET_ON 332
+#define MSG_INDX_COL_NOTIN 333
+#define MSG_INDX_EXIST_YET 334
+#define MSG_INIT_FAILED 335
+#define MSG_INT_COL_ERROR 336
+#define MSG_INT_OVERFLOW 337
+#define MSG_INT_ZERO_DIVIDE 338
+#define MSG_INVALID_DISP 339
+#define MSG_INVALID_FTYPE 340
+#define MSG_INVALID_HANDLE 341
+#define MSG_INVALID_OPER 342
+#define MSG_INV_COLUMN_TYPE 343
+#define MSG_INV_COL_TYPE 344
+#define MSG_INV_DEF_READ 345
+#define MSG_INV_DIRCOL_OFST 346
+#define MSG_INV_MAP_POS 347
+#define MSG_INV_RAND_ACC 348
+#define MSG_INV_REC_POS 349
+#define MSG_INV_RESULT_TYPE 350
+#define MSG_INV_UPDT_TABLE 351
+#define MSG_IN_WITHOUT_SUB 352
+#define MSG_KEY_ALLOC_ERR 353
+#define MSG_KEY_ALLOC_ERROR 354
+#define MSG_LINE_TOO_LONG 355
+#define MSG_LIST 356
+#define MSG_LOADING_FAILED 357
+#define MSG_LRECL_TOO_SMALL 358
+#define MSG_MAKE_EMPTY_FILE 359
+#define MSG_MAKING 360
+#define MSG_MALLOC_ERROR 361
+#define MSG_MAP_VIEW_ERROR 362
+#define MSG_MAXSIZE_ERROR 363
+#define MSG_MEM_ALLOC_ERR 364
+#define MSG_MEM_ALLOC_ERROR 365
+#define MSG_MISPLACED_QUOTE 366
+#define MSG_MISSING_ARG 367
+#define MSG_MISSING_FIELD 368
+#define MSG_MISSING_FNAME 369
+#define MSG_MISSING_NODE 370
+#define MSG_MISSING_ROWNODE 371
+#define MSG_MIS_TAG_LIST 372
+#define MSG_MUL_MAKECOL_ERR 373
+#define MSG_NAME_CONV_ERR 374
+#define MSG_NEW_DOC_FAILED 375
+#define MSG_NEW_RETURN_NULL 376
+#define MSG_NEXT_FILE_ERROR 377
+#define MSG_NONCONT_EXCEPT 378
+#define MSG_NOP_ZLIB_INDEX 379
+#define MSG_NOT_A_DBF_FILE 380
+#define MSG_NOT_FIXED_LEN 381
+#define MSG_NO_0DH_HEAD 382
+#define MSG_NO_ACTIVE_DB 383
+#define MSG_NO_CHAR_FROM 384
+#define MSG_NO_DATE_FMT 385
+#define MSG_NO_DEF_FNCCOL 386
+#define MSG_NO_DEF_PIVOTCOL 387
+#define MSG_NO_DIR_INDX_RD 388
+#define MSG_NO_FEAT_SUPPORT 389
+#define MSG_NO_FLD_FORMAT 390
+#define MSG_NO_FORMAT_COL 391
+#define MSG_NO_FORMAT_TYPE 392
+#define MSG_NO_INDEX_READ 393
+#define MSG_NO_KEY_COL 394
+#define MSG_NO_KEY_UPDATE 395
+#define MSG_NO_MAP_INSERT 396
+#define MSG_NO_MATCHING_COL 397
+#define MSG_NO_MATCH_COL 398
+#define MSG_NO_MEMORY 399
+#define MSG_NO_MODE_PADDED 400
+#define MSG_NO_MUL_VCT 401
+#define MSG_NO_ODBC_DELETE 402
+#define MSG_NO_ODBC_DIRECT 403
+#define MSG_NO_ODBC_MUL 404
+#define MSG_NO_ODBC_SPECOL 405
+#define MSG_NO_PART_DEL 406
+#define MSG_NO_PART_MAP 407
+#define MSG_NO_PAR_BLK_INS 408
+#define MSG_NO_PIV_DIR_ACC 409
+#define MSG_NO_READ_32 410
+#define MSG_NO_RECOV_SPACE 411
+#define MSG_NO_ROWID_FOR_AM 412
+#define MSG_NO_ROW_NODE 413
+#define MSG_NO_SECTION_NAME 414
+#define MSG_NO_SEC_UPDATE 415
+#define MSG_NO_SETPOS_YET 416
+#define MSG_NO_SPEC_COL 417
+#define MSG_NO_SUB_VAL 418
+#define MSG_NO_TABCOL_DATA 419
+#define MSG_NO_TABLE_DEL 420
+#define MSG_NO_TAB_DATA 421
+#define MSG_NO_VCT_DELETE 422
+#define MSG_NO_ZIP_DELETE 423
+#define MSG_OPENING 424
+#define MSG_OPEN_EMPTY_FILE 425
+#define MSG_OPEN_ERROR 426
+#define MSG_OPEN_ERROR_IS 427
+#define MSG_OPEN_MODE_ERROR 428
+#define MSG_OPEN_STRERROR 429
+#define MSG_OPTBLK_RD_ERR 430
+#define MSG_OPTBLK_WR_ERR 431
+#define MSG_OPTIMIZING 432
+#define MSG_OPT_BMAP_RD_ERR 433
+#define MSG_OPT_BMAP_WR_ERR 434
+#define MSG_OPT_CANCELLED 435
+#define MSG_OPT_DVAL_RD_ERR 436
+#define MSG_OPT_DVAL_WR_ERR 437
+#define MSG_OPT_HEAD_RD_ERR 438
+#define MSG_OPT_HEAD_WR_ERR 439
+#define MSG_OPT_LOGIC_ERR 440
+#define MSG_OPT_MAX_RD_ERR 441
+#define MSG_OPT_MAX_WR_ERR 442
+#define MSG_OPT_MIN_RD_ERR 443
+#define MSG_OPT_MIN_WR_ERR 444
+#define MSG_OPT_NOT_MATCH 445
+#define MSG_PAGE_ERROR 446
+#define MSG_PARM_CNT_MISS 447
+#define MSG_PREC_VBLP_NULL 448
+#define MSG_PRIV_INSTR 449
+#define MSG_PROCADD_ERROR 450
+#define MSG_QUERY_CANCELLED 451
+#define MSG_RANGE_NO_JOIN 452
+#define MSG_RC_READING 453
+#define MSG_READY 454
+#define MSG_READ_ERROR 455
+#define MSG_READ_ONLY 456
+#define MSG_READ_SEEK_ERROR 457
+#define MSG_REGISTER_ERR 458
+#define MSG_REMOVE_ERROR 459
+#define MSG_RENAME_ERROR 460
+#define MSG_ROWID_NOT_IMPL 461
+#define MSG_SEC_KEY_FIRST 462
+#define MSG_SEC_NAME_FIRST 463
+#define MSG_SEP_IN_FIELD 464
+#define MSG_SEQUENCE_ERROR 465
+#define MSG_SETEOF_ERROR 466
+#define MSG_SETRECPOS_NIY 467
+#define MSG_SET_STR_TRUNC 468
+#define MSG_SFP_ERROR 469
+#define MSG_SHARED_LIB_ERR 470
+#define MSG_SINGLE_STEP 471
+#define MSG_SORTING_VAL 472
+#define MSG_SPCOL_READONLY 473
+#define MSG_SQL_CONF_ERROR 474
+#define MSG_SRCH_CLOSE_ERR 475
+#define MSG_SRC_TABLE_UNDEF 476
+#define MSG_STACK_OVERFLOW 477
+#define MSG_TABDIR_READONLY 478
+#define MSG_TABLE_NOT_OPT 479
+#define MSG_TABLE_NO_INDEX 480
+#define MSG_TABLE_READ_ONLY 481
+#define MSG_TABMUL_READONLY 482
+#define MSG_TOO_MANY_FIELDS 483
+#define MSG_TOO_MANY_JUMPS 484
+#define MSG_TOO_MANY_KEYS 485
+#define MSG_TO_BLK_IS_NULL 486
+#define MSG_TRUNCATE_ERROR 487
+#define MSG_TRUNC_BY_ESTIM 488
+#define MSG_TYPE_MISMATCH 489
+#define MSG_TYPE_VALUE_ERR 490
+#define MSG_UNBALANCE_QUOTE 491
+#define MSG_UNDEFINED_AM 492
+#define MSG_UNKNOWN_EXCPT 493
+#define MSG_UNMATCH_FIL_ARG 494
+#define MSG_UPDATE_ERROR 495
+#define MSG_UPD_ZIP_NOT_IMP 496
+#define MSG_VALSTR_TOO_LONG 497
+#define MSG_VALTYPE_NOMATCH 498
+#define MSG_VALUE_ERROR 499
+#define MSG_VALUE_TOO_BIG 500
+#define MSG_VALUE_TOO_LONG 501
+#define MSG_VAL_ALLOC_ERR 502
+#define MSG_VIR_NO_DELETE 503
+#define MSG_VIR_READ_ONLY 504
+#define MSG_VOID_FIRST_ARG 505
+#define MSG_WORK_AREA 506
+#define MSG_WRITE_SEEK_ERR 507
+#define MSG_WRITE_STRERROR 508
+#define MSG_WRITING 509
+#define MSG_WRITING_ERROR 510
+#define MSG_WS_CONV_ERR 511
+#define MSG_XCOL_MISMATCH 512
+#define MSG_XFILE_READERR 513
+#define MSG_XFILE_WRITERR 514
+#define MSG_XMLTAB_INIT_ERR 515
+#define MSG_XML_INIT_ERROR 516
+#define MSG_XPATH_CNTX_ERR 517
+#define MSG_XPATH_EVAL_ERR 518
+#define MSG_XPATH_NOT_SUPP 519
diff --git a/storage/connect/odbconn.cpp b/storage/connect/odbconn.cpp
index 4f4bde36b94..bef735b4a6d 100644
--- a/storage/connect/odbconn.cpp
+++ b/storage/connect/odbconn.cpp
@@ -1,7 +1,7 @@
/************ Odbconn C++ Functions Source Code File (.CPP) ************/
-/* Name: ODBCONN.CPP Version 1.9 */
+/* Name: ODBCONN.CPP Version 2.0 */
/* */
-/* (C) Copyright to the author Olivier BERTRAND 1998-2013 */
+/* (C) Copyright to the author Olivier BERTRAND 1998-2014 */
/* */
/* This file contains the ODBC connection classes functions. */
/***********************************************************************/
@@ -830,7 +830,7 @@ DBX::DBX(RETCODE rc, PSZ msg)
/***********************************************************************/
/* This function is called by ThrowDBX. */
/***********************************************************************/
-void DBX::BuildErrorMessage(ODBConn* pdb, HSTMT hstmt)
+bool DBX::BuildErrorMessage(ODBConn* pdb, HSTMT hstmt)
{
if (pdb) {
SWORD len;
@@ -843,7 +843,9 @@ void DBX::BuildErrorMessage(ODBConn* pdb, HSTMT hstmt)
rc = SQLError(pdb->m_henv, pdb->m_hdbc, hstmt, state,
&native, msg, SQL_MAX_MESSAGE_LENGTH - 1, &len);
- if (rc != SQL_INVALID_HANDLE) {
+ if (rc == SQL_NO_DATA_FOUND)
+ return false;
+ else if (rc != SQL_INVALID_HANDLE) {
// Skip non-errors
for (int i = 0; i < MAX_NUM_OF_MSG
&& (rc == SQL_SUCCESS || rc == SQL_SUCCESS_WITH_INFO)
@@ -859,7 +861,7 @@ void DBX::BuildErrorMessage(ODBConn* pdb, HSTMT hstmt)
} // endfor i
- return;
+ return true;
} else {
snprintf((char*)msg, SQL_MAX_MESSAGE_LENGTH + 1, "%s: %s", m_Msg,
MSG(BAD_HANDLE_VAL));
@@ -869,7 +871,7 @@ void DBX::BuildErrorMessage(ODBConn* pdb, HSTMT hstmt)
if (trace)
htrc("%s: rc=%hd\n", SVP(m_ErrMsg[0]), m_RC);
- return;
+ return true;
} // endif rc
} else
@@ -878,6 +880,7 @@ void DBX::BuildErrorMessage(ODBConn* pdb, HSTMT hstmt)
if (trace)
htrc("%s: rc=%hd (%s)\n", SVP(m_Msg), m_RC, SVP(m_ErrMsg[0]));
+ return true;
} // end of BuildErrorMessage
const char *DBX::GetErrorMessage(int i)
@@ -910,6 +913,7 @@ ODBConn::ODBConn(PGLOBAL g, TDBODBC *tdbp)
m_Connect = NULL;
m_Updatable = true;
m_Transact = false;
+ m_Scrollable = (tdbp) ? tdbp->Scrollable : false;
m_IDQuoteChar[0] = '"';
m_IDQuoteChar[1] = 0;
//*m_ErrMsg = '\0';
@@ -932,9 +936,10 @@ bool ODBConn::Check(RETCODE rc)
if (trace) {
DBX x(rc);
- x.BuildErrorMessage(this, m_hstmt);
- htrc("ODBC Success With Info, hstmt=%p %s\n",
- m_hstmt, x.GetErrorMessage(0));
+ if (x.BuildErrorMessage(this, m_hstmt))
+ htrc("ODBC Success With Info, hstmt=%p %s\n",
+ m_hstmt, x.GetErrorMessage(0));
+
} // endif trace
// Fall through
@@ -953,8 +958,10 @@ void ODBConn::ThrowDBX(RETCODE rc, PSZ msg, HSTMT hstmt)
{
DBX* xp = new(m_G) DBX(rc, msg);
- xp->BuildErrorMessage(this, hstmt);
- throw xp;
+ // Don't throw if no error
+ if (xp->BuildErrorMessage(this, hstmt))
+ throw xp;
+
} // end of ThrowDBX
void ODBConn::ThrowDBX(PSZ msg)
@@ -1298,25 +1305,28 @@ int ODBConn::ExecDirectSQL(char *sql, ODBCCOL *tocols)
b = false;
if (m_hstmt) {
-// All this did not seems to make sense and was been commented out
-// if (IsOpen())
-// Close(SQL_CLOSE);
-
+ // This is a Requery
rc = SQLFreeStmt(m_hstmt, SQL_CLOSE);
- if (trace && !Check(rc))
- htrc("Error: SQLFreeStmt rc=%d\n", rc);
+ if (!Check(rc))
+ ThrowDBX(rc, "SQLFreeStmt");
- hstmt = m_hstmt;
m_hstmt = NULL;
- ThrowDBX(MSG(SEQUENCE_ERROR));
- } else {
- rc = SQLAllocStmt(m_hdbc, &hstmt);
+ } // endif m_hstmt
+
+ rc = SQLAllocStmt(m_hdbc, &hstmt);
+
+ if (!Check(rc))
+ ThrowDBX(rc, "SQLAllocStmt");
+
+ if (m_Scrollable) {
+ rc = SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_SCROLLABLE,
+ (void*)SQL_SCROLLABLE, 0);
if (!Check(rc))
- ThrowDBX(SQL_INVALID_HANDLE, "SQLAllocStmt");
+ ThrowDBX(rc, "SQLSetStmtAttr");
- } // endif hstmt
+ } // endif m_Scrollable
OnSetOptions(hstmt);
b = true;
@@ -2333,6 +2343,34 @@ int ODBConn::GetCatInfo(CATPARM *cap)
} // end of GetCatInfo
/***********************************************************************/
+/* Restart from beginning of result set */
+/***********************************************************************/
+bool ODBConn::Rewind(char *sql, ODBCCOL *tocols)
+ {
+ RETCODE rc;
+
+ if (!m_hstmt)
+ return false;
+
+ if (m_Scrollable) {
+ try {
+ rc = SQLFetchScroll(m_hstmt, SQL_FETCH_ABSOLUTE, 0);
+
+ if (rc != SQL_NO_DATA_FOUND)
+ ThrowDBX(rc, "SQLFetchScroll", m_hstmt);
+
+ } catch(DBX *x) {
+ strcpy(m_G->Message, x->GetErrorMessage(0));
+ return true;
+ } // end try/catch
+
+ } else if (ExecDirectSQL(sql, tocols) < 0)
+ return true;
+
+ return false;
+ } // end of Rewind
+
+/***********************************************************************/
/* Disconnect connection */
/***********************************************************************/
void ODBConn::Close()
diff --git a/storage/connect/odbconn.h b/storage/connect/odbconn.h
index 90d116cb1ad..1dd2aa2c16e 100644
--- a/storage/connect/odbconn.h
+++ b/storage/connect/odbconn.h
@@ -95,7 +95,7 @@ class DBX : public BLOCK {
const char *GetErrorMessage(int i);
protected:
- void BuildErrorMessage(ODBConn* pdb, HSTMT hstmt = SQL_NULL_HSTMT);
+ bool BuildErrorMessage(ODBConn* pdb, HSTMT hstmt = SQL_NULL_HSTMT);
// Attributes
RETCODE m_RC;
@@ -124,6 +124,7 @@ class ODBConn : public BLOCK {
forceOdbcDialog = 0x0010}; // Always display ODBC connect dialog
int Open(PSZ ConnectString, DWORD Options = 0);
+ bool Rewind(char *sql, ODBCCOL *tocols);
void Close(void);
// Attributes
@@ -190,4 +191,5 @@ class ODBConn : public BLOCK {
PSZ m_Connect;
bool m_Updatable;
bool m_Transact;
+ bool m_Scrollable;
}; // end of ODBConn class definition
diff --git a/storage/connect/plgdbutl.cpp b/storage/connect/plgdbutl.cpp
index ccfc1a348b7..88026c564bf 100644
--- a/storage/connect/plgdbutl.cpp
+++ b/storage/connect/plgdbutl.cpp
@@ -113,11 +113,17 @@ void CloseXMLFile(PGLOBAL, PFBLOCK, bool);
/***********************************************************************/
/* Routines for file IO with error reporting to g->Message */
+/* Note: errno and strerror must be called before the message file */
+/* is read in the case of XMSG compile. */
/***********************************************************************/
-static void
-global_open_error_msg(GLOBAL *g, int msgid, const char *path, const char *mode)
+static void global_open_error_msg(GLOBAL *g, int msgid, const char *path,
+ const char *mode)
{
- int len;
+ int len, rno= (int)errno;
+ char errmsg[256]= "";
+
+ strncat(errmsg, strerror(errno), 256);
+
switch (msgid)
{
case MSGID_CANNOT_OPEN:
@@ -129,7 +135,7 @@ global_open_error_msg(GLOBAL *g, int msgid, const char *path, const char *mode)
case MSGID_OPEN_MODE_ERROR:
len= snprintf(g->Message, sizeof(g->Message) - 1,
MSG(OPEN_MODE_ERROR), // "Open(%s) error %d on %s"
- mode, (int) errno, path);
+ mode, rno, path);
break;
case MSGID_OPEN_MODE_STRERROR:
@@ -137,13 +143,13 @@ global_open_error_msg(GLOBAL *g, int msgid, const char *path, const char *mode)
strcat(strcpy(fmt, MSG(OPEN_MODE_ERROR)), ": %s");
len= snprintf(g->Message, sizeof(g->Message) - 1,
fmt, // Open(%s) error %d on %s: %s
- mode, (int) errno, path, strerror(errno));
+ mode, rno, path, errmsg);
}break;
case MSGID_OPEN_STRERROR:
len= snprintf(g->Message, sizeof(g->Message) - 1,
MSG(OPEN_STRERROR), // "open error: %s"
- strerror(errno));
+ errmsg);
break;
case MSGID_OPEN_ERROR_AND_STRERROR:
@@ -151,13 +157,13 @@ global_open_error_msg(GLOBAL *g, int msgid, const char *path, const char *mode)
//OPEN_ERROR does not work, as it wants mode %d (not %s)
//MSG(OPEN_ERROR) "%s",// "Open error %d in mode %d on %s: %s"
"Open error %d in mode %s on %s: %s",
- errno, mode, path, strerror(errno));
+ rno, mode, path, errmsg);
break;
case MSGID_OPEN_EMPTY_FILE:
len= snprintf(g->Message, sizeof(g->Message) - 1,
MSG(OPEN_EMPTY_FILE), // "Opening empty file %s: %s"
- path, strerror(errno));
+ path, errmsg);
break;
default:
@@ -285,12 +291,9 @@ PQRYRES PlgAllocResult(PGLOBAL g, int ncol, int maxres, int ids,
// Get header from message file
strncpy(cname, PlugReadMessage(g, ids + crp->Ncol, NULL), NAM_LEN);
cname[NAM_LEN] = 0; // for truncated long names
-//#elif defined(WIN32)
- // Get header from ressource file
-// LoadString(s_hModule, ids + crp->Ncol, cname, sizeof(cname));
-#else // !WIN32
+#else // !XMSG
GetRcString(ids + crp->Ncol, cname, sizeof(cname));
-#endif // !WIN32
+#endif // !XMSG
crp->Name = (PSZ)PlugSubAlloc(g, NULL, strlen(cname) + 1);
strcpy(crp->Name, cname);
} else
@@ -982,7 +985,7 @@ void PlugCleanup(PGLOBAL g, bool dofree)
/* This is the place to reset the pointer on domains. */
/*******************************************************************/
dbuserp->Subcor = false;
- dbuserp->Step = STEP(PARSING_QUERY);
+ dbuserp->Step = "New query"; // was STEP(PARSING_QUERY);
dbuserp->ProgMax = dbuserp->ProgCur = dbuserp->ProgSav = 0;
} // endif dofree
diff --git a/storage/connect/plugutil.c b/storage/connect/plugutil.c
index b195058f720..c77975e5e30 100644
--- a/storage/connect/plugutil.c
+++ b/storage/connect/plugutil.c
@@ -2,7 +2,7 @@
/* */
/* PROGRAM NAME: PLUGUTIL */
/* ------------- */
-/* Version 2.8 */
+/* Version 2.9 */
/* */
/* COPYRIGHT: */
/* ---------- */
@@ -76,6 +76,9 @@
#include "osutil.h"
#include "global.h"
+#if defined(NEWMSG)
+#include "rcmsg.h"
+#endif // NEWMSG
#if defined(WIN32)
extern HINSTANCE s_hModule; /* Saved module handle */
@@ -156,7 +159,9 @@ PGLOBAL PlugInit(LPCSTR Language, uint worksize)
char errmsg[256];
sprintf(errmsg, MSG(WORK_AREA), g->Message);
strcpy(g->Message, errmsg);
- } /* endif Sarea */
+ g->Sarea_Size = 0;
+ } else
+ g->Sarea_Size = worksize;
} /* endif g */
@@ -231,7 +236,7 @@ BOOL PlugIsAbsolutePath(LPCSTR path)
LPCSTR PlugSetPath(LPSTR pBuff, LPCSTR prefix, LPCSTR FileName, LPCSTR defpath)
{
char newname[_MAX_PATH];
- char direc[_MAX_DIR], defdir[_MAX_DIR];
+ char direc[_MAX_DIR], defdir[_MAX_DIR], tmpdir[_MAX_DIR];
char fname[_MAX_FNAME];
char ftype[_MAX_EXT];
#if !defined(UNIX) && !defined(UNIV_LINUX)
@@ -264,7 +269,7 @@ LPCSTR PlugSetPath(LPSTR pBuff, LPCSTR prefix, LPCSTR FileName, LPCSTR defpath)
} // endif FileName
#endif // !WIN32
- if (strcmp(prefix, ".") && !PlugIsAbsolutePath(defpath))
+ if (prefix && strcmp(prefix, ".") && !PlugIsAbsolutePath(defpath))
{
char tmp[_MAX_PATH];
int len= snprintf(tmp, sizeof(tmp) - 1, "%s%s%s",
@@ -275,7 +280,19 @@ LPCSTR PlugSetPath(LPSTR pBuff, LPCSTR prefix, LPCSTR FileName, LPCSTR defpath)
}
_splitpath(FileName, drive, direc, fname, ftype);
- _splitpath(defpath, defdrv, defdir, NULL, NULL);
+
+ if (defpath) {
+ char c = defpath[strlen(defpath) - 1];
+
+ strcpy(tmpdir, defpath);
+
+ if (c != '/' && c != '\\')
+ strcat(tmpdir, "/");
+
+ } else
+ strcpy(tmpdir, "./");
+
+ _splitpath(tmpdir, defdrv, defdir, NULL, NULL);
if (trace > 1) {
htrc("after _splitpath: FileName=%s\n", FileName);
@@ -329,10 +346,12 @@ char *PlugReadMessage(PGLOBAL g, int mid, char *m)
//GetPrivateProfileString("Message", msglang, "Message\\english.msg",
// msgfile, _MAX_PATH, plgini);
- strcat(strcat(strcpy(msgfile, msg_path), msglang()), ".msg");
+//strcat(strcat(strcpy(msgfile, msg_path), msglang()), ".msg");
+ strcat(strcpy(buff, msglang()), ".msg");
+ PlugSetPath(msgfile, NULL, buff, msg_path);
if (!(mfile = fopen(msgfile, "rt"))) {
- sprintf(stmsg, "Fail to open message file %s for %s", msgfile, msglang);
+ sprintf(stmsg, "Fail to open message file %s", msgfile);
goto err;
} // endif mfile
@@ -382,7 +401,7 @@ char *PlugGetMessage(PGLOBAL g, int mid)
{
char *msg;
-#if !defined(UNIX) && !defined(UNIV_LINUX)
+#if 0 // was !defined(UNIX) && !defined(UNIV_LINUX)
int n = LoadString(s_hModule, (uint)mid, (LPTSTR)stmsg, 200);
if (n == 0) {
@@ -395,10 +414,10 @@ char *PlugGetMessage(PGLOBAL g, int mid)
return msg;
} // endif n
-#else // UNIX
+#else // ALL
if (!GetRcString(mid, stmsg, 200))
sprintf(stmsg, "Message %d not found", mid);
-#endif // UNIX
+#endif // ALL
if (g) {
// Called by STEP
diff --git a/storage/connect/rcmsg.c b/storage/connect/rcmsg.c
index 5b6955de4d3..43c54a20057 100644
--- a/storage/connect/rcmsg.c
+++ b/storage/connect/rcmsg.c
@@ -1,233 +1,61 @@
-/**************** RCMsg C Program Source Code File (.C) ****************/
-/* PROGRAM NAME: RCMSG */
-/* ------------- */
-/* Version 1.1 */
-/* */
-/* COPYRIGHT */
-/* ---------- */
-/* (C) Copyright to the author Olivier BERTRAND: 2005 - 2013 */
-/* */
-/* WHAT THIS PROGRAM DOES */
-/* ----------------------- */
-/* This program simulates LoadString for Unix and Linux. */
-/* */
-/***********************************************************************/
-#include <stdio.h>
-#include "resource.h"
-#include "rcmsg.h"
-
-char *GetMsgid(int id)
- {
- char *p = NULL;
-
- switch (id) {
-// case IDS_00: p = "%s"; break;
-#if defined(FRENCH)
- case IDS_01: p = "%s: erreur d'allocation du buffer de communication de %d octets"; break;
- case IDS_02: p = "%s: erreur d'allocation mémoire tampon pour %d colonnes"; break;
- case IDS_03: p = "%s: Commande spéciale invalide"; break;
- case IDS_04: p = "%s: Wrong number of arguments %d"; break;
- case IDS_05: p = "%s"; break;
- case IDS_06: p = "%s: Commande dépassant la taille du buffer interne (%d octets)"; break;
- case IDS_07: p = "%s: Données (%d octets) tronquées à la taille du buffer"; break;
- case IDS_08: p = "%s: Résultat dépassant la taille du buffer interne (%d octets)"; break;
- case IDS_09: p = "Erreur dans %s: %s"; break;
- case IDS_10: p = "%s: erreur d'allocating mémoire de %d octets"; break;
- case IDS_11: p = "%s: mauvaise clé de connexion %d"; break;
- case IDS_12: p = "%s: Pas plus de %d connexions autorisées pour un programme"; break;
- case IDS_13: p = "%s: clé de connexion invalide %d"; break;
- case IDS_14: p = "SafeDB: %s rc=%d"; break;
- case IDS_15: p = "Mauvaise Dll de communication appelée par le moteur %s"; break;
- case IDS_TAB_01: p = "Catalogue"; break;
- case IDS_TAB_02: p = "Schéma"; break;
- case IDS_TAB_03: p = "Nom"; break;
- case IDS_TAB_04: p = "Type"; break;
- case IDS_TAB_05: p = "Remarque"; break;
- case IDS_COL_01: p = "Cat_Table"; break;
- case IDS_COL_02: p = "Schem_Table"; break;
- case IDS_COL_03: p = "Nom_Table"; break;
- case IDS_COL_04: p = "Nom_Colonne"; break;
- case IDS_COL_05: p = "Type_Données"; break;
- case IDS_COL_06: p = "Nom_Type"; break;
- case IDS_COL_07: p = "Précision"; break;
- case IDS_COL_08: p = "Longueur"; break;
- case IDS_COL_09: p = "Echelle"; break;
- case IDS_COL_10: p = "Base"; break;
- case IDS_COL_11: p = "Nullifiable"; break;
- case IDS_COL_12: p = "Remarques"; break;
- case IDS_INF_01: p = "Nom_Type"; break;
- case IDS_INF_02: p = "Type_Données"; break;
- case IDS_INF_03: p = "Précision"; break;
- case IDS_INF_04: p = "Préfixe_Litéral"; break;
- case IDS_INF_05: p = "Suffixe_Litéral"; break;
- case IDS_INF_06: p = "Création_Params"; break;
- case IDS_INF_07: p = "Nullifiable"; break;
- case IDS_INF_08: p = "Maj_Minuscule"; break;
- case IDS_INF_09: p = "Localisable"; break;
- case IDS_INF_10: p = "Valeur_Absolue"; break;
- case IDS_INF_11: p = "Monnaie"; break;
- case IDS_INF_12: p = "Auto_Incrément"; break;
- case IDS_INF_13: p = "Nom_Type_Local"; break;
- case IDS_INF_14: p = "Echelle_Minimum"; break;
- case IDS_INF_15: p = "Echelle_Maximum"; break;
- case IDS_PKY_01: p = "Cat_Table"; break;
- case IDS_PKY_02: p = "Schem_Table"; break;
- case IDS_PKY_03: p = "Nom_Table"; break;
- case IDS_PKY_04: p = "Nom_Colonne"; break;
- case IDS_PKY_05: p = "Numéro_Clé"; break;
- case IDS_PKY_06: p = "Nom_Clé"; break;
- case IDS_FKY_01: p = "PKTable_Catalog"; break;
- case IDS_FKY_02: p = "PKTable_Schema"; break;
- case IDS_FKY_03: p = "PKTable_Name"; break;
- case IDS_FKY_04: p = "PKColumn_Name"; break;
- case IDS_FKY_05: p = "FKTable_Catalog"; break;
- case IDS_FKY_06: p = "FKTable_Schema"; break;
- case IDS_FKY_07: p = "FKTable_Name"; break;
- case IDS_FKY_08: p = "FKColumn_Name"; break;
- case IDS_FKY_09: p = "Key_Seq"; break;
- case IDS_FKY_10: p = "Update_Rule"; break;
- case IDS_FKY_11: p = "Delete_Rule"; break;
- case IDS_FKY_12: p = "FK_Name"; break;
- case IDS_FKY_13: p = "PK_Name"; break;
- case IDS_STA_01: p = "Table_Catalog"; break;
- case IDS_STA_02: p = "Table_Schema"; break;
- case IDS_STA_03: p = "Table_Name"; break;
- case IDS_STA_04: p = "Non_Unique"; break;
- case IDS_STA_05: p = "Index_Qualifier"; break;
- case IDS_STA_06: p = "Index_Name"; break;
- case IDS_STA_07: p = "Type"; break;
- case IDS_STA_08: p = "Seq_in_Index"; break;
- case IDS_STA_09: p = "Column_Name"; break;
- case IDS_STA_10: p = "Collation"; break;
- case IDS_STA_11: p = "Cardinality"; break;
- case IDS_STA_12: p = "Pages"; break;
- case IDS_STA_13: p = "Filter_Condition"; break;
- case IDS_SPC_01: p = "Champ"; break;
- case IDS_SPC_02: p = "Nom_Colonne"; break;
- case IDS_SPC_03: p = "Type_Données"; break;
- case IDS_SPC_04: p = "Nom_Type"; break;
- case IDS_SPC_05: p = "Précision"; break;
- case IDS_SPC_06: p = "Longueur"; break;
- case IDS_SPC_07: p = "Echelle"; break;
- case IDS_SPC_08: p = "Pseudo_Colonne"; break;
- case IDS_DRV_01: p = "Description"; break;
- case IDS_DRV_02: p = "Attributs"; break;
- case IDS_DSC_01: p = "Nom"; break;
- case IDS_DSC_02: p = "Description"; break;
-#else // English
-#if 0
- case IDS_01: p = "%s: error allocating communication buffer of %d bytes"; break;
- case IDS_02: p = "%s: error allocating parser memory for %d columns"; break;
- case IDS_03: p = "%s: Invalid special command"; break;
- case IDS_04: p = "%s: Wrong number of arguments %d"; break;
- case IDS_05: p = "%s"; break;
- case IDS_06: p = "%s: Command bigger than internal buffer of size = %d"; break;
- case IDS_07: p = "%s: Data truncated to buffer size, actual length is %d bytes"; break;
- case IDS_08: p = "%s: Result bigger than internal buffer of size = %d"; break;
- case IDS_09: p = "Error in %s: %s"; break;
- case IDS_10: p = "%s: error allocating instance memory of %d bytes"; break;
- case IDS_11: p = "%s: wrong connection key value %d"; break;
- case IDS_12: p = "%s: No more than %d connections allowed from one process"; break;
- case IDS_13: p = "%s: invalid connection key value %d"; break;
- case IDS_14: p = "SafeDB: %s rc=%d"; break;
- case IDS_15: p = "Wrong communication Dll called for engine %s"; break;
-#endif // 0
- case IDS_TAB_01: p = "Table_Cat"; break;
- case IDS_TAB_02: p = "Table_Schema"; break;
- case IDS_TAB_03: p = "Table_Name"; break;
- case IDS_TAB_04: p = "Table_Type"; break;
- case IDS_TAB_05: p = "Remark"; break;
- case IDS_COL_01: p = "Table_Cat"; break;
- case IDS_COL_02: p = "Table_Schema"; break;
- case IDS_COL_03: p = "Table_Name"; break;
- case IDS_COL_04: p = "Column_Name"; break;
- case IDS_COL_05: p = "Data_Type"; break;
- case IDS_COL_06: p = "Type_Name"; break;
- case IDS_COL_07: p = "Column_Size"; break;
- case IDS_COL_08: p = "Buffer_Length"; break;
- case IDS_COL_09: p = "Decimal_Digits"; break;
- case IDS_COL_10: p = "Radix"; break;
- case IDS_COL_11: p = "Nullable"; break;
- case IDS_COL_12: p = "Remarks"; break;
-#if 0
- case IDS_INF_01: p = "Type_Name"; break;
- case IDS_INF_02: p = "Data_Type"; break;
- case IDS_INF_03: p = "Precision"; break;
- case IDS_INF_04: p = "Literal_Prefix"; break;
- case IDS_INF_05: p = "Literal_Suffix"; break;
- case IDS_INF_06: p = "Create_Params"; break;
- case IDS_INF_07: p = "Nullable"; break;
- case IDS_INF_08: p = "Case_Sensitive"; break;
- case IDS_INF_09: p = "Searchable"; break;
- case IDS_INF_10: p = "Unsigned_Attribute"; break;
- case IDS_INF_11: p = "Money"; break;
- case IDS_INF_12: p = "Auto_Increment"; break;
- case IDS_INF_13: p = "Local_Type_Name"; break;
- case IDS_INF_14: p = "Minimum_Scale"; break;
- case IDS_INF_15: p = "Maximum_Scale"; break;
-#endif // 0
- case IDS_PKY_01: p = "Table_Catalog"; break;
- case IDS_PKY_02: p = "Table_Schema"; break;
- case IDS_PKY_03: p = "Table_Name"; break;
- case IDS_PKY_04: p = "Column_Name"; break;
- case IDS_PKY_05: p = "Key_Seq"; break;
- case IDS_PKY_06: p = "Pk_Name"; break;
-#if 0
- case IDS_FKY_01: p = "PKTable_Catalog"; break;
- case IDS_FKY_02: p = "PKTable_Schema"; break;
- case IDS_FKY_03: p = "PKTable_Name"; break;
- case IDS_FKY_04: p = "PKColumn_Name"; break;
- case IDS_FKY_05: p = "FKTable_Catalog"; break;
- case IDS_FKY_06: p = "FKTable_Schema"; break;
- case IDS_FKY_07: p = "FKTable_Name"; break;
- case IDS_FKY_08: p = "FKColumn_Name"; break;
- case IDS_FKY_09: p = "Key_Seq"; break;
- case IDS_FKY_10: p = "Update_Rule"; break;
- case IDS_FKY_11: p = "Delete_Rule"; break;
- case IDS_FKY_12: p = "FK_Name"; break;
- case IDS_FKY_13: p = "PK_Name"; break;
-#endif // 0
- case IDS_STA_01: p = "Table_Catalog"; break;
- case IDS_STA_02: p = "Table_Schema"; break;
- case IDS_STA_03: p = "Table_Name"; break;
- case IDS_STA_04: p = "Non_Unique"; break;
- case IDS_STA_05: p = "Index_Qualifier"; break;
- case IDS_STA_06: p = "Index_Name"; break;
- case IDS_STA_07: p = "Type"; break;
- case IDS_STA_08: p = "Seq_in_Index"; break;
- case IDS_STA_09: p = "Column_Name"; break;
- case IDS_STA_10: p = "Collation"; break;
- case IDS_STA_11: p = "Cardinality"; break;
- case IDS_STA_12: p = "Pages"; break;
- case IDS_STA_13: p = "Filter_Condition"; break;
-#if 0
- case IDS_SPC_01: p = "Scope"; break;
- case IDS_SPC_02: p = "Column_Name"; break;
- case IDS_SPC_03: p = "Data_Type"; break;
- case IDS_SPC_04: p = "Type_Name"; break;
- case IDS_SPC_05: p = "Precision"; break;
- case IDS_SPC_06: p = "Length"; break;
- case IDS_SPC_07: p = "Scale"; break;
- case IDS_SPC_08: p = "Pseudo_Column"; break;
-#endif // 0
- case IDS_DRV_01: p = "Description"; break;
- case IDS_DRV_02: p = "Attributes"; break;
- case IDS_DSC_01: p = "Name"; break;
- case IDS_DSC_02: p = "Description"; break;
-#endif // English
- } // endswitch(id)
-
- return p;
- } // end of GetMsgid
-
-int GetRcString(int id, char *buf, int bufsize)
- {
- char *p = NULL, msg[32];
-
- if (!(p = GetMsgid(id))) {
- sprintf(msg, "ID=%d unknown", id);
- p = msg;
- } // endif p
-
- return sprintf(buf, "%.*s", bufsize-1, p);
- } // end of GetRcString
+/**************** RCMsg C Program Source Code File (.C) ****************/
+/* PROGRAM NAME: RCMSG */
+/* ------------- */
+/* Version 1.3 */
+/* */
+/* COPYRIGHT */
+/* ---------- */
+/* (C) Copyright to the author Olivier BERTRAND: 2005 - 2014 */
+/* */
+/* WHAT THIS PROGRAM DOES */
+/* ----------------------- */
+/* This program simulates LoadString. */
+/* */
+/***********************************************************************/
+#if !defined(XMSG)
+#include <stdio.h>
+#include <string.h>
+#include "resource.h"
+#include "rcmsg.h"
+#if defined(NEWMSG)
+#include "msgid.h"
+#endif // NEWMSG
+
+char *msglang(void);
+
+char *GetMsgid(int id)
+ {
+ char *p = NULL;
+
+ if (!stricmp(msglang(), "french"))
+ switch (id) {
+#include "frids.h"
+#if defined(NEWMSG)
+#include "frcas.h"
+#endif // NEWMSG
+ } // endswitch(id)
+
+ else // English
+ switch (id) {
+#include "enids.h"
+#if defined(NEWMSG)
+#include "encas.h"
+#endif // NEWMSG
+ } // endswitch(id)
+
+ return p;
+ } // end of GetMsgid
+
+int GetRcString(int id, char *buf, int bufsize)
+ {
+ char *p = NULL, msg[32];
+
+ if (!(p = GetMsgid(id))) {
+ sprintf(msg, "ID=%d unknown", id);
+ p = msg;
+ } // endif p
+
+ return sprintf(buf, "%.*s", bufsize-1, p);
+ } // end of GetRcString
+
+#endif // !XMSG
diff --git a/storage/connect/resource.h b/storage/connect/resource.h
index 8562224d403..1c3e1ee3727 100644
--- a/storage/connect/resource.h
+++ b/storage/connect/resource.h
@@ -1,147 +1,46 @@
-//{{NO_DEPENDENCIES}}
-// Microsoft Developer Studio generated include file.
-// Used by PlgSock.rc
-//
-#if 0
-#define IDS_00 115
-#define IDS_01 116
-#define IDS_02 117
-#define IDS_03 118
-#define IDS_04 119
-#define IDS_05 120
-#define IDS_06 121
-#define IDS_07 122
-#define IDS_08 123
-#define IDS_09 124
-#define IDS_10 125
-#define IDS_11 126
-#define IDS_12 127
-#define IDS_13 128
-#define IDS_14 129
-#define IDS_15 130
-#define IDS_16 131
-#define IDS_17 132
-#define IDS_18 133
-#define IDS_19 134
-#define IDS_20 135
-#define IDS_21 136
-#endif // 0
-#define IDS_TABLES 143
-#define IDS_TAB_01 144
-#define IDS_TAB_02 145
-#define IDS_TAB_03 146
-#define IDS_TAB_04 147
-#define IDS_TAB_05 148
-#define IDS_COLUMNS 159
-#define IDS_COL_01 160
-#define IDS_COL_02 161
-#define IDS_COL_03 162
-#define IDS_COL_04 163
-#define IDS_COL_05 164
-#define IDS_COL_06 165
-#define IDS_COL_07 166
-#define IDS_COL_08 167
-#define IDS_COL_09 168
-#define IDS_COL_10 169
-#define IDS_COL_11 170
-#define IDS_COL_12 171
-#if 0
-#define IDS_INFO 175
-#define IDS_INF_01 176
-#define IDS_INF_02 177
-#define IDS_INF_03 178
-#define IDS_INF_04 179
-#define IDS_INF_05 180
-#define IDS_INF_06 181
-#define IDS_INF_07 182
-#define IDS_INF_08 183
-#define IDS_INF_09 184
-#define IDS_INF_10 185
-#define IDS_INF_11 186
-#define IDS_INF_12 187
-#define IDS_INF_13 188
-#define IDS_INF_14 189
-#define IDS_INF_15 190
-#endif // 0
-#define IDS_PKEY 191
-#define IDS_PKY_01 192
-#define IDS_PKY_02 193
-#define IDS_PKY_03 194
-#define IDS_PKY_04 195
-#define IDS_PKY_05 196
-#define IDS_PKY_06 197
-#if 0
-#define IDS_FKEY 207
-#define IDS_FKY_01 208
-#define IDS_FKY_02 209
-#define IDS_FKY_03 210
-#define IDS_FKY_04 211
-#define IDS_FKY_05 212
-#define IDS_FKY_06 213
-#define IDS_FKY_07 214
-#define IDS_FKY_08 215
-#define IDS_FKY_09 216
-#define IDS_FKY_10 217
-#define IDS_FKY_11 218
-#define IDS_FKY_12 219
-#define IDS_FKY_13 220
-#endif // 0
-#define IDS_STAT 223
-#define IDS_STA_01 224
-#define IDS_STA_02 225
-#define IDS_STA_03 226
-#define IDS_STA_04 227
-#define IDS_STA_05 228
-#define IDS_STA_06 229
-#define IDS_STA_07 230
-#define IDS_STA_08 231
-#define IDS_STA_09 232
-#define IDS_STA_10 233
-#define IDS_STA_11 234
-#define IDS_STA_12 235
-#define IDS_STA_13 236
-#if 0
-#define IDS_SPCOLS 1247
-#define IDS_SPC_01 1248
-#define IDS_SPC_02 1249
-#define IDS_SPC_03 1250
-#define IDS_SPC_04 1251
-#define IDS_SPC_05 1252
-#define IDS_SPC_06 1253
-#define IDS_SPC_07 1254
-#define IDS_SPC_08 1255
-#define IDS_CNX 1263
-#define IDS_CNX_01 1264
-#define IDS_CNX_02 1265
-#define IDS_CNX_03 1266
-#define IDS_CNX_04 1267
-#define IDS_PLGCOL 1279
-#define IDS_PLG_01 1280
-#define IDS_PLG_02 1281
-#define IDS_PLG_03 1282
-#define IDS_PLG_04 1283
-#define IDS_PLG_05 1284
-#define IDS_PLG_06 1285
-#define IDS_PLG_07 1286
-#define IDS_PLG_08 1287
-#define IDS_PLG_09 1288
-#endif // 0
-#define IDS_DRIVER 1290
-#define IDS_DRV_01 1291
-#define IDS_DRV_02 1292
-#define IDS_DSRC 1295
-#define IDS_DSC_01 1296
-#define IDS_DSC_02 1297
-//#define IDS_DSC_03 1298
-//#define IDS_DSC_04 1299
-
-// Next default values for new objects
-//
-#ifdef APSTUDIO_INVOKED
-#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE 1300
-#define _APS_NEXT_COMMAND_VALUE 40001
-#define _APS_NEXT_CONTROL_VALUE 1440
-#define _APS_NEXT_SYMED_VALUE 101
-#endif
-#endif
+#define IDS_TABLES 100
+#define IDS_TAB_01 101
+#define IDS_TAB_02 102
+#define IDS_TAB_03 103
+#define IDS_TAB_04 104
+#define IDS_TAB_05 105
+#define IDS_COLUMNS 106
+#define IDS_COL_01 107
+#define IDS_COL_02 108
+#define IDS_COL_03 109
+#define IDS_COL_04 110
+#define IDS_COL_05 111
+#define IDS_COL_06 112
+#define IDS_COL_07 113
+#define IDS_COL_08 114
+#define IDS_COL_09 115
+#define IDS_COL_10 116
+#define IDS_COL_11 117
+#define IDS_COL_12 118
+#define IDS_PKEY 119
+#define IDS_PKY_01 120
+#define IDS_PKY_02 121
+#define IDS_PKY_03 122
+#define IDS_PKY_04 123
+#define IDS_PKY_05 124
+#define IDS_PKY_06 125
+#define IDS_STAT 126
+#define IDS_STA_01 127
+#define IDS_STA_02 128
+#define IDS_STA_03 129
+#define IDS_STA_04 130
+#define IDS_STA_05 131
+#define IDS_STA_06 132
+#define IDS_STA_07 133
+#define IDS_STA_08 134
+#define IDS_STA_09 135
+#define IDS_STA_10 136
+#define IDS_STA_11 137
+#define IDS_STA_12 138
+#define IDS_STA_13 139
+#define IDS_DRIVER 140
+#define IDS_DRV_01 141
+#define IDS_DRV_02 142
+#define IDS_DSRC 143
+#define IDS_DSC_01 144
+#define IDS_DSC_02 145
diff --git a/storage/connect/tabfmt.h b/storage/connect/tabfmt.h
index 1b39a47e7d9..8a1e1f17561 100644
--- a/storage/connect/tabfmt.h
+++ b/storage/connect/tabfmt.h
@@ -161,7 +161,7 @@ class TDBFMT : public TDBCSV {
protected:
virtual bool PrepareWriting(PGLOBAL g)
- {strcpy(g->Message, "FMT is read only"); return true;}
+ {sprintf(g->Message, MSG(TABLE_READ_ONLY), "FMT"); return true;}
// Members
PSZ *FldFormat; // Field read format
diff --git a/storage/connect/tabmysql.cpp b/storage/connect/tabmysql.cpp
index 80d384d611e..3ec9a1feaee 100644
--- a/storage/connect/tabmysql.cpp
+++ b/storage/connect/tabmysql.cpp
@@ -859,6 +859,7 @@ bool TDBMYSQL::OpenDB(PGLOBAL g)
/* Table already open, just replace it at its beginning. */
/*******************************************************************/
Myc.Rewind();
+ N = -1;
return false;
} // endif use
diff --git a/storage/connect/tabodbc.cpp b/storage/connect/tabodbc.cpp
index 6f006fb5967..bbc17129aaf 100644
--- a/storage/connect/tabodbc.cpp
+++ b/storage/connect/tabodbc.cpp
@@ -95,7 +95,7 @@ ODBCDEF::ODBCDEF(void)
{
Connect= Tabname= Tabschema= Tabcat= Srcdef= Qchar= Qrystr= Sep= NULL;
Catver = Options = Quoted = Maxerr = Maxres = 0;
- Xsrc = false;
+ Scrollable = Xsrc = false;
} // end of ODBCDEF constructor
/***********************************************************************/
@@ -129,6 +129,11 @@ bool ODBCDEF::DefineAM(PGLOBAL g, LPCSTR am, int poff)
Maxres = GetIntCatInfo("Maxres", 0);
Quoted = GetIntCatInfo("Quoted", 0);
Options = ODBConn::noOdbcDialog;
+//Options = ODBConn::noOdbcDialog | ODBConn::useCursorLib;
+
+ if ((Scrollable = GetBoolCatInfo("Scrollable", false)))
+ Elemt = 0; // Not compatible with extended fetch
+
Pseudo = 2; // FILID is Ok but not ROWID
return false;
} // end of DefineAM
@@ -193,6 +198,7 @@ TDBODBC::TDBODBC(PODEF tdp) : TDBASE(tdp)
Quoted = MY_MAX(0, tdp->GetQuoted());
Rows = tdp->GetElemt();
Catver = tdp->Catver;
+ Scrollable = tdp->Scrollable;
} else {
Connect = NULL;
TableName = NULL;
@@ -205,6 +211,7 @@ TDBODBC::TDBODBC(PODEF tdp) : TDBASE(tdp)
Quoted = 0;
Rows = 0;
Catver = 0;
+ Scrollable = false;
} // endif tdp
Quote = NULL;
@@ -231,6 +238,7 @@ TDBODBC::TDBODBC(PTDBODBC tdbp) : TDBASE(tdbp)
Catalog = tdbp->Catalog;
Srcdef = tdbp->Srcdef;
Qrystr = tdbp->Qrystr;
+ Scrollable = tdbp->Scrollable;
Quote = tdbp->Quote;
Query = tdbp->Query;
Count = tdbp->Count;
@@ -757,6 +765,12 @@ bool TDBODBC::OpenDB(PGLOBAL g)
// To_Kindex->Reset();
// rewind(Stream); >>>>>>> Something to be done with Cursor <<<<<<<
+ if (Ocp->Rewind(Query, (PODBCCOL)Columns)) {
+ Ocp->Close();
+ return true;
+ } // endif Rewind
+
+ Fpos = 0;
return false;
} // endif use
diff --git a/storage/connect/tabodbc.h b/storage/connect/tabodbc.h
index 360f52c9d21..f042b0c73ca 100644
--- a/storage/connect/tabodbc.h
+++ b/storage/connect/tabodbc.h
@@ -59,6 +59,7 @@ class DllExport ODBCDEF : public TABDEF { /* Logical table description */
int Quoted; /* Identifier quoting level */
int Maxerr; /* Maxerr for an Exec table */
int Maxres; /* Maxres for a catalog table */
+ bool Scrollable; /* Use scrollable cursor */
bool Xsrc; /* Execution type */
}; // end of ODBCDEF
@@ -142,6 +143,7 @@ class TDBODBC : public TDBASE {
int Rbuf; // Number of lines read in buffer
int BufSize; // Size of connect string buffer
int Nparm; // The number of statement parameters
+ bool Scrollable; // Use scrollable cursor
}; // end of class TDBODBC
/***********************************************************************/
diff --git a/storage/connect/user_connect.cc b/storage/connect/user_connect.cc
index 557b94d8347..4affe447b00 100644
--- a/storage/connect/user_connect.cc
+++ b/storage/connect/user_connect.cc
@@ -47,13 +47,17 @@
#include "user_connect.h"
#include "mycat.h"
-extern uint worksize;
-
/****************************************************************************/
/* Initialize the user_connect static member. */
/****************************************************************************/
PCONNECT user_connect::to_users= NULL;
+/****************************************************************************/
+/* Get the work_size SESSION variable value . */
+/****************************************************************************/
+uint GetWorkSize(void);
+void SetWorkSize(uint);
+
/* -------------------------- class user_connect -------------------------- */
/****************************************************************************/
@@ -90,6 +94,7 @@ user_connect::~user_connect()
bool user_connect::user_init()
{
// Initialize Plug-like environment
+ uint worksize= GetWorkSize();
PACTIVITY ap= NULL;
PDBUSER dup= NULL;
@@ -142,6 +147,8 @@ void user_connect::SetHandler(ha_connect *hc)
bool user_connect::CheckCleanup(void)
{
if (thdp->query_id > last_query_id) {
+ uint worksize= GetWorkSize();
+
PlugCleanup(g, true);
if (g->Sarea_Size != worksize) {
@@ -151,7 +158,7 @@ bool user_connect::CheckCleanup(void)
// Check whether the work area size was changed
if (!(g->Sarea = PlugAllocMem(g, worksize))) {
g->Sarea = PlugAllocMem(g, g->Sarea_Size);
- worksize = g->Sarea_Size; // Was too big
+ SetWorkSize(g->Sarea_Size); // Was too big
} else
g->Sarea_Size = worksize; // Ok
diff --git a/storage/connect/xindex.cpp b/storage/connect/xindex.cpp
index f87ba8e035a..024a9c081cd 100755
--- a/storage/connect/xindex.cpp
+++ b/storage/connect/xindex.cpp
@@ -62,7 +62,7 @@
/***********************************************************************/
extern MBLOCK Nmblk; /* Used to initialize MBLOCK's */
#if defined(XMAP)
-extern bool xmap;
+extern my_bool xmap;
#endif // XMAP
/***********************************************************************/