diff options
author | Jan Lindström <jan.lindstrom@mariadb.com> | 2022-09-06 10:51:18 +0300 |
---|---|---|
committer | Jan Lindström <jan.lindstrom@mariadb.com> | 2022-09-06 10:51:18 +0300 |
commit | c0a6ce61d88104db14f7107cb16edf475b46bffd (patch) | |
tree | 42fb0b16ed0468f5732e2a4545e986078f351072 | |
parent | f6118acda961a7fde17f2984d7600e211cd47ee3 (diff) | |
parent | ddd8901cd2523289720fa8bd3bbd7dbc2d3f9ad5 (diff) | |
download | mariadb-git-c0a6ce61d88104db14f7107cb16edf475b46bffd.tar.gz |
Merge 10.9 into 10.10
72 files changed, 516 insertions, 2968 deletions
diff --git a/cmake/os/WindowsCache.cmake b/cmake/os/WindowsCache.cmake index a5f808c8d2c..6cd19262a3c 100644 --- a/cmake/os/WindowsCache.cmake +++ b/cmake/os/WindowsCache.cmake @@ -63,6 +63,10 @@ SET(HAVE_GETHOSTBYADDR_R CACHE INTERNAL "") SET(HAVE_GETHRTIME CACHE INTERNAL "") SET(HAVE_GETPAGESIZE CACHE INTERNAL "") SET(HAVE_GETPASS CACHE INTERNAL "") +SET(HAVE_GETMNTENT CACHE INTERNAL "") +SET(HAVE_GETMNTENT_IN_SYS_MNTAB CACHE INTERNAL "") +SET(HAVE_GETMNTINFO CACHE INTERNAL "") +SET(HAVE_GETMNTINFO64 CACHE INTERNAL "") SET(HAVE_GETPASSPHRASE CACHE INTERNAL "") SET(HAVE_GETPWNAM CACHE INTERNAL "") SET(HAVE_GETPWUID CACHE INTERNAL "") @@ -145,6 +149,7 @@ SET(HAVE_SELECT 1 CACHE INTERNAL "") SET(HAVE_SELECT_H CACHE INTERNAL "") SET(HAVE_SETENV CACHE INTERNAL "") SET(HAVE_SETLOCALE 1 CACHE INTERNAL "") +SET(HAVE_SETMNTENT CACHE INTERNAL "") SET(HAVE_SIGACTION CACHE INTERNAL "") SET(HAVE_SIGINT 1 CACHE INTERNAL "") SET(HAVE_SIGPIPE CACHE INTERNAL "") diff --git a/config.h.cmake b/config.h.cmake index cdacac164af..f5a0d7e2396 100644 --- a/config.h.cmake +++ b/config.h.cmake @@ -34,6 +34,11 @@ #cmakedefine HAVE_FLOAT_H 1 #cmakedefine HAVE_FNMATCH_H 1 #cmakedefine HAVE_FPU_CONTROL_H 1 +#cmakedefine HAVE_GETMNTENT 1 +#cmakedefine HAVE_GETMNTENT_IN_SYS_MNTAB 1 +#cmakedefine HAVE_GETMNTINFO 1 +#cmakedefine HAVE_GETMNTINFO64 1 +#cmakedefine HAVE_GETMNTINFO_TAKES_statvfs 1 #cmakedefine HAVE_GRP_H 1 #cmakedefine HAVE_IA64INTRIN_H 1 #cmakedefine HAVE_IEEEFP_H 1 @@ -209,6 +214,7 @@ #cmakedefine HAVE_SELECT 1 #cmakedefine HAVE_SETENV 1 #cmakedefine HAVE_SETLOCALE 1 +#cmakedefine HAVE_SETMNTENT 1 #cmakedefine HAVE_SETUPTERM 1 #cmakedefine HAVE_SIGSET 1 #cmakedefine HAVE_SIGACTION 1 diff --git a/include/wsrep.h b/include/wsrep.h index e68b14f4a17..e4535deabfe 100644 --- a/include/wsrep.h +++ b/include/wsrep.h @@ -17,44 +17,46 @@ #define WSREP_INCLUDED #include <my_config.h> +#include "log.h" #ifdef WITH_WSREP - #define IF_WSREP(A,B) A - #define DBUG_ASSERT_IF_WSREP(A) DBUG_ASSERT(A) -#define WSREP_MYSQL_DB (char *)"mysql" - -#define WSREP_TO_ISOLATION_BEGIN(db_, table_, table_list_) \ - if (WSREP_ON && WSREP(thd) && \ - wsrep_to_isolation_begin(thd, db_, table_, table_list_)) \ - goto wsrep_error_label; - -#define WSREP_TO_ISOLATION_BEGIN_CREATE(db_, table_, table_list_, create_info_) \ - if (WSREP_ON && WSREP(thd) && \ - wsrep_to_isolation_begin(thd, db_, table_, \ - table_list_, nullptr, nullptr, create_info_)) \ - goto wsrep_error_label; - -#define WSREP_TO_ISOLATION_BEGIN_ALTER(db_, table_, table_list_, alter_info_, fk_tables_, create_info_) \ - if (WSREP(thd) && \ - wsrep_to_isolation_begin(thd, db_, table_, \ - table_list_, alter_info_, \ - fk_tables_, create_info_)) - -/* - Checks if lex->no_write_to_binlog is set for statements that use LOCAL or - NO_WRITE_TO_BINLOG. -*/ -#define WSREP_TO_ISOLATION_BEGIN_WRTCHK(db_, table_, table_list_) \ - if (WSREP(thd) && !thd->lex->no_write_to_binlog && \ - wsrep_to_isolation_begin(thd, db_, table_, table_list_)) \ - goto wsrep_error_label; +extern ulong wsrep_debug; // wsrep_mysqld.cc +extern void WSREP_LOG(void (*fun)(const char* fmt, ...), const char* fmt, ...); + +#define WSREP_DEBUG(...) \ + if (wsrep_debug) WSREP_LOG(sql_print_information, ##__VA_ARGS__) +#define WSREP_INFO(...) WSREP_LOG(sql_print_information, ##__VA_ARGS__) +#define WSREP_WARN(...) WSREP_LOG(sql_print_warning, ##__VA_ARGS__) +#define WSREP_ERROR(...) WSREP_LOG(sql_print_error, ##__VA_ARGS__) +#define WSREP_UNKNOWN(fmt, ...) WSREP_ERROR("UNKNOWN: " fmt, ##__VA_ARGS__) + +#define WSREP_LOG_CONFLICT_THD(thd, role) \ + WSREP_INFO("%s: \n " \ + " THD: %lu, mode: %s, state: %s, conflict: %s, seqno: %lld\n " \ + " SQL: %s", \ + role, \ + thd_get_thread_id(thd), \ + wsrep_thd_client_mode_str(thd), \ + wsrep_thd_client_state_str(thd), \ + wsrep_thd_transaction_state_str(thd), \ + wsrep_thd_trx_seqno(thd), \ + wsrep_thd_query(thd) \ + ); + +#define WSREP_LOG_CONFLICT(bf_thd, victim_thd, bf_abort) \ + if (wsrep_debug || wsrep_log_conflicts) \ + { \ + WSREP_INFO("cluster conflict due to %s for threads:", \ + (bf_abort) ? "high priority abort" : "certification failure" \ + ); \ + if (bf_thd) WSREP_LOG_CONFLICT_THD(bf_thd, "Winning thread"); \ + if (victim_thd) WSREP_LOG_CONFLICT_THD(victim_thd, "Victim thread"); \ + WSREP_INFO("context: %s:%d", __FILE__, __LINE__); \ + } -#define WSREP_SYNC_WAIT(thd_, before_) \ - { if (WSREP_CLIENT(thd_) && \ - wsrep_sync_wait(thd_, before_)) goto wsrep_error_label; } #else /* !WITH_WSREP */ @@ -62,13 +64,11 @@ * (e.g. embedded) */ #define IF_WSREP(A,B) B +//#define DBUG_ASSERT_IF_WSREP(A) #define WSREP_DEBUG(...) +//#define WSREP_INFO(...) +//#define WSREP_WARN(...) #define WSREP_ERROR(...) -#define WSREP_TO_ISOLATION_BEGIN(db_, table_, table_list_) do { } while(0) -#define WSREP_TO_ISOLATION_BEGIN_ALTER(db_, table_, table_list_, alter_info_, fk_tables_, create_info_) -#define WSREP_TO_ISOLATION_BEGIN_CREATE(db_, table_, table_list_, create_info_) -#define WSREP_TO_ISOLATION_BEGIN_WRTCHK(db_, table_, table_list_) -#define WSREP_SYNC_WAIT(thd_, before_) #endif /* WITH_WSREP */ #endif /* WSREP_INCLUDED */ diff --git a/mysql-test/suite/encryption/r/innodb-redo-badkey.result b/mysql-test/suite/encryption/r/innodb-redo-badkey.result index 9d583b32101..34fd043a7bd 100644 --- a/mysql-test/suite/encryption/r/innodb-redo-badkey.result +++ b/mysql-test/suite/encryption/r/innodb-redo-badkey.result @@ -8,6 +8,7 @@ call mtr.add_suppression("InnoDB: Database page corruption on disk or a failed r call mtr.add_suppression("InnoDB: Failed to read page .* from file '.*'"); call mtr.add_suppression("InnoDB: OPT_PAGE_CHECKSUM mismatch"); call mtr.add_suppression("InnoDB: Set innodb_force_recovery=1 to ignore corruption"); +call mtr.add_suppression("InnoDB: (Unable to apply log to|Discarding log for) corrupted page "); call mtr.add_suppression("InnoDB: Plugin initialization aborted"); call mtr.add_suppression("Plugin 'InnoDB' registration as a STORAGE ENGINE failed"); call mtr.add_suppression("\\[ERROR\\] InnoDB: Cannot decrypt \\[page id: space="); diff --git a/mysql-test/suite/encryption/t/corrupted_during_recovery.test b/mysql-test/suite/encryption/t/corrupted_during_recovery.test index f838ea04c28..e4a31a0b478 100644 --- a/mysql-test/suite/encryption/t/corrupted_during_recovery.test +++ b/mysql-test/suite/encryption/t/corrupted_during_recovery.test @@ -9,6 +9,7 @@ call mtr.add_suppression("InnoDB: Database page corruption on disk or a failed r call mtr.add_suppression("InnoDB: Failed to read page [123] from file '.*test.t1\\.ibd': Table is compressed or encrypted but uncompress or decrypt failed"); call mtr.add_suppression("InnoDB: The page \\[page id: space=\\d+, page number=3\\] in file '.*test.t1\\.ibd' cannot be decrypted"); call mtr.add_suppression("InnoDB: Table in tablespace \\d+ encrypted. However key management plugin or used key_version \\d+ is not found or used encryption algorithm or method does not match. Can't continue opening the table."); +call mtr.add_suppression("InnoDB: (Unable to apply log to|Discarding log for) corrupted page "); --enable_query_log let INNODB_PAGE_SIZE=`select @@innodb_page_size`; diff --git a/mysql-test/suite/encryption/t/innodb-redo-badkey.test b/mysql-test/suite/encryption/t/innodb-redo-badkey.test index fba342aad04..393ca4ad375 100644 --- a/mysql-test/suite/encryption/t/innodb-redo-badkey.test +++ b/mysql-test/suite/encryption/t/innodb-redo-badkey.test @@ -17,6 +17,7 @@ call mtr.add_suppression("InnoDB: Database page corruption on disk or a failed r call mtr.add_suppression("InnoDB: Failed to read page .* from file '.*'"); call mtr.add_suppression("InnoDB: OPT_PAGE_CHECKSUM mismatch"); call mtr.add_suppression("InnoDB: Set innodb_force_recovery=1 to ignore corruption"); +call mtr.add_suppression("InnoDB: (Unable to apply log to|Discarding log for) corrupted page "); call mtr.add_suppression("InnoDB: Plugin initialization aborted"); call mtr.add_suppression("Plugin 'InnoDB' registration as a STORAGE ENGINE failed"); # for innodb_checksum_algorithm=full_crc32 only diff --git a/mysql-test/suite/innodb/r/change_column_collation.result b/mysql-test/suite/innodb/r/change_column_collation.result index 94dfa77bbd0..9456fdcfd27 100644 --- a/mysql-test/suite/innodb/r/change_column_collation.result +++ b/mysql-test/suite/innodb/r/change_column_collation.result @@ -51,25 +51,39 @@ id msg DROP TABLE t1; CREATE TABLE t1 ( id INT PRIMARY KEY, +f1 INT NOT NULL, +f2 INT NOT NULL, +f3 INT NOT NULL, msg VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin, -unique index(msg) +msg_1 VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin, +unique index(f1, msg, f2, msg_1, f3), +unique index(f1, msg_1, f2, msg, f3), +unique index(f1, msg, f3, msg_1, f2), +unique index(f1, msg_1, f3, msg, f2), +unique index(f2, msg_1, f1, msg, f3), +unique index(f2, msg, f3, msg_1, f1), +unique index(f3, f2, msg, msg_1, f1), +unique index(f3, msg, msg_1, f1, f2) ) ENGINE=INNODB; -INSERT INTO t1 VALUES (1, 'aaa'); +INSERT INTO t1 VALUES (1, 1, 1, 1, 'aaa', 'aaa'); SET DEBUG_DBUG="+d,create_index_fail"; SET DEBUG_SYNC="innodb_inplace_alter_table_enter SIGNAL con1_go WAIT_FOR alter_signal"; -ALTER TABLE t1 MODIFY msg VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci, ALGORITHM=NOCOPY; +ALTER TABLE t1 MODIFY msg VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY msg_1 VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci, ALGORITHM=NOCOPY; connection con1; SET DEBUG_SYNC="now WAIT_FOR con1_go"; BEGIN; SELECT * FROM t1; -id msg -1 aaa +id f1 f2 f3 msg msg_1 +1 1 1 1 aaa aaa SET DEBUG_SYNC="now SIGNAL alter_signal"; connection default; ERROR 23000: Duplicate entry '' for key '*UNKNOWN*' +CHECK TABLE t1; +Table Op Msg_type Msg_text +test.t1 check status OK connection con1; rollback; -INSERT INTO t1 VALUES(2, 'bbb'); +INSERT INTO t1 VALUES(2, 2, 2, 2, 'bbb', 'bbb'); disconnect con1; connection default; SET DEBUG_SYNC=reset; @@ -77,11 +91,22 @@ SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `id` int(11) NOT NULL, + `f1` int(11) NOT NULL, + `f2` int(11) NOT NULL, + `f3` int(11) NOT NULL, `msg` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, + `msg_1` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin DEFAULT NULL, PRIMARY KEY (`id`), - UNIQUE KEY `msg` (`msg`) + UNIQUE KEY `f1` (`f1`,`msg`,`f2`,`msg_1`,`f3`), + UNIQUE KEY `f1_2` (`f1`,`msg_1`,`f2`,`msg`,`f3`), + UNIQUE KEY `f1_3` (`f1`,`msg`,`f3`,`msg_1`,`f2`), + UNIQUE KEY `f1_4` (`f1`,`msg_1`,`f3`,`msg`,`f2`), + UNIQUE KEY `f2` (`f2`,`msg_1`,`f1`,`msg`,`f3`), + UNIQUE KEY `f2_2` (`f2`,`msg`,`f3`,`msg_1`,`f1`), + UNIQUE KEY `f3` (`f3`,`f2`,`msg`,`msg_1`,`f1`), + UNIQUE KEY `f3_2` (`f3`,`msg`,`msg_1`,`f1`,`f2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -INSERT INTO t1 VALUES(3, 'ccc'); +INSERT INTO t1 VALUES(3, 3, 3, 3, 'ccc', 'ccc'); DROP TABLE t1; CREATE TABLE t1(id INT PRIMARY KEY, msg VARCHAR(100), msg_1 VARCHAR(100) AS (msg) VIRTUAL, diff --git a/mysql-test/suite/innodb/r/leaf_page_corrupted_during_recovery.result b/mysql-test/suite/innodb/r/leaf_page_corrupted_during_recovery.result index 37ddb0a9348..ca010d663fa 100644 --- a/mysql-test/suite/innodb/r/leaf_page_corrupted_during_recovery.result +++ b/mysql-test/suite/innodb/r/leaf_page_corrupted_during_recovery.result @@ -17,4 +17,8 @@ pk c 1 sql SELECT * FROM t1 WHERE pk = 12; ERROR HY000: Index for table 't1' is corrupt; try to repair it +CHECK TABLE t1; +Table Op Msg_type Msg_text +test.t1 check Warning InnoDB: The B-tree of index PRIMARY is corrupted. +test.t1 check error Corrupt DROP TABLE t1; diff --git a/mysql-test/suite/innodb/t/change_column_collation.test b/mysql-test/suite/innodb/t/change_column_collation.test index 9b811830d3f..b70925cf411 100644 --- a/mysql-test/suite/innodb/t/change_column_collation.test +++ b/mysql-test/suite/innodb/t/change_column_collation.test @@ -78,15 +78,26 @@ DROP TABLE t1; CREATE TABLE t1 ( id INT PRIMARY KEY, + f1 INT NOT NULL, + f2 INT NOT NULL, + f3 INT NOT NULL, msg VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin, - unique index(msg) + msg_1 VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin, + unique index(f1, msg, f2, msg_1, f3), + unique index(f1, msg_1, f2, msg, f3), + unique index(f1, msg, f3, msg_1, f2), + unique index(f1, msg_1, f3, msg, f2), + unique index(f2, msg_1, f1, msg, f3), + unique index(f2, msg, f3, msg_1, f1), + unique index(f3, f2, msg, msg_1, f1), + unique index(f3, msg, msg_1, f1, f2) ) ENGINE=INNODB; -INSERT INTO t1 VALUES (1, 'aaa'); +INSERT INTO t1 VALUES (1, 1, 1, 1, 'aaa', 'aaa'); SET DEBUG_DBUG="+d,create_index_fail"; SET DEBUG_SYNC="innodb_inplace_alter_table_enter SIGNAL con1_go WAIT_FOR alter_signal"; --send -ALTER TABLE t1 MODIFY msg VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci, ALGORITHM=NOCOPY; +ALTER TABLE t1 MODIFY msg VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci, MODIFY msg_1 VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci, ALGORITHM=NOCOPY; connection con1; SET DEBUG_SYNC="now WAIT_FOR con1_go"; @@ -96,14 +107,15 @@ SET DEBUG_SYNC="now SIGNAL alter_signal"; connection default; --error ER_DUP_ENTRY reap; +CHECK TABLE t1; connection con1; rollback; -INSERT INTO t1 VALUES(2, 'bbb'); +INSERT INTO t1 VALUES(2, 2, 2, 2, 'bbb', 'bbb'); disconnect con1; connection default; SET DEBUG_SYNC=reset; SHOW CREATE TABLE t1; -INSERT INTO t1 VALUES(3, 'ccc'); +INSERT INTO t1 VALUES(3, 3, 3, 3, 'ccc', 'ccc'); DROP TABLE t1; # Inplace Collation change is not supported for virtual column diff --git a/mysql-test/suite/innodb/t/corrupted_during_recovery.test b/mysql-test/suite/innodb/t/corrupted_during_recovery.test index 6e0c5610ba1..f383d9ab9b8 100644 --- a/mysql-test/suite/innodb/t/corrupted_during_recovery.test +++ b/mysql-test/suite/innodb/t/corrupted_during_recovery.test @@ -6,6 +6,7 @@ call mtr.add_suppression("Plugin 'InnoDB' init function returned error"); call mtr.add_suppression("Plugin 'InnoDB' registration as a STORAGE ENGINE failed"); call mtr.add_suppression("InnoDB: Database page corruption on disk or a failed read of file '.*test.t1\\.ibd' page"); call mtr.add_suppression("InnoDB: Failed to read page 3 from file '.*test.t1\\.ibd': Page read from tablespace is corrupted."); +call mtr.add_suppression("InnoDB: (Unable to apply log to|Discarding log for) corrupted page .*, page number=3\\]"); call mtr.add_suppression("Table test/t1 is corrupted. Please drop the table and recreate\\."); call mtr.add_suppression("InnoDB: File '.*test/t1\\.ibd' is corrupted"); call mtr.add_suppression("InnoDB: A long wait .* was observed for dict_sys"); diff --git a/mysql-test/suite/innodb/t/leaf_page_corrupted_during_recovery.test b/mysql-test/suite/innodb/t/leaf_page_corrupted_during_recovery.test index d4391f89ec1..ddf0090c9e2 100644 --- a/mysql-test/suite/innodb/t/leaf_page_corrupted_during_recovery.test +++ b/mysql-test/suite/innodb/t/leaf_page_corrupted_during_recovery.test @@ -4,12 +4,14 @@ --disable_query_log call mtr.add_suppression("InnoDB: Database page corruption on disk or a failed read of file '.*test.t1\\.ibd' page"); call mtr.add_suppression("\\[ERROR\\] InnoDB: Failed to read page 19 from file '.*test.t1\\.ibd': Page read from tablespace is corrupted\\."); +call mtr.add_suppression("InnoDB: (Unable to apply log to|Discarding log for) corrupted page .*, page number=19\\]"); call mtr.add_suppression("\\[ERROR\\] InnoDB: Plugin initialization aborted at srv0start\\.cc.* with error Data structure corruption"); call mtr.add_suppression("\\[ERROR\\] Plugin 'InnoDB' (init function|registration)"); call mtr.add_suppression("\\[ERROR\\] InnoDB: We detected index corruption"); call mtr.add_suppression("\\[ERROR\\] (mysqld|mariadbd).*: Index for table 't1' is corrupt; try to repair it"); call mtr.add_suppression("InnoDB: btr_pcur_open_low level: 0 table: `test`\\.`t1` index: `PRIMARY`"); call mtr.add_suppression("InnoDB: File '.*test/t1\\.ibd' is corrupted"); +call mtr.add_suppression("InnoDB: In page .* of index `PRIMARY` of table `test`\\.`t1`"); --enable_query_log CREATE TABLE t1 (pk INT PRIMARY KEY, c CHAR(255))ENGINE=InnoDB STATS_PERSISTENT=0; @@ -53,6 +55,7 @@ let $restart_parameters=--innodb-force-recovery=2; SELECT * FROM t1 WHERE PK = 1; --error ER_NOT_KEYFILE SELECT * FROM t1 WHERE pk = 12; +CHECK TABLE t1; DROP TABLE t1; let $restart_parameters=; diff --git a/mysys/my_gethwaddr.c b/mysys/my_gethwaddr.c index 0fa4fb2f995..6bba553a549 100644 --- a/mysys/my_gethwaddr.c +++ b/mysys/my_gethwaddr.c @@ -111,7 +111,7 @@ my_bool my_gethwaddr(uchar *to) for (i= 0; res && i < ifc.ifc_len / sizeof(ifr[0]); i++) { #if !defined(_AIX) || !defined(__linux__) -#if defined(__linux___) +#if defined(__linux__) #define HWADDR_DATA ifr[i].ifr_hwaddr.sa_data #else #define HWADDR_DATA ifr[i].ifr_hwaddr diff --git a/plugin/disks/CMakeLists.txt b/plugin/disks/CMakeLists.txt index d0f34b04027..4e40842cad0 100644 --- a/plugin/disks/CMakeLists.txt +++ b/plugin/disks/CMakeLists.txt @@ -1,7 +1,24 @@ INCLUDE (CheckIncludeFiles) -CHECK_INCLUDE_FILES ("sys/statvfs.h;mntent.h" INFO_HEADERS LANGUAGE CXX) -IF (INFO_HEADERS) +CHECK_SYMBOL_EXISTS (getmntent "mntent.h" HAVE_GETMNTENT) +CHECK_SYMBOL_EXISTS (getmntent "sys/mnttab.h" HAVE_GETMNTENT_IN_SYS_MNTAB) +CHECK_SYMBOL_EXISTS (setmntent "mntent.h" HAVE_SETMNTENT) +CHECK_SYMBOL_EXISTS (getmntinfo "sys/types.h;sys/mount.h" HAVE_GETMNTINFO) +CHECK_SYMBOL_EXISTS (getmntinfo64 "sys/types.h;sys/mount.h" HAVE_GETMNTINFO64) + +IF (HAVE_GETMNTINFO) +CHECK_CXX_SOURCE_COMPILES(" +#include <sys/types.h> +#include <sys/statvfs.h> +int main() +{ + struct statvfs *s; + return getmntinfo(&s, ST_WAIT); +} + " HAVE_GETMNTINFO_TAKES_statvfs) +ENDIF() +IF (HAVE_GETMNTENT OR HAVE_GETMNTENT_IN_SYS_MNTAB OR + HAVE_GETMNTINFO OR HAVE_GETMNTINFO64) INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/sql) MYSQL_ADD_PLUGIN(DISKS information_schema_disks.cc MODULE_ONLY RECOMPILE_FOR_EMBEDDED) ENDIF() diff --git a/plugin/disks/information_schema_disks.cc b/plugin/disks/information_schema_disks.cc index 042cfaffaa4..174264c3269 100644 --- a/plugin/disks/information_schema_disks.cc +++ b/plugin/disks/information_schema_disks.cc @@ -17,11 +17,45 @@ #include <my_global.h> #include <sys/statvfs.h> #include <sys/types.h> +#if defined(HAVE_GETMNTENT) #include <mntent.h> +#elif !defined(HAVE_GETMNTINFO_TAKES_statvfs) +/* getmntinfo (the not NetBSD variants) */ +#include <sys/param.h> +#include <sys/ucred.h> +#include <sys/mount.h> +#endif +#if defined(HAVE_GETMNTENT_IN_SYS_MNTAB) +#include <sys/mnttab.h> +#define HAVE_GETMNTENT +#endif #include <sql_class.h> #include <sql_i_s.h> #include <sql_acl.h> /* check_global_access() */ +/* + This intends to support *BSD's, macOS, Solaris, AIX, HP-UX, and Linux. + + specificly: + FreeBSD/OpenBSD/DragonFly (statfs) NetBSD (statvfs) uses getmntinfo(). + macOS uses getmntinfo64(). + Linux can use getmntent_r(), but we've just used getmntent for simplification. + Linux/Solaris/AIX/HP-UX uses setmntent()/getmntent(). + Solaris uses getmntent() with a diffent prototype, return structure, and + no setmntent(fopen instead) +*/ +#if defined(HAVE_GETMNTINFO_TAKES_statvfs) || defined(HAVE_GETMNTENT) +typedef struct statvfs st_info; +#elif defined(HAVE_GETMNTINFO64) +typedef struct statfs64 st_info; +#else // GETMNTINFO +typedef struct statfs st_info; +#endif +#ifndef MOUNTED +/* HPUX - https://docstore.mik.ua/manuals/hp-ux/en/B2355-60130/getmntent.3X.html */ +#define MOUNTED MNT_MNTTAB +#endif + bool schema_table_store_record(THD *thd, TABLE *table); @@ -41,24 +75,40 @@ ST_FIELD_INFO disks_table_fields[]= }; - -int disks_table_add_row(THD* pThd, - TABLE* pTable, - const char* zDisk, - const char* zPath, - const struct statvfs& info) +static int disks_table_add_row_stat( + THD* pThd, + TABLE* pTable, + const char* zDisk, + const char* zPath, + const st_info &info) { // From: http://pubs.opengroup.org/onlinepubs/009695399/basedefs/sys/statvfs.h.html + // and same for statfs: + // From: https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/statfs.2.html#//apple_ref/doc/man/2/statfs + // and: https://www.freebsd.org/cgi/man.cgi?query=statfs&sektion=2&apropos=0&manpath=FreeBSD+13.1-RELEASE+and+Ports // - // f_frsize Fundamental file system block size. + // f_bsize Fundamental file system block size. // f_blocks Total number of blocks on file system in units of f_frsize. // f_bfree Total number of free blocks. // f_bavail Number of free blocks available to non-privileged process. + ulong block_size= (ulong) info.f_bsize; - ulonglong total = ((ulonglong)info.f_frsize * info.f_blocks) / 1024; - ulonglong used = ((ulonglong)info.f_frsize * + ulonglong total = ((ulonglong) block_size * info.f_blocks) / 1024; + ulonglong used = ((ulonglong) block_size * (info.f_blocks - info.f_bfree)) / 1024; - ulonglong avail = ((ulonglong)info.f_frsize * info.f_bavail) / 1024; + ulonglong avail = ((ulonglong) block_size * info.f_bavail) / 1024; + + /* skip filesystems that don't have any space */ + if (!info.f_blocks) + return 0; + + /* skip RO mounted filesystems */ +#if defined(HAVE_GETMNTINFO_TAKES_statvfs) || defined(HAVE_GETMNTENT) + if (info.f_flag & ST_RDONLY) +#else + if (info.f_flags & MNT_RDONLY) +#endif + return 0; pTable->field[0]->store(zDisk, strlen(zDisk), system_charset_info); pTable->field[1]->store(zPath, strlen(zPath), system_charset_info); @@ -70,71 +120,147 @@ int disks_table_add_row(THD* pThd, return (schema_table_store_record(pThd, pTable) != 0) ? 1 : 0; } -int disks_table_add_row(THD* pThd, TABLE* pTable, const char* zDisk, const char* zPath) + +#ifdef HAVE_GETMNTENT +static int disks_table_add_row(THD* pThd, TABLE* pTable, const char* zDisk, const char* zPath) { int rv = 0; - struct statvfs info; + st_info info; if (statvfs(zPath, &info) == 0) // We ignore failures. { - rv = disks_table_add_row(pThd, pTable, zDisk, zPath, info); + rv = disks_table_add_row_stat(pThd, pTable, zDisk, zPath, info); } return rv; } +#endif + -int disks_fill_table(THD* pThd, TABLE_LIST* pTables, Item* pCond) +#ifdef HAVE_GETMNTINFO +static int disks_fill_table(THD* pThd, TABLE_LIST* pTables, Item* pCond) { - int rv = 1; - TABLE* pTable = pTables->table; + st_info *s; + int count, rv= 0; + TABLE* pTable= pTables->table; if (check_global_access(pThd, FILE_ACL, true)) - return 0; + return 0; + +#if defined(HAVE_GETMNTINFO_TAKES_statvfs) + count= getmntinfo(&s, ST_WAIT); +#elif defined(HAVE_GETMNTINFO64) + count= getmntinfo64(&s, MNT_WAIT); +#else + count= getmntinfo(&s, MNT_WAIT); +#endif + if (count == 0) + return 1; + + while (count && rv == 0) + { + rv= disks_table_add_row_stat(pThd, pTable, s->f_mntfromname, s->f_mntonname, *s); + count--; + s++; + } + return rv; +} +#else /* HAVE_GETMNTINFO */ + +static mysql_mutex_t m_getmntent; - FILE* pFile = setmntent("/etc/mtab", "r"); +/* HAVE_GETMNTENT */ +static int disks_fill_table(THD* pThd, TABLE_LIST* pTables, Item* pCond) +{ + int rv= 1; +#ifdef HAVE_SETMNTENT + struct mntent* pEnt; +#else + struct mnttab mnttabent, *pEnt= &mnttabent; +#endif + FILE* pFile; + TABLE* pTable= pTables->table; - if (pFile) + if (check_global_access(pThd, FILE_ACL, true)) + return 0; + +#ifdef HAVE_SETMNTENT + pFile= setmntent(MOUNTED, "r"); +#else + /* Solaris */ + pFile= fopen("/etc/mnttab", "r"); +#endif + + if (!pFile) + return 1; + + rv= 0; + + /* + We lock the outer loop rather than between getmntent so the multiple + infomation_schema.disks reads don't all start blocking each other and + no-one gets any answers. + */ + mysql_mutex_lock(&m_getmntent); + + while ((rv == 0) && +#if defined(HAVE_SETMNTENT) + (pEnt = getmntent(pFile)) + +#else + getmntent(pFile, pEnt) != 0 +#endif + ) { - const size_t BUFFER_SIZE = 4096; // 4K should be sufficient. - - char* pBuffer = new (std::nothrow) char [BUFFER_SIZE]; - - if (pBuffer) - { - rv = 0; - - struct mntent ent; - struct mntent* pEnt; - - while ((rv == 0) && (pEnt = getmntent_r(pFile, &ent, pBuffer, BUFFER_SIZE))) - { - // We only report the ones that refer to physical disks. - if (pEnt->mnt_fsname[0] == '/') - { - rv = disks_table_add_row(pThd, pTable, pEnt->mnt_fsname, pEnt->mnt_dir); - } - } - - delete [] pBuffer; - } - else - { - rv = 1; - } - - endmntent(pFile); + struct stat f; + const char *path, *point; +#ifdef HAVE_SETMNTENT + path= pEnt->mnt_dir; + point= pEnt->mnt_fsname; +#else + path= pEnt->mnt_mountp; + point= pEnt->mnt_special; +#endif + // Try to keep to real storage by excluding + // read only mounts, and mount points that aren't directories + if (hasmntopt(pEnt, MNTOPT_RO) != NULL) + continue; + if (stat(path, &f)) + continue; + if (!S_ISDIR(f.st_mode)) + continue; + rv= disks_table_add_row(pThd, pTable, point, path); } + mysql_mutex_unlock(&m_getmntent); + +#ifdef HAVE_SETMNTENT + endmntent(pFile); +#else + fclose(pFile); +#endif return rv; } +#endif /* HAVE_GETMNTINFO */ -int disks_table_init(void *ptr) +static int disks_table_init(void *ptr) { ST_SCHEMA_TABLE* pSchema_table = (ST_SCHEMA_TABLE*)ptr; pSchema_table->fields_info = disks_table_fields; pSchema_table->fill_table = disks_fill_table; +#ifndef HAVE_GETMNTINFO + mysql_mutex_init(0, &m_getmntent, MY_MUTEX_INIT_SLOW); +#endif + return 0; +} + +static int disks_table_deinit(void *ptr __attribute__((unused))) +{ +#ifndef HAVE_GETMNTINFO + mysql_mutex_destroy(&m_getmntent); +#endif return 0; } @@ -148,15 +274,15 @@ maria_declare_plugin(disks) MYSQL_INFORMATION_SCHEMA_PLUGIN, &disks_table_info, /* type-specific descriptor */ "DISKS", /* table name */ - "Johan Wikman", /* author */ + "Johan Wikman, Daniel Black", /* author */ "Disk space information", /* description */ PLUGIN_LICENSE_GPL, /* license type */ Show::disks_table_init, /* init function */ - NULL, /* deinit function */ - 0x0101, /* version = 1.1 */ + Show::disks_table_deinit, /* deinit function */ + 0x0102, /* version = 1.2 */ NULL, /* no status variables */ NULL, /* no system variables */ - "1.1", /* String version representation */ + "1.2", /* String version representation */ MariaDB_PLUGIN_MATURITY_STABLE /* Maturity (see include/mysql/plugin.h)*/ } mysql_declare_plugin_end; diff --git a/plugin/disks/mysql-test/disks/disks.result b/plugin/disks/mysql-test/disks/disks.result index eb78d4073df..38dfcf351a5 100644 --- a/plugin/disks/mysql-test/disks/disks.result +++ b/plugin/disks/mysql-test/disks/disks.result @@ -1,8 +1,8 @@ show create table information_schema.disks; Table Create Table DISKS CREATE TEMPORARY TABLE `DISKS` ( - `Disk` varchar(4096) NOT NULL, - `Path` varchar(4096) NOT NULL, + `Disk` varchar(pathlen) NOT NULL, + `Path` varchar(pathlen) NOT NULL, `Total` bigint(32) NOT NULL, `Used` bigint(32) NOT NULL, `Available` bigint(32) NOT NULL diff --git a/plugin/disks/mysql-test/disks/disks.test b/plugin/disks/mysql-test/disks/disks.test index 13a0762ae01..7189c548342 100644 --- a/plugin/disks/mysql-test/disks/disks.test +++ b/plugin/disks/mysql-test/disks/disks.test @@ -1,2 +1,3 @@ +--replace_regex /varchar\([0-9]+\)/varchar(pathlen)/ show create table information_schema.disks; select sum(Total) > sum(Available), sum(Total)>sum(Used) from information_schema.disks; diff --git a/sql/backup.cc b/sql/backup.cc index 0e50d12550f..e38e5995845 100644 --- a/sql/backup.cc +++ b/sql/backup.cc @@ -36,6 +36,9 @@ #include <my_sys.h> #include <strfunc.h> // strconvert() #include "wsrep_mysqld.h" +#ifdef WITH_WSREP +#include "wsrep_server_state.h" +#endif /* WITH_WSREP */ static const char *stage_names[]= {"START", "FLUSH", "BLOCK_DDL", "BLOCK_COMMIT", "END", 0}; diff --git a/sql/event_data_objects.cc b/sql/event_data_objects.cc index 247df87235d..3980f248327 100644 --- a/sql/event_data_objects.cc +++ b/sql/event_data_objects.cc @@ -32,6 +32,7 @@ #include "sp_head.h" #include "sql_show.h" // append_definer, append_identifier #include "mysql/psi/mysql_sp.h" +#include "wsrep_mysqld.h" #ifdef WITH_WSREP #include "wsrep_trans_observer.h" #endif /* WITH_WSREP */ diff --git a/sql/events.cc b/sql/events.cc index 3c9f18f3f22..6ecdf975178 100644 --- a/sql/events.cc +++ b/sql/events.cc @@ -35,6 +35,7 @@ #include "set_var.h" #include "lock.h" // lock_object_name #include "mysql/psi/mysql_sp.h" +#include "wsrep_mysqld.h" /** @addtogroup Event_Scheduler diff --git a/sql/item_func.cc b/sql/item_func.cc index f7cc7545125..a7b99bdb3e6 100644 --- a/sql/item_func.cc +++ b/sql/item_func.cc @@ -55,6 +55,9 @@ #include "debug_sync.h" #include "sql_base.h" #include "sql_cte.h" +#ifdef WITH_WSREP +#include "mysql/service_wsrep.h" +#endif /* WITH_WSREP */ #ifdef NO_EMBEDDED_ACCESS_CHECKS #define sp_restore_security_context(A,B) while (0) {} diff --git a/sql/item_strfunc.cc b/sql/item_strfunc.cc index 873ead13e41..4d69280cb98 100644 --- a/sql/item_strfunc.cc +++ b/sql/item_strfunc.cc @@ -5813,8 +5813,8 @@ bool Item_func_natural_sort_key::check_vcol_func_processor(void *arg) } #ifdef WITH_WSREP - #include "wsrep_mysqld.h" +#include "wsrep_server_state.h" /* Format is %d-%d-%llu */ #define WSREP_MAX_WSREP_SERVER_GTID_STR_LEN 10+1+10+1+20 diff --git a/sql/lock.cc b/sql/lock.cc index 6b4cc656a8c..da13fff35c8 100644 --- a/sql/lock.cc +++ b/sql/lock.cc @@ -79,7 +79,10 @@ #include "sql_parse.h" // is_log_table_write_query #include "sql_handler.h" #include <hash.h> +#ifdef WITH_WSREP #include "wsrep_mysqld.h" +#include "wsrep_server_state.h" +#endif /** @defgroup Locking Locking diff --git a/sql/log.h b/sql/log.h index edb6e4617ac..f5a87d8a6f7 100644 --- a/sql/log.h +++ b/sql/log.h @@ -18,7 +18,6 @@ #define LOG_H #include "handler.h" /* my_xid */ -#include "wsrep_mysqld.h" #include "rpl_constants.h" class Relay_log_info; diff --git a/sql/log_event.cc b/sql/log_event.cc index 09887dbc736..e6bba3d94ee 100644 --- a/sql/log_event.cc +++ b/sql/log_event.cc @@ -43,6 +43,9 @@ #include <strfunc.h> #include "compat56.h" #include "sql_insert.h" +#ifdef WITH_WSREP +#include "wsrep_mysqld.h" +#endif /* WITH_WSREP */ #else #include "mysqld_error.h" #endif /* MYSQL_CLIENT */ diff --git a/sql/mdl.cc b/sql/mdl.cc index 13b01da36d1..2c6c49ab615 100644 --- a/sql/mdl.cc +++ b/sql/mdl.cc @@ -30,6 +30,9 @@ #include <mysql/psi/mysql_mdl.h> #include <algorithm> #include <array> +#ifdef WITH_WSREP +#include "wsrep_mysqld.h" +#endif static PSI_memory_key key_memory_MDL_context_acquire_locks; diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 0d365166bc8..9b5a71f3d87 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -78,6 +78,7 @@ #ifdef WITH_WSREP #include "wsrep_thd.h" #include "wsrep_sst.h" +#include "wsrep_server_state.h" #endif /* WITH_WSREP */ #include "proxy_protocol.h" diff --git a/sql/sp_head.cc b/sql/sp_head.cc index 100592e581f..8465eef5449 100644 --- a/sql/sp_head.cc +++ b/sql/sp_head.cc @@ -46,6 +46,7 @@ #include "sql_audit.h" #include "debug_sync.h" #ifdef WITH_WSREP +#include "wsrep.h" #include "wsrep_trans_observer.h" #endif /* WITH_WSREP */ diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc index f75905f07e1..6e26ec996e7 100644 --- a/sql/sql_acl.cc +++ b/sql/sql_acl.cc @@ -56,6 +56,7 @@ #include "password.h" #include "sql_plugin_compat.h" +#include "wsrep_mysqld.h" #define MAX_SCRAMBLE_LENGTH 1024 diff --git a/sql/sql_cache.cc b/sql/sql_cache.cc index 56a443bacc4..9e8f0a8fe68 100644 --- a/sql/sql_cache.cc +++ b/sql/sql_cache.cc @@ -347,6 +347,9 @@ TODO list: #include "probes_mysql.h" #include "transaction.h" #include "strfunc.h" +#ifdef WITH_WSREP +#include "wsrep_mysqld.h" +#endif const uchar *query_state_map; diff --git a/sql/sql_class.cc b/sql/sql_class.cc index a9f6f26173d..9e0762ff0be 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -68,6 +68,7 @@ #ifdef WITH_WSREP #include "wsrep_thd.h" #include "wsrep_trans_observer.h" +#include "wsrep_server_state.h" #else static inline bool wsrep_is_bf_aborted(THD* thd) { return false; } #endif /* WITH_WSREP */ diff --git a/sql/sql_class.h b/sql/sql_class.h index 0025eeb9a9f..e3c2e88165d 100644 --- a/sql/sql_class.h +++ b/sql/sql_class.h @@ -66,7 +66,8 @@ void set_thd_stage_info(void *thd, #include "my_apc.h" #include "rpl_gtid.h" -#include "wsrep_mysqld.h" +#include "wsrep.h" +#include "wsrep_on.h" #ifdef WITH_WSREP #include <inttypes.h> /* wsrep-lib */ @@ -76,6 +77,11 @@ void set_thd_stage_info(void *thd, #include "wsrep_condition_variable.h" class Wsrep_applier_service; +enum wsrep_consistency_check_mode { + NO_CONSISTENCY_CHECK, + CONSISTENCY_CHECK_DECLARED, + CONSISTENCY_CHECK_RUNNING, +}; #endif /* WITH_WSREP */ class Reprepare_observer; @@ -7869,7 +7875,9 @@ extern THD_list server_threads; void setup_tmp_table_column_bitmaps(TABLE *table, uchar *bitmaps, uint field_count); - +#ifdef WITH_WSREP +extern void wsrep_to_isolation_end(THD*); +#endif /* RAII utility class to ease binlogging with temporary setting THD etc context and restoring the original one upon logger execution. diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc index 9382625a747..24e7633a6fe 100644 --- a/sql/sql_lex.cc +++ b/sql/sql_lex.cc @@ -37,6 +37,9 @@ #include "sql_partition.h" #include "sql_partition_admin.h" // Sql_cmd_alter_table_*_part #include "event_parse_data.h" +#ifdef WITH_WSREP +#include "mysql/service_wsrep.h" +#endif void LEX::parse_error(uint err_number) { diff --git a/sql/sql_partition_admin.cc b/sql/sql_partition_admin.cc index 66f43116211..d290d0f5534 100644 --- a/sql/sql_partition_admin.cc +++ b/sql/sql_partition_admin.cc @@ -33,6 +33,7 @@ #endif #include "sql_base.h" // open_and_lock_tables #include "ddl_log.h" +#include "wsrep_mysqld.h" #ifndef WITH_PARTITION_STORAGE_ENGINE diff --git a/sql/sql_plugin.cc b/sql/sql_plugin.cc index 901aee0b0c1..a47fefc13f6 100644 --- a/sql/sql_plugin.cc +++ b/sql/sql_plugin.cc @@ -40,6 +40,7 @@ #include <mysql/plugin_data_type.h> #include <mysql/plugin_function.h> #include "sql_plugin_compat.h" +#include "wsrep_mysqld.h" static PSI_memory_key key_memory_plugin_mem_root; static PSI_memory_key key_memory_plugin_int_mem_root; diff --git a/sql/sql_reload.cc b/sql/sql_reload.cc index 1490ad554d7..8f0f15a982a 100644 --- a/sql/sql_reload.cc +++ b/sql/sql_reload.cc @@ -33,6 +33,9 @@ #include "debug_sync.h" #include "des_key_file.h" #include "transaction.h" +#ifdef WITH_WSREP +#include "wsrep_mysqld.h" +#endif static void disable_checkpoints(THD *thd); diff --git a/sql/sql_rename.cc b/sql/sql_rename.cc index 094578874a8..5948b8ebc3d 100644 --- a/sql/sql_rename.cc +++ b/sql/sql_rename.cc @@ -29,8 +29,9 @@ #include "sql_trigger.h" #include "sql_base.h" // tdc_remove_table, lock_table_names, #include "sql_handler.h" // mysql_ha_rm_tables -#include "sql_statistics.h" +#include "sql_statistics.h" #include "ddl_log.h" +#include "wsrep_mysqld.h" #include "debug.h" /* used to hold table entries for as part of list of renamed temporary tables */ diff --git a/sql/sql_sequence.cc b/sql/sql_sequence.cc index 11b5109c349..60da595afd0 100644 --- a/sql/sql_sequence.cc +++ b/sql/sql_sequence.cc @@ -26,6 +26,9 @@ #include "transaction.h" #include "lock.h" #include "sql_acl.h" +#ifdef WITH_WSREP +#include "wsrep_mysqld.h" +#endif struct Field_definition { diff --git a/sql/sql_table.cc b/sql/sql_table.cc index c934d58087a..840f251b6da 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -59,6 +59,7 @@ #include "ddl_log.h" #include "debug.h" // debug_crash_here() #include <algorithm> +#include "wsrep_mysqld.h" #include "rpl_mi.h" #include "rpl_rli.h" #include "log.h" diff --git a/sql/sql_trigger.cc b/sql/sql_trigger.cc index 6685b91b02e..911c4e7349c 100644 --- a/sql/sql_trigger.cc +++ b/sql/sql_trigger.cc @@ -37,6 +37,7 @@ #include "debug_sync.h" // DEBUG_SYNC #include "debug.h" // debug_crash_here #include "mysql/psi/mysql_sp.h" +#include "wsrep_mysqld.h" /*************************************************************************/ diff --git a/sql/sys_vars.cc b/sql/sys_vars.cc index b589ad15d65..77b61fbc9bc 100644 --- a/sql/sys_vars.cc +++ b/sql/sys_vars.cc @@ -65,6 +65,9 @@ #include "semisync_master.h" #include "semisync_slave.h" #include <ssl_compat.h> +#ifdef WITH_WSREP +#include "wsrep_mysqld.h" +#endif #define PCRE2_STATIC 1 /* Important on Windows */ #include "pcre2.h" /* pcre2 header file */ diff --git a/sql/wsrep_allowlist_service.cc b/sql/wsrep_allowlist_service.cc index d2821a8f9c2..23ade8b32b9 100644 --- a/sql/wsrep_allowlist_service.cc +++ b/sql/wsrep_allowlist_service.cc @@ -1,4 +1,4 @@ -/* Copyright 2021 Codership Oy <info@codership.com> +/* Copyright 2021-2022 Codership Oy <info@codership.com> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -18,6 +18,7 @@ #include "my_global.h" #include "wsrep_mysqld.h" #include "wsrep_priv.h" +#include "wsrep_schema.h" #include <algorithm> #include <memory> diff --git a/sql/wsrep_binlog.cc b/sql/wsrep_binlog.cc index bcc5d2fe46d..5e1fa137fed 100644 --- a/sql/wsrep_binlog.cc +++ b/sql/wsrep_binlog.cc @@ -16,11 +16,11 @@ #include "mariadb.h" #include "mysql/service_wsrep.h" #include "wsrep_binlog.h" -#include "wsrep_priv.h" #include "log.h" #include "slave.h" #include "log_event.h" #include "wsrep_applier.h" +#include "wsrep_mysqld.h" #include "transaction.h" diff --git a/sql/wsrep_check_opts.cc b/sql/wsrep_check_opts.cc index e5a0dcb2ede..b17a5f164a4 100644 --- a/sql/wsrep_check_opts.cc +++ b/sql/wsrep_check_opts.cc @@ -19,6 +19,7 @@ #include "sys_vars_shared.h" #include "wsrep.h" #include "wsrep_sst.h" +#include "wsrep_mysqld.h" extern char *my_bind_addr_str; diff --git a/sql/wsrep_client_service.cc b/sql/wsrep_client_service.cc index fee9fefdd44..7ab5ba0c1e2 100644 --- a/sql/wsrep_client_service.cc +++ b/sql/wsrep_client_service.cc @@ -1,4 +1,4 @@ -/* Copyright 2018-2021 Codership Oy <info@codership.com> +/* Copyright 2018-2022 Codership Oy <info@codership.com> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -20,6 +20,8 @@ #include "wsrep_thd.h" #include "wsrep_xid.h" #include "wsrep_trans_observer.h" +#include "wsrep_server_state.h" +#include "wsrep_mysqld.h" #include "sql_base.h" /* close_temporary_table() */ #include "sql_class.h" /* THD */ diff --git a/sql/wsrep_high_priority_service.cc b/sql/wsrep_high_priority_service.cc index db6ba43edec..e165a204f56 100644 --- a/sql/wsrep_high_priority_service.cc +++ b/sql/wsrep_high_priority_service.cc @@ -19,6 +19,7 @@ #include "wsrep_schema.h" #include "wsrep_xid.h" #include "wsrep_trans_observer.h" +#include "wsrep_server_state.h" #include "sql_class.h" /* THD */ #include "transaction.h" diff --git a/sql/wsrep_mysqld.h b/sql/wsrep_mysqld.h index dabf1cb9701..81d38df5fb5 100644 --- a/sql/wsrep_mysqld.h +++ b/sql/wsrep_mysqld.h @@ -1,5 +1,4 @@ -/* Copyright 2008-2021 Codership Oy <http://www.codership.com> - Copyright (c) 2020, 2021, MariaDB +/* Copyright 2008-2022 Codership Oy <http://www.codership.com> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -20,8 +19,6 @@ #include <wsrep.h> #ifdef WITH_WSREP -extern bool WSREP_ON_; -extern bool WSREP_PROVIDER_EXISTS_; #include <mysql/plugin.h> #include "mysql/service_wsrep.h" @@ -40,21 +37,12 @@ typedef struct st_mysql_show_var SHOW_VAR; #include "wsrep/provider.hpp" #include "wsrep/streaming_context.hpp" #include "wsrep_api.h" -#include <vector> #include <map> -#include "wsrep_server_state.h" #define WSREP_UNDEFINED_TRX_ID ULONGLONG_MAX -class set_var; class THD; -enum wsrep_consistency_check_mode { - NO_CONSISTENCY_CHECK, - CONSISTENCY_CHECK_DECLARED, - CONSISTENCY_CHECK_RUNNING, -}; - // Global wsrep parameters // MySQL wsrep options @@ -83,7 +71,6 @@ extern const char* wsrep_status_file; extern const char* wsrep_allowlist; extern my_bool wsrep_certify_nonPK; extern long int wsrep_protocol_version; -extern ulong wsrep_forced_binlog_format; extern my_bool wsrep_desync; extern ulong wsrep_reject_queries; extern my_bool wsrep_recovery; @@ -102,7 +89,7 @@ extern ulong wsrep_running_applier_threads; extern ulong wsrep_running_rollbacker_threads; extern bool wsrep_new_cluster; extern bool wsrep_gtid_mode; -extern uint wsrep_gtid_domain_id; +extern uint32 wsrep_gtid_domain_id; extern ulonglong wsrep_mode; enum enum_wsrep_reject_types { @@ -114,7 +101,7 @@ enum enum_wsrep_reject_types { enum enum_wsrep_OSU_method { WSREP_OSU_TOI, WSREP_OSU_RSU, - WSREP_OSU_NONE + WSREP_OSU_NONE, }; enum enum_wsrep_sync_wait { @@ -238,68 +225,46 @@ extern bool wsrep_split_allowlist(std::vector<std::string>& allowlist); /* Other global variables */ extern wsrep_seqno_t wsrep_locked_seqno; -#define WSREP_ON unlikely(WSREP_ON_) - -/* use xxxxxx_NNULL macros when thd pointer is guaranteed to be non-null to - * avoid compiler warnings (GCC 6 and later) */ -#define WSREP_NNULL(thd) \ - (WSREP_PROVIDER_EXISTS_ && thd->variables.wsrep_on) +/* A wrapper function for MySQL log functions. The call will prefix + the log message with WSREP and forward the result buffer to fun. */ +void WSREP_LOG(void (*fun)(const char* fmt, ...), const char* fmt, ...); -#define WSREP(thd) \ - (thd && WSREP_NNULL(thd)) +#define WSREP_SYNC_WAIT(thd_, before_) \ + { if (WSREP_CLIENT(thd_) && \ + wsrep_sync_wait(thd_, before_)) goto wsrep_error_label; } -#define WSREP_CLIENT_NNULL(thd) \ - (WSREP_NNULL(thd) && thd->wsrep_client_thread) +#define WSREP_MYSQL_DB (char *)"mysql" -#define WSREP_CLIENT(thd) \ - (WSREP(thd) && thd->wsrep_client_thread) +#define WSREP_TO_ISOLATION_BEGIN(db_, table_, table_list_) \ + if (WSREP_ON && WSREP(thd) && wsrep_to_isolation_begin(thd, db_, table_, table_list_)) \ + goto wsrep_error_label; -#define WSREP_EMULATE_BINLOG_NNULL(thd) \ - (WSREP_NNULL(thd) && wsrep_emulate_bin_log) +#define WSREP_TO_ISOLATION_BEGIN_CREATE(db_, table_, table_list_, create_info_) \ + if (WSREP_ON && WSREP(thd) && \ + wsrep_to_isolation_begin(thd, db_, table_, \ + table_list_, nullptr, nullptr, create_info_))\ + goto wsrep_error_label; -#define WSREP_EMULATE_BINLOG(thd) \ - (WSREP(thd) && wsrep_emulate_bin_log) +#define WSREP_TO_ISOLATION_BEGIN_ALTER(db_, table_, table_list_, alter_info_, fk_tables_, create_info_) \ + if (WSREP(thd) && wsrep_thd_is_local(thd) && \ + wsrep_to_isolation_begin(thd, db_, table_, \ + table_list_, alter_info_, fk_tables_, create_info_)) -#define WSREP_BINLOG_FORMAT(my_format) \ - ((wsrep_forced_binlog_format != BINLOG_FORMAT_UNSPEC) ? \ - wsrep_forced_binlog_format : my_format) +#define WSREP_TO_ISOLATION_END \ + if ((WSREP(thd) && wsrep_thd_is_local_toi(thd)) || \ + wsrep_thd_is_in_rsu(thd)) \ + wsrep_to_isolation_end(thd); -/* A wrapper function for MySQL log functions. The call will prefix - the log message with WSREP and forward the result buffer to fun. */ -void WSREP_LOG(void (*fun)(const char* fmt, ...), const char* fmt, ...); +/* + Checks if lex->no_write_to_binlog is set for statements that use LOCAL or + NO_WRITE_TO_BINLOG. +*/ +#define WSREP_TO_ISOLATION_BEGIN_WRTCHK(db_, table_, table_list_) \ + if (WSREP(thd) && !thd->lex->no_write_to_binlog \ + && wsrep_to_isolation_begin(thd, db_, table_, table_list_)) \ + goto wsrep_error_label; -#define WSREP_DEBUG(...) \ - if (wsrep_debug) sql_print_information( "WSREP: " __VA_ARGS__) -#define WSREP_INFO(...) sql_print_information( "WSREP: " __VA_ARGS__) -#define WSREP_WARN(...) sql_print_warning( "WSREP: " __VA_ARGS__) -#define WSREP_ERROR(...) sql_print_error( "WSREP: " __VA_ARGS__) -#define WSREP_UNKNOWN(fmt, ...) WSREP_ERROR("UNKNOWN: " fmt, ##__VA_ARGS__) - -#define WSREP_LOG_CONFLICT_THD(thd, role) \ - WSREP_INFO( \ - "%s: \n " \ - " THD: %lu, mode: %s, state: %s, conflict: %s, seqno: %lld\n " \ - " SQL: %s", \ - role, \ - thd_get_thread_id(thd), \ - wsrep_thd_client_mode_str(thd), \ - wsrep_thd_client_state_str(thd), \ - wsrep_thd_transaction_state_str(thd), \ - wsrep_thd_trx_seqno(thd), \ - wsrep_thd_query(thd) \ - ); - -#define WSREP_LOG_CONFLICT(bf_thd, victim_thd, bf_abort) \ - if (wsrep_debug || wsrep_log_conflicts) \ - { \ - WSREP_INFO("cluster conflict due to %s for threads:", \ - (bf_abort) ? "high priority abort" : "certification failure" \ - ); \ - if (bf_thd) WSREP_LOG_CONFLICT_THD(bf_thd, "Winning thread"); \ - if (victim_thd) WSREP_LOG_CONFLICT_THD(victim_thd, "Victim thread"); \ - WSREP_INFO("context: %s:%d", __FILE__, __LINE__); \ - } #define WSREP_PROVIDER_EXISTS (WSREP_PROVIDER_EXISTS_) @@ -313,9 +278,6 @@ static inline bool wsrep_cluster_address_exists() extern my_bool wsrep_ready_get(); extern void wsrep_ready_wait(); -class Ha_trx_info; -struct THD_TRANS; - extern mysql_mutex_t LOCK_wsrep_ready; extern mysql_cond_t COND_wsrep_ready; extern mysql_mutex_t LOCK_wsrep_sst; @@ -339,8 +301,10 @@ extern mysql_mutex_t LOCK_wsrep_donor_monitor; extern mysql_cond_t COND_wsrep_joiner_monitor; extern mysql_cond_t COND_wsrep_donor_monitor; -extern my_bool wsrep_emulate_bin_log; extern int wsrep_to_isolation; +#ifdef GTID_SUPPORT +extern rpl_sidno wsrep_sidno; +#endif /* GTID_SUPPORT */ extern my_bool wsrep_preordered_opt; #ifdef HAVE_PSI_INTERFACE @@ -384,8 +348,6 @@ extern PSI_thread_key key_wsrep_sst_donor_monitor; struct TABLE_LIST; class Alter_info; -struct HA_CREATE_INFO; - int wsrep_to_isolation_begin(THD *thd, const char *db_, const char *table_, const TABLE_LIST* table_list, const Alter_info* alter_info= nullptr, @@ -639,12 +601,6 @@ wsrep::key wsrep_prepare_key_for_toi(const char* db, const char* table, /* These macros are needed to compile MariaDB without WSREP support * (e.g. embedded) */ -#define WSREP_ON false -#define WSREP(T) (0) -#define WSREP_NNULL(T) (0) -#define WSREP_EMULATE_BINLOG(thd) (0) -#define WSREP_EMULATE_BINLOG_NNULL(thd) (0) -#define WSREP_BINLOG_FORMAT(my_format) ((ulong)my_format) #define WSREP_PROVIDER_EXISTS (0) #define wsrep_emulate_bin_log (0) #define wsrep_to_isolation (0) @@ -657,6 +613,12 @@ wsrep::key wsrep_prepare_key_for_toi(const char* db, const char* table, #define wsrep_create_appliers(X) do {} while(0) #define wsrep_should_replicate_ddl(X,Y) (1) #define wsrep_cluster_address_exists() (false) +#define WSREP_MYSQL_DB (0) +#define WSREP_TO_ISOLATION_BEGIN(db_, table_, table_list_) do { } while(0) +#define WSREP_TO_ISOLATION_BEGIN_ALTER(db_, table_, table_list_, alter_info_, fk_tables_) +#define WSREP_TO_ISOLATION_END +#define WSREP_TO_ISOLATION_BEGIN_WRTCHK(db_, table_, table_list_) +#define WSREP_SYNC_WAIT(thd_, before_) #endif /* WITH_WSREP */ diff --git a/sql/wsrep_on.h b/sql/wsrep_on.h new file mode 100644 index 00000000000..f85fe3d5d0d --- /dev/null +++ b/sql/wsrep_on.h @@ -0,0 +1,63 @@ +/* Copyright 2022 Codership Oy <http://www.codership.com> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ + +#ifndef WSREP_ON_H +#define WSREP_ON_H + +#ifdef WITH_WSREP + +extern bool WSREP_ON_; +extern bool WSREP_PROVIDER_EXISTS_; +extern my_bool wsrep_emulate_bin_log; +extern ulong wsrep_forced_binlog_format; + +#define WSREP_ON unlikely(WSREP_ON_) + +/* use xxxxxx_NNULL macros when thd pointer is guaranteed to be non-null to + * avoid compiler warnings (GCC 6 and later) */ + +#define WSREP_NNULL(thd) \ + (WSREP_PROVIDER_EXISTS_ && thd->variables.wsrep_on) + +#define WSREP(thd) \ + (thd && WSREP_NNULL(thd)) + +#define WSREP_CLIENT_NNULL(thd) \ + (WSREP_NNULL(thd) && thd->wsrep_client_thread) + +#define WSREP_CLIENT(thd) \ + (WSREP(thd) && thd->wsrep_client_thread) + +#define WSREP_EMULATE_BINLOG_NNULL(thd) \ + (WSREP_NNULL(thd) && wsrep_emulate_bin_log) + +#define WSREP_EMULATE_BINLOG(thd) \ + (WSREP(thd) && wsrep_emulate_bin_log) + +#define WSREP_BINLOG_FORMAT(my_format) \ + ((wsrep_forced_binlog_format != BINLOG_FORMAT_UNSPEC) ? \ + wsrep_forced_binlog_format : my_format) + +#else + +#define WSREP_ON false +#define WSREP(T) (0) +#define WSREP_NNULL(T) (0) +#define WSREP_EMULATE_BINLOG(thd) (0) +#define WSREP_EMULATE_BINLOG_NNULL(thd) (0) +#define WSREP_BINLOG_FORMAT(my_format) ((ulong)my_format) + +#endif +#endif diff --git a/sql/wsrep_priv.h b/sql/wsrep_priv.h index fb8467adc9d..e88d3c862a0 100644 --- a/sql/wsrep_priv.h +++ b/sql/wsrep_priv.h @@ -19,13 +19,8 @@ #ifndef WSREP_PRIV_H #define WSREP_PRIV_H -#include <my_global.h> -#include "wsrep_mysqld.h" -#include "wsrep_schema.h" - -#include <log.h> -#include <pthread.h> -#include <cstdio> +#include "wsrep_api.h" +#include "wsrep/server_state.hpp" my_bool wsrep_ready_set (my_bool x); @@ -39,7 +34,6 @@ wsrep_cb_status wsrep_sst_donate_cb (void* app_ctx, extern wsrep_uuid_t local_uuid; extern wsrep_seqno_t local_seqno; -extern Wsrep_schema* wsrep_schema; // a helper function bool wsrep_sst_received(THD*, const wsrep_uuid_t&, wsrep_seqno_t, diff --git a/sql/wsrep_schema.cc b/sql/wsrep_schema.cc index 7b50cf9c62d..5595e0a090c 100644 --- a/sql/wsrep_schema.cc +++ b/sql/wsrep_schema.cc @@ -30,6 +30,7 @@ #include "wsrep_high_priority_service.h" #include "wsrep_storage_service.h" #include "wsrep_thd.h" +#include "wsrep_server_state.h" #include <string> #include <sstream> diff --git a/sql/wsrep_sst.cc b/sql/wsrep_sst.cc index 0676ce79dfd..448153f55de 100644 --- a/sql/wsrep_sst.cc +++ b/sql/wsrep_sst.cc @@ -30,7 +30,7 @@ #include "wsrep_utils.h" #include "wsrep_xid.h" #include "wsrep_thd.h" -#include "wsrep_mysqld.h" +#include "wsrep_server_state.h" #include <cstdio> #include <cstdlib> diff --git a/sql/wsrep_thd.cc b/sql/wsrep_thd.cc index bccd1a4f8b3..a615b7f609b 100644 --- a/sql/wsrep_thd.cc +++ b/sql/wsrep_thd.cc @@ -18,6 +18,7 @@ #include "wsrep_trans_observer.h" #include "wsrep_high_priority_service.h" #include "wsrep_storage_service.h" +#include "wsrep_server_state.h" #include "transaction.h" #include "rpl_rli.h" #include "log_event.h" diff --git a/sql/wsrep_var.cc b/sql/wsrep_var.cc index 178ec603e72..ea5ba6c1aca 100644 --- a/sql/wsrep_var.cc +++ b/sql/wsrep_var.cc @@ -26,6 +26,7 @@ #include <cstdio> #include <cstdlib> #include "wsrep_trans_observer.h" +#include "wsrep_server_state.h" ulong wsrep_reject_queries; diff --git a/storage/connect/frcas.h b/storage/connect/frcas.h deleted file mode 100644 index e9401d475ae..00000000000 --- a/storage/connect/frcas.h +++ /dev/null @@ -1,320 +0,0 @@ - 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 %lld 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/frids.h b/storage/connect/frids.h deleted file mode 100644 index 561dbb68837..00000000000 --- a/storage/connect/frids.h +++ /dev/null @@ -1,46 +0,0 @@ - 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 deleted file mode 100644 index d58779b948f..00000000000 --- a/storage/connect/frmsg.h +++ /dev/null @@ -1,320 +0,0 @@ -#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 %lld 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/frmsg1.h b/storage/connect/frmsg1.h deleted file mode 100644 index e88440a3a9c..00000000000 --- a/storage/connect/frmsg1.h +++ /dev/null @@ -1,1013 +0,0 @@ -#define MSG_ACCESS_VIOLATN "Violation accès mémoire" -#define MSG_ACT_ALLOC_FAIL "PlugInitLang: Erreur d'allocation du bloc Activity" -#define MSG_ADDVAL_ERROR "Erreur %d dans AddValue" -#define MSG_ADD_BAD_TYPE "Ajout d'une valeur de type %s non conforme dans un tableau %s" -#define MSG_ADD_NULL_DOM "Ajout de la chaîne %s à un domaine nul" -#define MSG_ADPOS_IN_DICTP "ADPOS au travail dans User_Dictp" -#define MSG_AFTER " après: " -#define MSG_ALG_CHOICE_AUTO "Le choix du meilleur algorithme est automatique" -#define MSG_ALG_CHOICE_BAD "Choix d'algorithme invalide, remis à AUTO" -#define MSG_ALG_CHOICE_QRY "Utilise l'algorithme 'Query'" -#define MSG_ALG_CURLY_BRK "Le choix de l'algorithme dépend des accolades externes" -#define MSG_ALLOC_ERROR "Erreur d'allocation de %s" -#define MSG_ALL_DELETED "Toutes les lignes enlevées en %.2lf sec" -#define MSG_ALTER_DB_ERR "Impossible de déterminer la base de données à modifier" -#define MSG_AMBIG_COL_QUAL "Qualificateur ambigu %s pour la colonne %s" -#define MSG_AMBIG_CORREL "Select %s.* corrélation ambigue" -#define MSG_AMBIG_SPEC_COL "Colonne spéciale ambiguë %s" -#define MSG_ANSWER_TYPE "Réponse de type" -#define MSG_API_CONF_ERROR "Erreur SQL: API_CONFORMANCE" -#define MSG_APPL_ACCESSIBLE "Application %s accessible" -#define MSG_APPL_ACTIVE "Application %s encore active" -#define MSG_APPL_BAD_SAVE "Application %s partiellement sauvegardée" -#define MSG_APPL_CREATED "Application %s crée" -#define MSG_APPL_IS_ACTIVE "Application déjà active" -#define MSG_APPL_NOT_INIT "Application non initialisée" -#define MSG_APPL_NOT_LOADED "Application non chargée" -#define MSG_APPL_QUIT "Fin de l'application %s" -#define MSG_APPL_SAVED "Application %s sauvegardée" -#define MSG_APP_STILL_ACTIV "Application du langage %s encore active (non libérable)" -#define MSG_AREAFILE_NOTFND "Fichier Area introuvable" -#define MSG_ARGS_SYNTAX_ERR "?SetArgs erreur de syntaxe: %s inattendu après %s" -#define MSG_ARG_ALREADY_SET "Argument %d déjà alloué" -#define MSG_ARG_NOT_AN_ATTR "L'argument n'est pas un attribut (type %d erroné)" -#define MSG_ARG_OUT_CONTEXT "Argument de type @ utilisé hors contexte" -#define MSG_ARG_OUT_RANGE "Argument de phrase valant %d hors limite" -#define MSG_ARG_PTR_NOSEM "Argument valant %d pointe sur un noeud sans Sem" -#define MSG_ARG_PTR_NOSEMS "Argument valant %d pointe sur un noeud sans sémantique" -#define MSG_ARG_REF_LOOP "?Bouclage entre références croisées des arguments" -#define MSG_ARG_TWO_CONST "Le 2ème argument de %s doit être constant" -#define MSG_ARRAY_ALLOC_ERR "Erreur d'allocation mémoire dans ARRAY" -#define MSG_ARRAY_BNDS_EXCD "Hors limite de tableau" -#define MSG_ARRAY_ERROR "Erreur de fonctionnement k=%d n=%d" -#define MSG_ATTRIBUTE_ERROR "Erreur règle %u attribut %s: " -#define MSG_ATT_NOT_CASE "Mauvaise valeur %d pour attribut (pas une CaseValue)" -#define MSG_ATT_POSCODE_BIG "Code attribut %d trop grand (max=%d)" -#define MSG_AVGLEN_ERROR "avglen doit être entre %d et %d" -#define MSG_BAD_AGGREG_FUNC "Fonction aggrégée %d non supportée" -#define MSG_BAD_ARGTYPES "Argument de type invalide pour %s" -#define MSG_BAD_ARGUMENTS "Argument not attachés pour %s" -#define MSG_BAD_ARG_NUM "Nombre d'arguments invalide %d" -#define MSG_BAD_ARG_TYPE "Type d'argument %d invalide" -#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_CARDINALITY "Appel invalide de Cardinality pour une table multiple" -#define MSG_BAD_CASE_SPEC "Min/Maj: spécification %c incorrecte, recommencez: " -#define MSG_BAD_CHAR_SPEC "Spécification '%s' invalide pour caractère" -#define MSG_BAD_CHECK_TYPE "Sous-type %d invalide pour CheckColumn" -#define MSG_BAD_CHECK_VAL "Valeur pour Check invalide '%s'" -#define MSG_BAD_COLCRT_ARG "COLCRT: Arg invalide (type=%hd, domain=%hd)" -#define MSG_BAD_COLDEF_TYPE "Coldefs: type illégal %d" -#define MSG_BAD_COLIST_ITEM "Elément invalide dans une Colist" -#define MSG_BAD_COLIST_TYPE "Mauvais type=%d pour une Colist" -#define MSG_BAD_COLSIZE "Colsize %d trop petit pour cette base de données" -#define MSG_BAD_COL_ENTRY "Entrée invalide pour la colonne %s" -#define MSG_BAD_COL_FORMAT "Type de formattage %d invalide pour une colonne" -#define MSG_BAD_COL_IN_FILT "Colonne incorrecte dans un filtre" -#define MSG_BAD_COL_QUALIF "Qualificateur invalide %s pour la colonne %s" -#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_COMPARE_OP "Opérateur de comparaison %d invalide" -#define MSG_BAD_CONST_TYPE "Type=%d invalide pour une constante" -#define MSG_BAD_CONV_TYPE "Convertion de type invalide %d" -#define MSG_BAD_CORREL "Select %s.* corrélation absente" -#define MSG_BAD_DATETIME "Valeur date/temps invalide" -#define MSG_BAD_DATE_OPER "Opérateur de date inattendu %d" -#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é" -#define MSG_BAD_DEF_ARG "Argument invalide pour INDEXDEF (type=%hd, domain=%hd)" -#define MSG_BAD_DEF_READ "EOF inattendue en lecture différée" -#define MSG_BAD_DEF_TYPE "Type de colonne invalide" -#define MSG_BAD_DIRECTORY "Répertoire invalide %s: %s" -#define MSG_BAD_DIST_JN_FIL "Filtre de jointure distincte invalide" -#define MSG_BAD_DIST_JOIN "Spécification invalide de jointure distincte" -#define MSG_BAD_DOM_COL_DEF "Définition de colonnes invalide pour un domaine" -#define MSG_BAD_DOM_VALUE "La valeur %d n'appartient pas au domaine" -#define MSG_BAD_EDIT_INIT "Coparm: édition %s initialisée improprement" -#define MSG_BAD_EVAL_TYPE "Fonction scalaire de type=%d invalide" -#define MSG_BAD_EXEC_MODE "Mode d'exécution invalide '%s'" -#define MSG_BAD_EXP_ARGTYPE "Argument de type %d invalide pour une expression" -#define MSG_BAD_EXP_OPER "Opérateur=%d invalide pour expression" -#define MSG_BAD_FETCH_RC "Code retour inattendu de Fetch %d" -#define MSG_BAD_FIELD_FMT "Format de champ invalide %c pour %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_FILE_LIST "La section liste de fichiers est erronée" -#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_LINK "Opérateur de chaînage illégal %d" -#define MSG_BAD_FILTER_OP "Opérateur de filtre invalide %d" -#define MSG_BAD_FILTEST_OP "Opérateur invalide %d %d pour FilTest" -#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_FLOAT_CONV "Convertion invalide d'un tableau flottant" -#define MSG_BAD_FPARM_NEXT "Coparm: FPARM avec Next non nul" -#define MSG_BAD_FREQ_SET "Spécification erronnée de Freq pour la colonne %s" -#define MSG_BAD_FUNC_ARG "Funcarg de type %d non implémenté" -#define MSG_BAD_FUNC_ARGTYP "Mauvais type d'argument=%d pour une fonction" -#define MSG_BAD_FUNC_MODE "%s: mode invalide %d" -#define MSG_BAD_GENRE "Genre est invalide" -#define MSG_BAD_GETVIEW_RET "GetView: type de retour %d invalide" -#define MSG_BAD_HANDLE_VAL "Valeur Handle invalide" -#define MSG_BAD_HAV_FILTER "Filtre Having sur une requête non groupée" -#define MSG_BAD_HAV_FILTYPE "Filtre invalide pour clause Having" -#define MSG_BAD_HEADER "Fichier %s: bloc en-tête altéré" -#define MSG_BAD_HEADER_VAL "Valeur invalide pour Header" -#define MSG_BAD_HEAD_END "Lecture fin d'en-tête impossible" -#define MSG_BAD_INDEX_COL "Colonne %s invalide pour index %s" -#define MSG_BAD_INDEX_DEF "Définition invalide pour index %s" -#define MSG_BAD_INDEX_FILE "Fichier index %s corrompu" -#define MSG_BAD_INDEX_PART "Définition colonne invalide pour index %s" -#define MSG_BAD_INPUT "Entrée incorrecte" -#define MSG_BAD_IN_ARGTYPE "Argument de type invalide pour l'opérateur IN" -#define MSG_BAD_IN_ENDING "Erreur: fin de chaîne IN invalide" -#define MSG_BAD_IN_STRING "La chaîne IN commence ou finie par des caractères invalides %c ... %c" -#define MSG_BAD_JCOL_TYPE "Erreur logique JCT: disparité des types colonnes" -#define MSG_BAD_JOIN_EXP "Expression invalide pour une jointure" -#define MSG_BAD_JOIN_FILTER "Filtre de jointure invalide" -#define MSG_BAD_JOIN_OP "Opérateur de joint invalide %d" -#define MSG_BAD_LANG_SIZE "Le fichier langage a une mauvaise taille %d" -#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_LIST_TYPE "Type de liste invalide %d" -#define MSG_BAD_LOCALE "Locale invalide %s" -#define MSG_BAD_LOCDFON_ARG "Mauvais paramètre pour LOCDFON" -#define MSG_BAD_LOCNODE_USE "Usage inattendu de LOCNODE" -#define MSG_BAD_LRECL "Disparité lrecl table/fichier (%d,%hd)" -#define MSG_BAD_MAX_HAVING "MAXTMP trop petit pour Having" -#define MSG_BAD_MAX_NREC "MaxRec=%d ne correspond pas à MaxBlk=%d Nrec=%d" -#define MSG_BAD_MAX_PARAM "Mauvais paramètres pour spécifier une valeur maximum" -#define MSG_BAD_MAX_SETTING "Mauvaise valeur '%c' pour max" -#define MSG_BAD_MERGE_TYPE "Le type %d ne pas être intercallé" -#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_OPERATOR "Opérateur invalide %s" -#define MSG_BAD_ORDER_MODE "Mode de tri %c invalide" -#define MSG_BAD_ORDER_TYPE "Tri sur objet de type=%d invalide" -#define MSG_BAD_OUTER_JOIN "Jointure externe invalide sur table enfant" -#define MSG_BAD_PAD_ARGTYP "Argument de type invalide pour Pad ou Justify" -#define MSG_BAD_PARAMETERS "%.8s: Mauvais paramètres" -#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_PHASE_NUM "Numéro de phrase %d hors limite" -#define MSG_BAD_PHRASE_NB "numéro de phrase hors limite %d rc=%d\n" -#define MSG_BAD_POS_CODE "POS_code invalide %d" -#define MSG_BAD_POS_TYPE "Type de POS_code invalide %d" -#define MSG_BAD_PROJNUM "Mauvais projnum %d pour la colonne %s" -#define MSG_BAD_QUERY_OPEN "Mode invalide %d pour l'ouverture d'une requête" -#define MSG_BAD_QUERY_TYPE "Type de requête %d invalide pour %s" -#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_RESULT_TYPE "Mauvais type de résultat %d pour %s" -#define MSG_BAD_RETURN_TYPE "Type de retour %d incorrect" -#define MSG_BAD_ROW_VALIST "Liste de valeurs invalide pour ROW" -#define MSG_BAD_ROW_VALNB "Nombre de valeurs inégal dans la liste" -#define MSG_BAD_SCF_ARGTYPE "Argument %d de type=%s invalide pour %s" -#define MSG_BAD_SEM_DOMAIN "Domain .%d invalide" -#define MSG_BAD_SETTINGS "Certaines spécifications sont incompatibles avec le type de la table" -#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_SET_TYPE "Set type %hd invalide" -#define MSG_BAD_SPECIAL_CMD "Commande spéciale invalide" -#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_SQL_PARAM "Paramètre SQL invalide pour FindColblk" -#define MSG_BAD_SUBLST_TYPE "Coparm: type %d de sous-liste invalide" -#define MSG_BAD_SUBSEL_IN_X "Sub-select invalide pour une expression" -#define MSG_BAD_SUBSEL_TYPE "Type %d invalide retourné de Sub-Select" -#define MSG_BAD_SUB_RESULT "Résultat indéfini de fonction Sub-Select" -#define MSG_BAD_SUB_SELECT "Sub-select invalide comme argument de fonction" -#define MSG_BAD_TABLE_LINE "Ligne '%s' illégale ou tronquée dans la section Tables" -#define MSG_BAD_TABLE_LIST "Table %s absente de la liste des tables" -#define MSG_BAD_TABLE_TYPE "Type invalide %s pour la table %s" -#define MSG_BAD_TEST_TYPE "BlockTest sur tableau: types dépareillés %s %s" -#define MSG_BAD_TRIM_ARGTYP "Argument de type invalide pour Trim" -#define MSG_BAD_TYPE_FOR_IN "Types d'argument incompatibles pour la fonction IN" -#define MSG_BAD_TYPE_FOR_S "Type incorrecte %d pour %s(%d)" -#define MSG_BAD_TYPE_LIKE "Type(%d)= %d invalide pour LIKE" -#define MSG_BAD_UPD_COR "Le qualificateur %s de la colonne %s ne se refère pas à la table mise à jour %s" -#define MSG_BAD_USERBLK_LEN "Mauvaise longueur à l'écriture du bloc utilisateur" -#define MSG_BAD_USETEMP "Usetemp invalide '%s'" -#define MSG_BAD_USETEMP_VAL "Valeur pour Usetemp invalide %d" -#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_BAD_VIEW_OPEN "Mode invalide %d pour l'ouverture d'une View" -#define MSG_BAD_XMODE_VAL "Mode d'exécution %d invalide" -#define MSG_BAD_XOBJ_TYPE "Mauvais type de Xobject %d" -#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_BLOCK_NO_MATCH "Bloc non correspondant" -#define MSG_BREAKPOINT "Point de contrôle" -#define MSG_BUFF_TOO_SMALL "GetColData: Buffer trop petit" -#define MSG_BUFSIZE_ERROR "Erreur en recherchant la taille du buffer" -#define MSG_BUILDING_GROUPS "Formation des groupes" -#define MSG_BUILD_DIST_GRPS "Formation des groupes distinctes" -#define MSG_BUILD_INDEX "Construction index %s sur %s" -#define MSG_BXP_NULL "Bxp nul dans PUTFON" -#define MSG_CANNOT_OPEN "Ouverture impossible de %s" -#define MSG_CD_ONE_STEP "Count Distinct doit être exécuté en une seule étape" -#define MSG_CD_ORDER_ERROR "Erreur de tri dans Count Distinct" -#define MSG_CHECKING_ROWS "Test des lignes à mettre à jour" -#define MSG_CHECK_LEVEL "Niveau de vérification fixé à %u" -#define MSG_CHSIZE_ERROR "Erreur dans chsize: %s" -#define MSG_CLN_NOT_IN_JOIN "La colonne C%d n'est pas dans le join" -#define MSG_CNTDIS_COL_LOST "Colonne du Count Distinct perdue" -#define MSG_COLIST_BAD_TYPE "Type=%d invalide pour Colist" -#define MSG_COLNAM_TOO_LONG "Nom de colonne trop long" -#define MSG_COLSEC_TOO_BIG "Section colonne trop grande, table %s (%d)" -#define MSG_COLS_REDUCED " (réduit par Maxcol)" -#define MSG_COLUMN_ERROR "Erreur de colonne" -#define MSG_COLUMN_MISMATCH "Colonne %s dépareillée" -#define MSG_COLUMN_NOT_KEY "La colonne jointe R%d.%s n'est pas une clé" -#define MSG_COL_ALLOC_ERR "Allocation impossible du noeud colonne" -#define MSG_COL_ALLOC_ERROR "Erreur d'allocation mémoire pour la colonne %d" -#define MSG_COL_HAS_NO_DEF "La colonne %s n'est pas définie" -#define MSG_COL_INVAL_TABLE "La colonne %s.%s n'existe pas dans la table %s alias %s" -#define MSG_COL_ISNOT_TABLE "La colonne %s n'est pas dans la table %s" -#define MSG_COL_NB_MISM "Le nombre de colonnes ne correspond pas" -#define MSG_COL_NOTIN_GRPBY "La colonne %s n'est pas dans la liste de Group By" -#define MSG_COL_NOTIN_TABLE "La colonne %s n'est dans aucune table" -#define MSG_COL_NOTIN_UPDT "%s n'appartient pas à la table mise à jour %s" -#define MSG_COL_NOT_CODED "La colonne %s n'est pas codifiée" -#define MSG_COL_NOT_EXIST "La colonne %s n'existe pas dans %s" -#define MSG_COL_NOT_FOUND "La colonne %s n'est pas dans la table %s" -#define MSG_COL_NOT_IN_DB "La colonne %s de la table %s n'est pas dans la base de données" -#define MSG_COL_NOT_IN_JOIN "La colonne %s n'est pas dans le join" -#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_COL_USED_TWICE "Colonne %s utilisée deux fois ???" -#define MSG_COMPUTE_ERROR "Erreur dans Compute, op=%d" -#define MSG_COMPUTE_NIY "Compute non implémenté pour TOKEN" -#define MSG_COMPUTING "Calculs en cours" -#define MSG_COMPUTING_DIST "Comptage des valeurs distinctes" -#define MSG_COMPUTING_FUNC "Calcul de(s) fonction(s)" -#define MSG_COM_ERROR "Erreur Com" -#define MSG_CONCAT_SUBNODE "Concaténation de sous-noeuds impossible" -#define MSG_CONNECTED "Connecté" -#define MSG_CONNECT_CANCEL "Connection interrompue par l'utilisateur" -#define MSG_CONNECT_ERROR "Erreur %d se connectant à %s" -#define MSG_CONN_CLOSED "%s(%d) fermée" -#define MSG_CONN_CREATED "Connexion %s crée" -#define MSG_CONN_DROPPED "Connexion %s supprimée" -#define MSG_CONN_OPEN "%s(%d) ouverte (%s)" -#define MSG_CONN_SUC_OPEN "%s(%d) ouverte avec succès" -#define MSG_CONTROL_C_EXIT "Exit par Ctrl-C" -#define MSG_COPY_BAD_PHASE "Copie de liste invalide en phase %d" -#define MSG_COPY_INV_TYPE "Coparm: type non supporté %d" -#define MSG_CORREL_NO_QRY "Les sous-requêtes corrélées ne peuvent pas être de type QRY" -#define MSG_CREATED_PLUGDB " Créé par PlugDB %s " -#define MSG_CURSOR_SET "Curseur remis à %d" -#define MSG_DATABASE_ACTIVE "Base de données %s activée" -#define MSG_DATABASE_LOADED "Base de données %s chargée" -#define MSG_DATA_IS_NULL "ExecSpecialCmd: data est NULL" -#define MSG_DATA_MISALIGN "Mauvais alignement pour ce type de données" -#define MSG_DBASE_FILE "Fichier dBASE dbf: " -#define MSG_DB_ALREADY_DEF "Base de données %s déjà définie" -#define MSG_DB_ALTERED "Base de données modifiée" -#define MSG_DB_CREATED "Base de données %s créée" -#define MSG_DB_NOT_SPEC "Base de données non spécifiée" -#define MSG_DB_REMOVED "Base de données %s retirée de la liste" -#define MSG_DB_SORT_ERROR "Erreur de tri DB" -#define MSG_DB_STOPPED "Arrêt de la base de données %s" -#define MSG_DEBUG_NOT_ACTIV "Mode Debug inactif" -#define MSG_DEBUG_SET_INV "Invalide pour Debug: %c" -#define MSG_DEF_ALLOC_ERROR "Erreur d'allocation de la classe DEF %s" -#define MSG_DELETING_ROWS "Suppression des lignes" -#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_DICTIONARY "Dictionnaire " -#define MSG_DIRECT_VARTOK "Accès direct aux règles du Variable Token non implémenté" -#define MSG_DISCONNECTED "Déconnecté" -#define MSG_DISTINCT_ERROR "Plus d'un élément fonctionel DISTINCT" -#define MSG_DISTINCT_ROWS "Sélection des lignes distinctes" -#define MSG_DISTINCT_VALUES "Extraction des valeurs distinctes" -#define MSG_DIS_NOHEAD_JOIN "Jointure distincte sur une table non en tête" -#define MSG_DLL_LOAD_ERROR "Erreur %d au chargement du module %s" -#define MSG_DOMAIN_EMPTY "Le domaine %s est vide" -#define MSG_DOMAIN_ERROR "Colonne %s: disparité domaine(%s)/valeur(%s)" -#define MSG_DOMAIN_FULL "Le domaine %s est plein (max=%d)" -#define MSG_DOM_FILE_ERROR "Fichier domain %s introuvable" -#define MSG_DOM_NOT_SUPP "MS-DOM non supporté par cette version" -#define MSG_DOM_OPEN_ERROR "Erreur d'ouverture du domaine: %s" -#define MSG_DOM_READ_ERROR "Erreur %d en lecture de domaine: %s" -#define MSG_DOM_READ_ONLY "La table domaine %s est en lecture seulement" -#define MSG_DOM_WRITE_ERROR "Erreur %d en écriture de domaine: %s" -#define MSG_DONE "Effectué, rc=%d" -#define MSG_DOSALMEM_NOMEM "Erreur d'allocation, pas assez de mémoire" -#define MSG_DROP_DB_ERR "Echec du Drop sur le base de données %s" -#define MSG_DSORT_LOG_ERROR "Kindex: Erreur logique de tri distincte" -#define MSG_DUMMY_NO_COLS "Les tables DUMMY ne peuvent pas avoir de colonne" -#define MSG_DUPLICAT_COUNT "Count sur plus d'une colonne" -#define MSG_DUP_COL_NAME "La colonne %s existe en double" -#define MSG_DUP_PROJNUM "Non unique projnum %d pour la colonne %s" -#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_ENDSTR_MISMATCH "Fins de chaîne et de noeud ne correspondent pas" -#define MSG_END_OF_DELETE "%d ligne(s) enlevée(s) en %.2lf sec" -#define MSG_END_OF_INSERT "%d ligne(s) insérée(s) en %.2lf sec" -#define MSG_END_OF_QUERY "%d ligne(s) extraite(s) en %.2lf sec" -#define MSG_END_OF_UPDATE "%d ligne(s) modifiée(s) en %.2lf sec" -#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_ERASED " et effacée" -#define MSG_ERASE_FAILED " (échec de l'effacement)" -#define MSG_ERROR "Erreur" -#define MSG_ERROR_IN_LSK "Erreur %d dans lseek64" -#define MSG_ERROR_IN_SFP "Erreur %d dans SetFilePointer" -#define MSG_ERROR_NO_PARM "Paramètre absent (valide seulement pour %.8s.1 et %.8s.5)" -#define MSG_ERROR_OPENING "Erreur à l'ouverture de : " -#define MSG_ERR_NUM_GT_MAX "Erreur: Numval (%d) plus grand que Maxnum (%d)" -#define MSG_ERR_READING_REC "Erreur lisant l'enregistrement %d de %s" -#define MSG_ERR_RET_RULE "Retour erreur, règle=%u" -#define MSG_ERR_RET_TYPE "Retour erreur, type=%d" -#define MSG_EVAL_EXPIRED "Cette version d'évaluation est expirée" -#define MSG_EVAL_ONLY "L'utilisation de cette Dll est pour évaluation seulement" -#define MSG_EXECUTING "Exécution" -#define MSG_EXECUTION_ERROR "Erreur d'exécution" -#define MSG_EXEC_MODE_IS "Le mode d'exécution est %s" -#define MSG_EXEC_MODE_RESET ". Mode remis à Execute" -#define MSG_EXEC_MODE_SET "Mode d'exécution fixé à %s" -#define MSG_EXIT_EVAL_ERR "Erreur pendant l'évaluation de Exit" -#define MSG_EXIT_FROM_LANG "Fin du langage %s version %d.%d" -#define MSG_FAIL_ADD_NODE "L'ajout du noeud %s dans la table a échoué" -#define MSG_FETCHING_DATA "Recherche des données" -#define MSG_FETCHING_ROWS "Recherche des lignes" -#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_CLOSE_ERR "Erreur %d à la fermeture du fichier" -#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_NOT_FOUND "Fichier %s introuvable" -#define MSG_FILE_OPEN_YET "Fichier %s déjà ouvert" -#define MSG_FILE_UNFOUND "Fichier %s non trouvé" -#define MSG_FILGRP_NO_TABLE "Table %d manquante pour groupe filtre" -#define MSG_FILTER_ATTACH "Filtre passé à Attach" -#define MSG_FILTER_NO_TABLE "Filtre: première table manquante" -#define MSG_FIND_BAD_TYPE "Recherche dans un tableau: type non conforme %s %s" -#define MSG_FIX_OVFLW_ADD "Dépassement de capacité en addition" -#define MSG_FIX_OVFLW_TIMES "Dépassement de capacité en mutiplication" -#define MSG_FIX_UNFLW_ADD "Sous dépassement de capacité en addition" -#define MSG_FIX_UNFLW_TIMES "Sous dépassement de capacité en multiplication" -#define MSG_FLD_TOO_LNG_FOR "Champs %d trop long pour %s ligne %d de %s" -#define MSG_FLTST_NO_CORREL "FilTest ne devrait être appelé que pour les sous-requêtes corrélées" -#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_FNC_NOTIN_SLIST "Fonction de tri absente de la liste de sélection" -#define MSG_FORMAT_ERROR "Erreur de formattage" -#define MSG_FOXPRO_FILE "Fichier FoxPro: " -#define MSG_FPUTS_ERROR "Erreur dans fputs: %s" -#define MSG_FSBPARP_NULL "PUTFON: fsbparp est nul" -#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_FUNC_REF_DEL "Référence à une fonction définie (règle %d) qui a été supprimée" -#define MSG_FWRITE_ERROR "Erreur dans fwrite: %s" -#define MSG_GETCWD_ERR_NO "?getcwd %s errno=%d" -#define MSG_GETFILESIZE_ERR "Erreur %d dans GetFileSize" -#define MSG_GET_DIST_VALS "Récupération des valeurs distinctes de " -#define MSG_GET_ERROR "Erreur dans %s (colonne %d)" -#define MSG_GET_FUNC_ERR "Erreur en recherche de la fonction %s: %s" -#define MSG_GET_NAME_ERR "Erreur en retrouvant le nom d'une table SYS" -#define MSG_GLOBAL_ERROR "Erreur d'allocation de Global (taille=%d)\n" -#define MSG_GRAM_ALLOC_ERR "Erreur d'allocation dans Grammar Up" -#define MSG_GRAM_MISMATCH "Avertissement: version de GRAMMAR perimée (sauvé sous GRAMMAR v%u)" -#define MSG_GRAM_SUBSET_ERR "Erreur d'initialisation du dictionnaire de la grammaire" -#define MSG_GRBY_TAB_NOTIMP "Group by avec tables jointes non implémenté" -#define MSG_GROUPBY_NOT_ALL "Group By doit inclure toutes les sélections non-fonctionnelles" -#define MSG_GROUP_ON_FUNC "Group by invalide sur colonne fonctionnelle" -#define MSG_GRP_COL_MISM "Disparité colonne des groupes" -#define MSG_GRP_LIST_MISMAT "Le groupement ne couvre pas la liste de sélection" -#define MSG_GUARD_PAGE "Violation de page de garde" -#define MSG_GZOPEN_ERROR "gzopen %s: erreur %d sur %s" -#define MSG_GZPUTS_ERROR "Erreur dans gzputs: %s" -#define MSG_HANDLE_IS_NULL "%s est NULL: erreur code: %d" -#define MSG_HARRY_COMP_NIY "Compute non implémenté pour les chaînes codées" -#define MSG_HAVING_FILTER "Traitement du Filtre Having" -#define MSG_HBUF_TOO_SMALL "Buffer(%d) trop petit pour entête(%d)" -#define MSG_HEAD_OPEN_ERROR "Erreur à l'ouverture du fichier header" -#define MSG_HEAD_READ_ERROR "Erreur en lecture du fichier header %s" -#define MSG_HEAD_WRITE_ERR "Erreur en écriture du fichier header" -#define MSG_HI_OFFSET_ERR "Offset supérieur non nul" -#define MSG_HUGE_DEFAULT "Huge est %d par défault" -#define MSG_HUGE_WARNING_1 "Mémoire Huge non compatible 16-bit pour %d\n" -#define MSG_HUGE_WARNING_2 "Résultats imprévisibles possibles\n" -#define MSG_IDLE "Au repos" -#define MSG_ILLEGAL_INSTR "Instruction illégale" -#define MSG_ILL_FILTER_CONV "Conversion implicite illégale dans un filtre" -#define MSG_INDEX_CREATED "Index %s créé sur %s" -#define MSG_INDEX_DEF_ERR "Erreur sauvegardant l'index définition pour %s" -#define MSG_INDEX_DROPPED "Index %s supprimé de %s" -#define MSG_INDEX_INIT_ERR "Echec de l'initialisation de l'index %s" -#define MSG_INDEX_NOT_DEF "Index %s non défini" -#define MSG_INDEX_NOT_UNIQ "L'index n'est pas Unique" -#define MSG_INDEX_ONE_SAVE "Les index sont sauvegardés dans un fichier unique" -#define MSG_INDEX_SEP_SAVE "Les index sont sauvegardés dans des fichiers séparés" -#define MSG_INDEX_YET_ON "L'index %s existe déjà sur %s" -#define MSG_INDX_ALL_DROP "Tous les index de %s supprimé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_ERROR "Erreur à l'initialisation de %s" -#define MSG_INIT_FAILED "L'initialisation de %s a échoué" -#define MSG_INPUT "Entrée: " -#define MSG_INPUT_KEYBD_YET "L'entrée est déjà au clavier" -#define MSG_INSERTING "Insertion: " -#define MSG_INSERT_ERROR "Insert erreur: usage multiple du fichier %s" -#define MSG_INSERT_MISMATCH "Les listes colonne et valeur ne correspondent pas" -#define MSG_INTERNAL "interne" -#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_BIP "Bip invalide .%d" -#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_INVALID_OPTION "Option invalide %s" -#define MSG_INV_COLUMN_TYPE "Type %d Invalide pour la colonne %s" -#define MSG_INV_COL_DATATYP "Type de données %d invalide pour la colonne %d" -#define MSG_INV_COL_NUM "Colonne invalide %d" -#define MSG_INV_COL_TYPE "Type de colonne %s invalide" -#define MSG_INV_CONC_BIP "Bip invalide (seuls valides: %.8s.0 .1 and .5)" -#define MSG_INV_DATA_PATH "Chemin vers les données 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_DOMAIN_TYPE "Type invalide %d" -#define MSG_INV_FILTER "Filtre résiduel dans %s" -#define MSG_INV_FNC_BUFTYPE "FNC: Type %d de l'argument invalide pour %s" -#define MSG_INV_INFO_TYPE "Type d'info catalog invalide %d" -#define MSG_INV_INIPATH "Inipath invalide " -#define MSG_INV_MAP_POS "Position mémoire invalide" -#define MSG_INV_OPERATOR "opérateur invalide %d\n" -#define MSG_INV_PARAMETER "Paramètre invalide %s" -#define MSG_INV_PARM_TYPE "Type de paramètre invalide" -#define MSG_INV_QUALIFIER "Qalificateur '%s' invalide" -#define MSG_INV_QUERY_TYPE "Type de requête %d 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_SET_SUBTYPE "Type de formattage %d invalide" -#define MSG_INV_SPECIAL_CMD "%s: Commande spéciale invalide" -#define MSG_INV_SUBTYPE "Sous type invalide %s" -#define MSG_INV_TOK_DOMAIN "Le domaine %s n'existe pas" -#define MSG_INV_TOPSEM_CMD "Commande TopSem invalide %c" -#define MSG_INV_TRANSF_USE "Usage invalide en règle transformationnelle" -#define MSG_INV_TYPE_SPEC "Spécification de type invalide (%.8s.%d)" -#define MSG_INV_UPDT_TABLE "Table %s invalide pour Update" -#define MSG_INV_VALUE_LIST "Liste de valeurs invalide pour Insert" -#define MSG_INV_WHERE_JOIN "Clause Where invalide dans une requête de jointure" -#define MSG_INV_WORK_PATH "Chemin de travail invalide" -#define MSG_IN_ARGTYPE_MISM "Arguments de types incompatibles pour une expression IN" -#define MSG_IN_USE " et en activité" -#define MSG_IN_WITHOUT_SUB "IN ou EXISTS sans tableau ou subquery" -#define MSG_IS_NOT_CONN "%s n'est pas une connexion définie" -#define MSG_JCT_MISS_COLS "Colonnes manquantes pour une table JCT" -#define MSG_JCT_MISS_TABLE "Table jointe manquante pour JCT" -#define MSG_JCT_NO_FILTER "Filtrage impossible des tables virtuelles JCT" -#define MSG_JCT_NO_KEY "Erreur logique JCT: clé manquante" -#define MSG_JOIN_KEY_NO_COL "La clé de jointure n'est pas une colonne" -#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_LANGUAGE_QUIT "%s libéré" -#define MSG_LANG_ACTIVE "Langage %s actif" -#define MSG_LANG_ALLOC_FAIL "PlugInitLang: Erreur d'allocation du bloc Lang" -#define MSG_LANG_ALREADY_UP "Langage déjà en édition" -#define MSG_LANG_BAD_SAVE "Langage %s peut-être incorrectement sauvegardé" -#define MSG_LANG_NOT_FREED "Langage %s non libérable (pas dans la chaîne principale)" -#define MSG_LANG_SAVED "Langage %s sauvegardé" -#define MSG_LANG_WR_LEN_ERR "Erreur de longueur à l'écriture du bloc Lang" -#define MSG_LDF_ALLOC_ERROR "Erreur d'allocation d'un LdfBlock" -#define MSG_LDF_RN_MISMATCH "LDF: décalage des numéros de règle" -#define MSG_LDF_WLEN_ERROR "Erreur de longueur en écrivant LdfData" -#define MSG_LDF_W_LEN_ERROR "Erreur de longueur pour LdfData en écriture" -#define MSG_LIC_NO_MYSQL "Votre licence actuelle ne permet pas l'utilisation du type MYSQL" -#define MSG_LINEAR_ERROR "Erreur de linéarisation" -#define MSG_LINE_LENGTH "Largeur d'impression fixée à %d" -#define MSG_LINE_MAXLIN "Nombre de lignes de travail plafonné à %d" -#define MSG_LINE_MAXRES "Nombre de lignes de résultat plafonné à %d" -#define MSG_LINE_MAXTMP "Nombre de lignes intermédiaires plafonné à %d" -#define MSG_LINE_TOO_LONG "La nouvelle ligne est trop longue" -#define MSG_LINJOINDB_ERROR "Erreur système: appel incorrecte à LinJoinDB" -#define MSG_LIST "--Liste--" -#define MSG_LNG_NOT_IN_LIST "Le langage %s n'est pas dans la liste" -#define MSG_LOADING_DB "Chargement description de la BD" -#define MSG_LOADING_FAILED "Le chargement de %s a échoué" -#define MSG_LOAD_CDLL_ERROR "Erreur au chargement de ConnDll: rc=%d" -#define MSG_LOCSTRG_TOO_BIG "LOCSTRG: n trop grand ? (%d)\n" -#define MSG_LOGICAL_ERROR "%s: Erreur logique" -#define MSG_LRECL_TOO_SMALL "Lrecl trop petit (longueur en-tête = %d)" -#define MSG_MAC_NO_DELETE "Pas de suppression de lignes pour les tables MAC" -#define MSG_MAC_NO_INDEX "Pas d'accès direct aux tables MAC" -#define MSG_MAC_READ_ONLY "Les tables MAC sont en lecture seulement" -#define MSG_MAC_WIN_ONLY "Les tables MAC sont seulement sous Windows" -#define MSG_MAKE_EMPTY_FILE "Génération du fichier vide %s: %s" -#define MSG_MAKING "Génération" -#define MSG_MAKING_DISTINCT "Regroupement des valeures distinctes" -#define MSG_MALLOC_ERROR "Allocation mémoire impossible par %s" -#define MSG_MALLOC_NULL "malloc retourne Null" -#define MSG_MAP_NO_MORE "Le type %s n'est plus supporté" -#define MSG_MAP_OBJ_ERR "Erreur %d à la fermeture du map objet" -#define MSG_MAP_VEC_ONLY "MAP Insert permis seulement pour les tables VEC Estimate" -#define MSG_MAP_VIEW_ERROR "MapViewOfFile %s erreur rc=%d" -#define MSG_MAXSIZE_ERROR "Maxsize incalculable sur table ouverte" -#define MSG_MAXTMP_TRUNCATE "Résultats intermédiaires tronqués par maxtmp=%d" -#define MSG_MAX_BITMAP "Taille maxi des bitmaps d'optimisation fixée à %d" -#define MSG_MEMSIZE_TOO_BIG "Erreur: memsize (%d) trop grand pour Length (%d)" -#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_MEM_ALLOC_YET "Mémoire déjà allouée" -#define MSG_METAFILE_NOTFND "Fichier Meta introuvable" -#define MSG_MISPLACED_QUOTE "Appostrophe mal placée ligne %d" -#define MSG_MISSING "Manquant: Value=%p Argval=%p Builtin=%d" -#define MSG_MISSING_ARG "Argument manquant pour l'opérateur %d" -#define MSG_MISSING_COL_DEF "Définition des colonnes manquante" -#define MSG_MISSING_CONNECT "Connection #1 manquante" -#define MSG_MISSING_EOL "Fin de ligne manquante dans %s" -#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_POS "POS code manquant" -#define MSG_MISSING_ROWNODE "Impossible de trouver le noeud de la ligne %d" -#define MSG_MISSING_SERV_DB "Indication serveur et/ou base de données manquante" -#define MSG_MISS_LEAD_COL "Colonne majeure %s manquante" -#define MSG_MISS_NAME_LRECL "Nom du fichier et/ou LRECL manquant" -#define MSG_MISS_TABLE_LIST "Liste des tables manquante" -#define MSG_MISS_VCT_ELMT "Taille de bloc vectoriel manquante (Elements)" -#define MSG_MIS_TAG_LIST "Liste des balises colonne manquante" -#define MSG_MKEMPTY_NIY "MakeEmptyFile: pas encore implementé pour Huge et Unix" -#define MSG_MOVE_INV_TYPE "MOVPARM: paramètre de type invalide %d" -#define MSG_MULT_DISTINCT "Distinct utilisé plus d'une fois" -#define MSG_MULT_KEY_ERROR "Erreur sur clé multiple k=%d n=%d" -#define MSG_MUL_MAKECOL_ERR "Erreur logique dans TABMUL::MakeCol" -#define MSG_MYSQL_CNC_OFF "La connexion à MySQL est fermée" -#define MSG_MYSQL_CNC_ON "La connexion à MySQL est établie" -#define MSG_MYSQL_NOT_SUP "Pas de support de MySQL dans cette version" -#define MSG_MY_CNC_ALREADY "La connexion à MySQL est déjà active" -#define MSG_NAME_CONV_ERR "Erreur de convertion du nom de noeud" -#define MSG_NAME_IS_USED "Le nom %s est déjà utilisé" -#define MSG_NCOL_GT_MAXCOL "Trop de colonnes (%d > %d max)" -#define MSG_NEW_CHAR_NULL "new char(%d) retourne Null" -#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_NEW_TABLE_ERR "La nouvelle table %s ne peut pas être chargée" -#define MSG_NEXT_FILE_ERROR "Erreur en recherche du fichier suivant. rc=%s" -#define MSG_NODEF_FROM_VIEW "Pas de définition de table depuis une view" -#define MSG_NODE_FOR_CHAR "Noeud %s trouvé au lieu d'un caractère" -#define MSG_NODE_SUBSET_ERR "Erreur d'initialisation de la zone Noeud %d" -#define MSG_NONCONT_EXCEPT "Exception non-continuable" -#define MSG_NON_DUP_HAVING "Clause Having dans une requête non fonctionelle" -#define MSG_NON_EVAL_SEM "Sem non évaluée: p_no=%d" -#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_ENOUGH_COLS "Pas assez de colonnes dans %s" -#define MSG_NOT_ENOUGH_MEM "Mémoire insuffisante pour cette opération" -#define MSG_NOT_FIXED_LEN "Fichier %s non fixe, len=%d lrecl=%d" -#define MSG_NOT_IMPLEMENTED "Non implementé: %.8s" -#define MSG_NOT_IMPL_JOIN "Pas implémenté pour les jointures" -#define MSG_NOT_IMPL_SET "Pas implémenté pour les opérateurs d'ensembles" -#define MSG_NOT_IMPL_YET "Pas encore implementé" -#define MSG_NOT_LINEARIZED "Arborescence des tables non linéarisée" -#define MSG_NOT_MODIFIABLE " (non modifiable)" -#define MSG_NO_0DH_HEAD "0DH manquant en fin d'en-tête (dbc=%d)" -#define MSG_NO_ACTIVE_APPL "Pas d'application active" -#define MSG_NO_ACTIVE_DB "Pas de base de données active" -#define MSG_NO_ACTIVE_UDIC "Pas de dictionaire utilisateur actif" -#define MSG_NO_AGGR_FUNC "Fonction aggrégée %d illégale à cet endroit" -#define MSG_NO_AREA_FILE "Fichier Area introuvable" -#define MSG_NO_AVAIL_RESULT "Pas de résultat disponible" -#define MSG_NO_BIG_DELETE "Délétion Partielle non implémentée pour les fichiers HUGE" -#define MSG_NO_CHAR_FROM "Conversion de type %d en caractères impossible" -#define MSG_NO_CLUSTER_COL "Pas de colonne optimisable" -#define MSG_NO_COL_ADDING "Ajouter des colonnes dans une définition existante est impossible" -#define MSG_NO_COL_DEF_AS "La définitions des colonnes est incompatible avec AS Select" -#define MSG_NO_COL_FOUND "La section colonne %s est vide" -#define MSG_NO_COL_IN_TABLE "La colonne %d n'est pas dans la table %s" -#define MSG_NO_COL_SECTION "Section colonne manquante pour la table %s" -#define MSG_NO_CONNECT_ADDR "Adresse de connection non spécifiée" -#define MSG_NO_CONST_FILTER "Filtres constants non implementés" -#define MSG_NO_CURLY_BRKT "Pas d'accolade de fermeture" -#define MSG_NO_DATABASE "Base de données %s introuvable" -#define MSG_NO_DATE_FMT "Pas de format date pour le valblock de type %d" -#define MSG_NO_DBF_INSERT "Insert pas encore implémenté pour les fichier DBF" -#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_DMY_DIR_ACC "Pas d'accès direct aux tables virtuelles DUMMY" -#define MSG_NO_DOM_DELETE "Délétion Partielle non implémentée pour les domaines" -#define MSG_NO_DOM_MATCH "Chaîne %.8s... non touvée dans le domaine %s" -#define MSG_NO_EDITED_LANG "Coparm: Pas de langage en édition" -#define MSG_NO_EXP_LINK "Liaison par expression invalide pour une table JCT" -#define MSG_NO_EXT_FILTER "Le filtrage ne peut se référer à une autre table" -#define MSG_NO_EXT_UPDATE "Pas de mise à jour en référence à une autre table" -#define MSG_NO_FEAT_SUPPORT "%s non supporté dans cette version" -#define MSG_NO_FILE_LIST "La table %s n'a pas de liste de fichiers" -#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_FULL_JOIN "Jointures autorisées seulement à égalité sur clé(s)" -#define MSG_NO_FUL_OUT_JOIN "Jointures externes complètes non supportées" -#define MSG_NO_FUNC_ORDER "Tri non supporté sur élément fonctionnel" -#define MSG_NO_HEAD_JOIN "Jointure sur une table non en tête" -#define MSG_NO_HQL_CONV "Conversion en HQL non disponible" -#define MSG_NO_INDEX "La table %s n'a pas d'index" -#define MSG_NO_INDEX_GBX "Pas ou mauvais index pour SQLGBX" -#define MSG_NO_INDEX_IN "Pas d'index dans %s" -#define MSG_NO_INDEX_READ "Pas d'accès directe des tables multiples" -#define MSG_NO_INIT_LANG "Pas de langage initial" -#define MSG_NO_JOIN_TO_EXP "Jointure vers une expression impossible" -#define MSG_NO_JOIN_UPDEL "Pas de jointure avec Update/Delete" -#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_LANGUAGE "Pas de langage opérationnel\n" -#define MSG_NO_LANG_TO_QUIT "Pas de langage à quitter" -#define MSG_NO_LISTVAL_HERE "LSTBLK: Liste de valeurs utilisée hors contexte" -#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_MEM_CORR_SUB "Subquery corrélée en mémoire non encore implémentée" -#define MSG_NO_MODE_PADDED "Mode non supporté pour les fichiers 'padded'" -#define MSG_NO_MORE_COL "La colonne %s n'est plus dans la table pivot" -#define MSG_NO_MORE_LANG "Plus de langage, exit de %s\n" -#define MSG_NO_MORE_VAR "Les fichiers VAR ne sont plus supportés" -#define MSG_NO_MULCOL_JOIN "Jointure vers un index multi-colonne pas encore possible" -#define MSG_NO_MULT_HAVING "Clauses Having multiples non implémentées" -#define MSG_NO_MUL_DIR_ACC "Accès direct des tables multiples pas encore implémenté" -#define MSG_NO_MUL_VCT "Les tables VCT ne peuvent pas être multiples" -#define MSG_NO_MYSQL_CONN "Aucune connexion MySQL ouverte" -#define MSG_NO_MYSQL_DELETE "Pas de Delete pour les tables MySQL" -#define MSG_NO_NBCOL "Pas de NBcol" -#define MSG_NO_NBLIN "Pas de NBlin, MaxSize ou Continued" -#define MSG_NO_NBLIN_CONT "Fetch: Pas de NBlin ou Continued" -#define MSG_NO_NULL_CONST "Les constantes <null> ne sont pas prises en charge" -#define MSG_NO_ODBC_COL "Colonnes ODBC automatiques non supportées par cette version" -#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_OPT_COLUMN "Pas optimisable ou pas de colonne optimisées" -#define MSG_NO_OP_MODIF "Les modificateurs ne s'appliquent pas à %s" -#define MSG_NO_PARAMETER "Pas de paramètre" -#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_POS_ADDED "Pos_code non ajouté" -#define MSG_NO_PROMPTING "Relance impossible pour les tables distribuées" -#define MSG_NO_QRY_DELETE "Delete n'est pas utilisable pour les views QRY" -#define MSG_NO_QUERY_ARRAY "Tableaux avec QUERY non encore implémentés" -#define MSG_NO_RCUR_DSK_YET "Usage recursif de DISK non encore implementé" -#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_REF_DELETE "Pas de suppression en référence à une autre table" -#define MSG_NO_REF_UPDATE "Pas de mise à jour en référence à une autre table" -#define MSG_NO_REMOTE_FNC "Certaines fonctions ne peuvent pas être exécutées à distance" -#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_SELECTED_DB "Aucune base de données sélectée" -#define MSG_NO_SELF_PIVOT "Une table ne peut se pivoter elle-même !" -#define MSG_NO_SERVER_FOUND "Serveur introuvable" -#define MSG_NO_SETPOS_YET "SetPos pas encore implémenté pour les fichier %s" -#define MSG_NO_SFEXIT_UNIX "Fonction %s non disponible sur Unix" -#define MSG_NO_SOURCE " (pas de source)" -#define MSG_NO_SPEC_COL "Pas de colonne spéciales MYSQL" -#define MSG_NO_SQL_DELETE "Delete n'est pas utilisable actuellement pour les views SQL" -#define MSG_NO_SUB_VAL "Pas de sous-value d'un tableau de type %d" -#define MSG_NO_SUCH_INDEX "La table %s n'a pas l'index %s" -#define MSG_NO_SUCH_SERVER "Serveur %s introuvable" -#define MSG_NO_SUCH_TABLE "Table %s pas dans la base de données" -#define MSG_NO_TABCOL_DATA "Pas de données pour la table %s colonne %s" -#define MSG_NO_TABLE_COL "Aucune colonne trouvée pour %s" -#define MSG_NO_TABLE_DEL "Delete non autorisé pour les tables %s " -#define MSG_NO_TABLE_DESC "Pas de bloc descriptif de table" -#define MSG_NO_TABLE_INDEX "La table %s n'a pas d'index" -#define MSG_NO_TABLE_LIST "Pas de liste de tables" -#define MSG_NO_TAB_DATA "Pas de données pour la table %s" -#define MSG_NO_TERM_IN_TOK "Les non-terminaux ne sont pas utilisables dans les règles de Token" -#define MSG_NO_TOKEN_DB "DB introuvable pour la colonne TOKEN %s" -#define MSG_NO_UNIX_CATINFO "Pas d'info catalogue sous Unix" -#define MSG_NO_UPDEL_JOIN "Pas de jointure de tables ODBC pour Update/Delete" -#define MSG_NO_VCT_DELETE "Délétion Partielle non implémentée pour les fichiers VCT" -#define MSG_NO_VIEW_COLDEF "Colonne définition impossible pour les views" -#define MSG_NO_VIEW_SORT "La View fonctionnelle %s ne peut pas être triée ou jointe" -#define MSG_NO_ZIP_DELETE "Delete sur fichier Zip non encore implementé" -#define MSG_NO_ZIP_DIR_ACC "Accès directe des tables ZDOS non encore implementé" -#define MSG_NULL_COL_VALUE "La colonne n'a pas de valeur" -#define MSG_NULL_ENTRY "InitLang, entrée nulle %d %s" -#define MSG_NULL_QUERY "Requête vide" -#define MSG_NUMVAL_NOMATCH "Disparité de Numval pour %s" -#define MSG_N_FULL_PARSES "%d significations" -#define MSG_ODBC_READ_ONLY "ODBC est actuellement en lecture seulement" -#define MSG_OFFSET_NOT_SUPP "Offset non supporté pour ce type de sous requête" -#define MSG_ONE_LANG_YET "Un langage est déjà en édition" -#define MSG_ONE_PARAM_ONLY "Un seul paramètre autorisé" -#define MSG_ONLY_LOG10_IMPL "Seul Log10 est implementé" -#define MSG_ON_LANGUAGE "Langage %.8s version %d niveau %d éditable" -#define MSG_OPENING "Ouverture" -#define MSG_OPENING_QUERY "Ouverture de la requête" -#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_ERROR_ON "Erreur d'ouverture sur %s" -#define MSG_OPEN_MODE_ERROR "Erreur d'ouverture(%s) %d sur %s" -#define MSG_OPEN_SORT_ERROR "Erreur logique de tri dans QUERY Open" -#define MSG_OPEN_STRERROR "Erreur à l'ouverture: %s" -#define MSG_OPEN_W_ERROR "Erreur à l'ouverture de %s en écriture" -#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_INIT "Optimisation initialisée" -#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_OP_RES_TOO_LONG "Résultat trop long pour l'opérateur=%d" -#define MSG_ORDER_OUT_RANGE "Tri: Order %d hors limite" -#define MSG_ORDER_TWICE "Un même élément est trié deux fois" -#define MSG_PAGE_ERROR "Erreur de pagination" -#define MSG_PARM_CNT_MISS "Disparité du nombre de Paramètres" -#define MSG_PARSE_NULL_SEM "Sémantique nulle" -#define MSG_PARSING_QUERY "Analyse de la requête" -#define MSG_PIX_ERROR "Pix %s erreur règle no=%u\n" -#define MSG_PIX_TEST_ERROR "Règle=%u: pix-TEST pas dans le premier noeud\n" -#define MSG_PLG_READ_ONLY "PLG est actuellement en lecture seulement" -#define MSG_PLM_NULL_SFP "TABPLM ReadDB: Sfp est NULL" -#define MSG_PLUG_NOT_INIT "Plug n'est pas initialisé\n" -#define MSG_PLUG_NOT_RUN "Plug n'est pas en marche" -#define MSG_PNODE_RULE "(Noeud %d règle %d) " -#define MSG_POS_TOO_LONG "%s trop long (>%d)" -#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_PROCESS_SUBQRY "Sub-Query en cours de traitement" -#define MSG_PROC_WOULD_LOOP "Bouclage du traitement (maxres=%d maxlin=%d)" -#define MSG_PROGRESS_INFO "Informations sur le traitement en cours" -#define MSG_PROMPT_CANCEL "Relance annulée" -#define MSG_PROMPT_NIY "Prompt non implémenté pour cette configuration" -#define MSG_PTR_NOT_FOUND "Pointeur introuvable Num=%d ti1=%d" -#define MSG_PXDEF_IS_NULL "Pxdef est NULL" -#define MSG_QRY_READ_ONLY "Les views QRY sont en lecture seulement" -#define MSG_QUERY_CANCELLED "Requête interrompue par l'utilisateur" -#define MSG_QUERY_NOT_EXEC "Requête non exécutée" -#define MSG_QUERY_SAVED "Requête %s sauvegardée" -#define MSG_QUOTE_IN_QUOTE "Appostrophe dans un champ entre appostrophe ligne %d" -#define MSG_RANGE_NIY "Range pas encore implémenté pour %s" -#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_READB_BAD_INIT "%s ReadDB appelé avec Init=0" -#define MSG_READCOL_ERROR "SQLCOL: erreur dans ReadColumn" -#define MSG_READING "Lecture" -#define MSG_READING_FROM "Lecture de %s" -#define MSG_READING_RECORD "Erreur en lecture de l'enregistrement %d de %s" -#define MSG_READY "Prêt" -#define MSG_READ_ERROR "Erreur en lecture sur %s: %s" -#define MSG_READ_ERROR_RC "Erreur en lecture, rc=%d" -#define MSG_READ_MEM_ERROR "Lecture mémoire %d: taille=%d" -#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_READ_SEG_ERROR "Lecture segment %d: taille=%d" -#define MSG_RECEIVED "Reçu %c\n" -#define MSG_RECORD_ERROR "Erreur à la lecture de l'enregistrement %d de %s" -#define MSG_RECORD_NO_SEP "Enregistrement sans séparateur" -#define MSG_REC_SKIPPED " (%d lignes erronnées sautées par l'option MaxErr)" -#define MSG_REDUCE_INDEX "Réduction de l'index" -#define MSG_REGISTER_ERR "Enregistrement NS impossible, préfix='%s' et href='%s'" -#define MSG_REMOTE_CONN_ERR "La connection éloignée a échoué" -#define MSG_REMOVE_ERROR "Erreur en supprimant %s: %s" -#define MSG_REMOVE_NOT_IMPL "Remove non implémenté pour TDB non Table" -#define MSG_RENAME_ERROR "Erreur renommant %s en %s: %s" -#define MSG_RENUM_RULES "Renumérotez les règles et réentrez ADD (règle sauvegardée dans la zone tampon)" -#define MSG_REORDER_INDEX "Reclassement de l'index" -#define MSG_REQU_ARG_NUM "La fonction %s doit avoir %d arguments" -#define MSG_RESET_TO "%s remis à %d" -#define MSG_RES_NOT_UNIQUE "Le résultat n'est pas unique" -#define MSG_RET_FROM_LANG "Retour au language %s version %d.%d du language %s version %d.%d" -#define MSG_ROWID_NOT_IMPL "RowNumber non implémenté pour les tables de type %s" -#define MSG_ROWS_SELECTED "%d lignes sélectionnées en %.2lf sec" -#define MSG_ROWS_TRUNCATED " (tronqué par MAXRES, LIMIT, FREQ ou AreaSize)" -#define MSG_ROW_ARGNB_ERR "ROW: disparité du nombre d'arguments (%d,%d)" -#define MSG_RPC_SERVER_ERR "Erreur logique dans TABMUL::MakeCol" -#define MSG_RSC_ALLOC_ERROR "Erreur d'allocation mémoire dans Rescol %s" -#define MSG_RULE_ENTERED "Règle %d entrée" -#define MSG_RULE_SUBSET_ERR "Erreur d'initialisation de la zone Règles" -#define MSG_SAVING_INDEX "Sauvegarde du fichier index" -#define MSG_SCAN_NOT_IMP "Scan non implémenté" -#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_SEC_NOT_FOUND "Section %s absente de %s" -#define MSG_SEEK_ERROR "Seek erreur dans CopyHeader" -#define MSG_SEMANTIC_TREE "Arbre sémantique" -#define MSG_SEM_BAD_REF "Sem @%d référence un argument de type non 0 ou 1" -#define MSG_SEM_UNKNOWN "inconnue, rc=%d" -#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_LOCALE "Locale fixée à %s" -#define MSG_SET_NULL_DOM "Valeur %d donnée à un domaine nul" -#define MSG_SET_OP_NOT_IMPL "Opérateurs ensemblistes non implementés" -#define MSG_SET_STR_TRUNC "SetValue: Chaîne de caractères tronquée" -#define MSG_SEVERAL_TREES "Jointure non spécifiée pour certaines tables" -#define MSG_SFP_ERROR "Erreur sur SetFilePointer: %s" -#define MSG_SFUNC_NOT_IMPL "Fonction scalaire %s non implémentée" -#define MSG_SHARED_LIB_ERR "Erreur au chargement de la librairie partagée %s: %s" -#define MSG_SINGLE_STEP "Pas à pas" -#define MSG_SLEEP "J'ai dormi %d milliseconds" -#define MSG_SMART_SORTING "Récupération des lignes triées (passage %d de %d)" -#define MSG_SMART_SORT_ERR "Erreur logique 1 dans Smart Sort" -#define MSG_SORTING "Tri en cours" -#define MSG_SORTING_INDEX "Tri de l'index" -#define MSG_SORTING_VAL "Tri de %d valeurs" -#define MSG_SORT_JOIN_INDEX "Tri de l'index de jointure" -#define MSG_SPCOL_READONLY "La colonne spéciale %s est en lecture seulement" -#define MSG_SPEC_CMD_SEP "Les commandes spéciales doivent être exécutées séparément" -#define MSG_SQL_BAD_TYPE "RephraseSQL: type %d non supporté" -#define MSG_SQL_BLOCK_MISM "CheckColumn: bloc SQL courant non correspondant" -#define MSG_SQL_CONF_ERROR "Erreur SQL: SQL_CONFORMANCE" -#define MSG_SQL_READ_ONLY "Les views SQL sont actuellement en lecture seulement" -#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_ERROR "Erreur sur la pile, i=%d\n" -#define MSG_STACK_OVERFLOW "Parser: Débordement de la pile\n" -#define MSG_STRG_NOT_FOUND "Chaîne introuvable" -#define MSG_STRING_INV_LIST "Liste invalide pour SemString" -#define MSG_STRING_TOO_BIG "Chaîne trop grande pour le domaine %s" -#define MSG_SUBALLOC_ERROR "Pas assez de mémoire en zone %p pour allouer %d (utilisé=%d libre=%d)" -#define MSG_SUBAL_HUGE_ERR "Pas assez de mémoire en zone huge %p pour allouer %d" -#define MSG_SUBARG_NOSEM "Argument @ ou sous-phrase de niveau %d pointe sur un noeud sans Sem" -#define MSG_SUBARG_OUTRANGE "Argument @ ou sous-phrase de niveau %d hors limite" -#define MSG_SUBQRY_ONEITEM "Une Sub-Query ne doit avoir qu'une sélection" -#define MSG_SUBSET_ERROR "SubSet erreur dans LoadDB" -#define MSG_SUB_OPEN_YET "Subquery déjà ouverte" -#define MSG_SUB_RES_TOO_LNG "Résultat trop long pour SUBSTR" -#define MSG_SYNTAX_ERROR "Erreur de syntaxe" -#define MSG_SYSTEM_ERROR "Erreur système %d" -#define MSG_S_ACCESS_DENIED "%s: accès non autorisé" -#define MSG_S_ERROR "%s erreur" -#define MSG_S_ERROR_NUM "%s: erreur=%d" -#define MSG_S_INTRUPT_ERROR "%s: erreur interruption" -#define MSG_S_INVALID_PARM "%s: paramètre invalide" -#define MSG_S_INV_ADDRESS "%s: adresse invalide" -#define MSG_S_UNKNOWN_ERROR "%s: erreur de code %u inconnu" -#define MSG_TABDIR_READONLY "Les tables DIR sont en lecture seulement" -#define MSG_TABLE_ALREADY "La table %s existe déjà" -#define MSG_TABLE_ALTERED "Table %s %s altérée" -#define MSG_TABLE_CREATED "%s table %s créée" -#define MSG_TABLE_DROPPED "Table %s supprimée" -#define MSG_TABLE_MULT_JOIN "Utilisation multiple de la table %s pour jointure" -#define MSG_TABLE_NOT_IN_DB "La table %s n'existe pas dans %s" -#define MSG_TABLE_NOT_OPT "Table non optimisable" -#define MSG_TABLE_NO_INDEX "La table %s n'est pas indexable" -#define MSG_TABLE_NO_OPT "La table %s n'existe pas ou de type non optimisable" -#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_TAB_NOT_LOADED " (certaines tables n'ont put être chargées)" -#define MSG_TAB_NOT_SPEC "Table non specifiée" -#define MSG_TB_VW_NOTIN_DB "Table ou view %s pas dans la base de données" -#define MSG_TDB_NXT_NOT_NUL "Tdb.Next non NULL" -#define MSG_TDB_USE_ERROR "Erreur, Tdbp->Use=%d" -#define MSG_TOO_MANY_COLS "Trop de colonnes" -#define MSG_TOO_MANY_COLTAB "Trop de colonnes dans %s (%d)" -#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_TOO_MANY_POS "Trop de pos_codes" -#define MSG_TOO_MANY_TABLES "Trop de tables (%d)" -#define MSG_TOPSEM_ERROR "Erreur inconnue dans TopSem" -#define MSG_TO_BLK_IS_NULL "To Blk est nul" -#define MSG_TO_FTR_NOT_NULL "Set.To_Ftr n'est pas nul" -#define MSG_TO_PIX_NOT_NULL "Set.To_Pix n'est pas nul" -#define MSG_TO_SEM_NOT_NULL "Set.To_Sem n'est pas nul" -#define MSG_TRUNCATE_ERROR "Erreur en troncation: %s" -#define MSG_TRUNC_BY_ESTIM "Tronqué par l'option Estimate" -#define MSG_TYPES_ERROR "Erreur sur Types(%d)" -#define MSG_TYPE_CONV_ERROR "Type non convertible dans une expression" -#define MSG_TYPE_DEF_MISM "Disparité entre type et définition" -#define MSG_TYPE_MISMATCH "Clé et source ne sont pas du même type" -#define MSG_TYPE_RECFM_MISM "Disparité entre Type et Recfm" -#define MSG_TYPE_TO_VERIFY "Type à vérifier: %d" -#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_UNDEFINED_PATH "Chemin d'accès indéfini pour Plgcnx.ini" -#define MSG_UNDEF_COL_COUNT "Count sur colonne non définie" -#define MSG_UNKNOWN_DOMAIN "Domaine inconnu %s" -#define MSG_UNKNOWN_ERROR "Erreur inconnue" -#define MSG_UNKNOWN_EXCPT "Exception non répertoriée" -#define MSG_UNKNOWN_NAME "Nom inconnu: %.8s" -#define MSG_UNKNOWN_PATH "Chemin d'accès inconnu pour Plgcnx.ini" -#define MSG_UNKNOWN_POS "Nom pos_code inconnu: %s" -#define MSG_UNKNOWN_SEM "Sem %.8s inconnue, rc=%d" -#define MSG_UNKNOWN_SYNONYM "Synonyme inconnu" -#define MSG_UNKNW_QRY_TYPE "ReadDB: type de requête inconnu" -#define MSG_UNKN_ERR_CODE "Erreur de code %d inconnu" -#define MSG_UNLOADABLE " inchargeable: " -#define MSG_UNLOADABLE_PRM "%s inchargeable: %s" -#define MSG_UNMATCH_FIL_ARG "Argument de filtre dépareillé" -#define MSG_UNQ_COL_SEV_TAB "La colonne %s non qualifiée est dans plusieurs tables" -#define MSG_UNRESOLVED_ARG "?Argument manquant: %s non résolu en %d ligne %d" -#define MSG_UPDATE_ERROR "Erreur en Update sur %s" -#define MSG_UPDATING_ROWS "Mise à jour des lignes" -#define MSG_UPD_ZIP_NOT_IMP "Mise à jour des tables ZDOS non encore implementé" -#define MSG_UP_LANGUAGE "Bloc langage %.8s version %d niveau %d chargé" -#define MSG_USED_FREE_MEM "Sarea: utilisé %d, libre %d" -#define MSG_USETEMP_IS "Usetemp est : %s" -#define MSG_USETEMP_RESET ". Usetemp remis à Auto" -#define MSG_USETEMP_SET "Usetemp fixé à %s" -#define MSG_USE_NO_MATCH "Use non correspondant : Use=%d, ti2=%d, ti3=%d" -#define MSG_USING_INDEX " (Indexé par" -#define MSG_VALIST_MISMATCH "Disparité des listes de valeurs" -#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_NOT_ALLOC "Valeur non allouée pour la colonne R%d %s" -#define MSG_VALUE_TOO_BIG "Valeur %lld 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_VAL_TOO_LONG "Valeur %s trop longue pour le champ %s" -#define MSG_VIEW_ALREADY "La VIEW %s existe déjà" -#define MSG_VIEW_CREATED "%s view %s créée" -#define MSG_VIEW_DROPPED "View %s supprimée" -#define MSG_VIEW_NOT_IN_DB "%s n'est pas une View de %s" -#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_VM_LANG "Langage au format VM, non supporté" -#define MSG_VOID_FIRST_ARG "Le premier argument ne doit pas être vide" -#define MSG_VOID_IN_STRING "Erreur: chaîne IN vide" -#define MSG_VOID_ORDER_LIST "Liste de tri vide, erreur système ?" -#define MSG_VOID_POS_DICT "Dictionnaire interne du langage vide" -#define MSG_VOID_QUERY "Requête vide %s" -#define MSG_WORK_AREA "Espace de travail: %s" -#define MSG_WORK_TOO_SMALL "Zone de travail trop petite, accroître AreaSize" -#define MSG_WRITE_ERROR "Erreur à l'écriture de %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_WRITING_QUERY "Erreur à l'écriture de la requête: " -#define MSG_WRONG_ARG_NUM "La fonction %s ne prend pas %d arguments" -#define MSG_WRONG_COL_NUM "Numéro de colonne %d trop grand pour %s" -#define MSG_WRONG_DB_LIST "Liste des bases de données incorrecte ou vide" -#define MSG_WRONG_FUNCTION "Mauvaise fonction %d" -#define MSG_WRONG_OP_PARM "Mauvais opérateur ou paramètres pour %s" -#define MSG_WRONG_PARMS "Mauvais paramètres pour %s" -#define MSG_WRONG_PASSWORD "Mot de passe illégal pour %s" -#define MSG_WRONG_TYPE "type non supporté" -#define MSG_WRONG_USERFILE "La Userfile a une mauvaise taille %d" -#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_XDB_DEL_ERROR "Erreur en supprimant des entrées du fichier XDB" -#define MSG_XFILE_READERR "Erreur %d en lisant le fichier index" -#define MSG_XFILE_TOO_SMALL "Le fichier index est plus petit que la taille de l'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" -#define MSG_X_ARG_ADDED "%d arguments ajoutés" -#define MSG_X_ARG_SET "%d arguments ont été initialisés" -#define MSG_X_ON_TAB " %s sur %s(" -#define MSG_ZERO_DIVIDE "Division par zéro dans une expression" diff --git a/storage/connect/frmsg2.h b/storage/connect/frmsg2.h deleted file mode 100644 index 487db3395fb..00000000000 --- a/storage/connect/frmsg2.h +++ /dev/null @@ -1,1013 +0,0 @@ -#define MSG_ACCESS_VIOLATN "Violation accŠs m‚moire" -#define MSG_ACT_ALLOC_FAIL "PlugInitLang: Erreur d'allocation du bloc Activity" -#define MSG_ADDVAL_ERROR "Erreur %d dans AddValue" -#define MSG_ADD_BAD_TYPE "Ajout d'une valeur de type %s non conforme dans un tableau %s" -#define MSG_ADD_NULL_DOM "Ajout de la chaŒne %s … un domaine nul" -#define MSG_ADPOS_IN_DICTP "ADPOS au travail dans User_Dictp" -#define MSG_AFTER " aprŠs: " -#define MSG_ALG_CHOICE_AUTO "Le choix du meilleur algorithme est automatique" -#define MSG_ALG_CHOICE_BAD "Choix d'algorithme invalide, remis … AUTO" -#define MSG_ALG_CHOICE_QRY "Utilise l'algorithme 'Query'" -#define MSG_ALG_CURLY_BRK "Le choix de l'algorithme d‚pend des accolades externes" -#define MSG_ALLOC_ERROR "Erreur d'allocation de %s" -#define MSG_ALL_DELETED "Toutes les lignes enlev‚es en %.2lf sec" -#define MSG_ALTER_DB_ERR "Impossible de d‚terminer la base de donn‚es … modifier" -#define MSG_AMBIG_COL_QUAL "Qualificateur ambigu %s pour la colonne %s" -#define MSG_AMBIG_CORREL "Select %s.* corr‚lation ambigue" -#define MSG_AMBIG_SPEC_COL "Colonne sp‚ciale ambigue %s" -#define MSG_ANSWER_TYPE "R‚ponse de type" -#define MSG_API_CONF_ERROR "Erreur SQL: API_CONFORMANCE" -#define MSG_APPL_ACCESSIBLE "Application %s accessible" -#define MSG_APPL_ACTIVE "Application %s encore active" -#define MSG_APPL_BAD_SAVE "Application %s partiellement sauvegard‚e" -#define MSG_APPL_CREATED "Application %s cr‚‚" -#define MSG_APPL_IS_ACTIVE "Application d‚j… active" -#define MSG_APPL_NOT_INIT "Application non initialis‚e" -#define MSG_APPL_NOT_LOADED "Application non charg‚e" -#define MSG_APPL_QUIT "Fin de l'application %s" -#define MSG_APPL_SAVED "Application %s sauvegard‚e" -#define MSG_APP_STILL_ACTIV "Application du langage %s encore active (non lib‚rable)" -#define MSG_AREAFILE_NOTFND "Fichier Area introuvable" -#define MSG_ARGS_SYNTAX_ERR "?SetArgs erreur de syntaxe: %s inattendu aprŠs %s" -#define MSG_ARG_ALREADY_SET "Argument %d d‚j… allou‚" -#define MSG_ARG_NOT_AN_ATTR "L'argument n'est pas un attribut (type %d erron‚)" -#define MSG_ARG_OUT_CONTEXT "Argument de type @ utilis‚ hors contexte" -#define MSG_ARG_OUT_RANGE "Argument de phrase valant %d hors limite" -#define MSG_ARG_PTR_NOSEM "Argument valant %d pointe sur un noeud sans Sem" -#define MSG_ARG_PTR_NOSEMS "Argument valant %d pointe sur un noeud sans s‚mantique" -#define MSG_ARG_REF_LOOP "?Bouclage entre r‚f‚rences crois‚es des arguments" -#define MSG_ARG_TWO_CONST "Le 2Šme argument de %s doit ˆtre constant" -#define MSG_ARRAY_ALLOC_ERR "Erreur d'allocation m‚moire dans ARRAY" -#define MSG_ARRAY_BNDS_EXCD "Hors limite de tableau" -#define MSG_ARRAY_ERROR "Erreur de fonctionnement k=%d n=%d" -#define MSG_ATTRIBUTE_ERROR "Erreur rŠgle %u attribut %s: " -#define MSG_ATT_NOT_CASE "Mauvaise valeur %d pour attribut (pas une CaseValue)" -#define MSG_ATT_POSCODE_BIG "Code attribut %d trop grand (max=%d)" -#define MSG_AVGLEN_ERROR "avglen doit ˆtre entre %d et %d" -#define MSG_BAD_AGGREG_FUNC "Fonction aggr‚g‚e %d non support‚e" -#define MSG_BAD_ARGTYPES "Argument de type invalide pour %s" -#define MSG_BAD_ARGUMENTS "Argument non attach‚s pour %s" -#define MSG_BAD_ARG_NUM "Nombre d'arguments invalide %d" -#define MSG_BAD_ARG_TYPE "Type d'argument %d invalide" -#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_CARDINALITY "Appel invalide de Cardinality pour une table multiple" -#define MSG_BAD_CASE_SPEC "Min/Maj: sp‚cification %c incorrecte, recommencez: " -#define MSG_BAD_CHAR_SPEC "Sp‚cification '%s' invalide pour caractŠre" -#define MSG_BAD_CHECK_TYPE "Sous-type %d invalide pour CheckColumn" -#define MSG_BAD_CHECK_VAL "Valeur pour Check invalide '%s'" -#define MSG_BAD_COLCRT_ARG "COLCRT: Arg invalide (type=%hd, domain=%hd)" -#define MSG_BAD_COLDEF_TYPE "Coldefs: type ill‚gal %d" -#define MSG_BAD_COLIST_ITEM "El‚ment invalide dans une Colist" -#define MSG_BAD_COLIST_TYPE "Mauvais type=%d pour une Colist" -#define MSG_BAD_COLSIZE "Colsize %d trop petit pour cette base de donn‚es" -#define MSG_BAD_COL_ENTRY "Entr‚e invalide pour la colonne %s" -#define MSG_BAD_COL_FORMAT "Type de formattage %d invalide pour une colonne" -#define MSG_BAD_COL_IN_FILT "Colonne incorrecte dans un filtre" -#define MSG_BAD_COL_QUALIF "Qualificateur invalide %s pour la colonne %s" -#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_COMPARE_OP "Op‚rateur de comparaison %d invalide" -#define MSG_BAD_CONST_TYPE "Type=%d invalide pour une constante" -#define MSG_BAD_CONV_TYPE "Convertion de type invalide %d" -#define MSG_BAD_CORREL "Select %s.* corr‚lation absente" -#define MSG_BAD_DATETIME "Valeur date/temps invalide" -#define MSG_BAD_DATE_OPER "Op‚rateur de date inattendu %d" -#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‚" -#define MSG_BAD_DEF_ARG "Argument invalide pour INDEXDEF (type=%hd, domain=%hd)" -#define MSG_BAD_DEF_READ "EOF inattendue en lecture diff‚r‚e" -#define MSG_BAD_DEF_TYPE "Type de colonne invalide" -#define MSG_BAD_DIRECTORY "R‚pertoire invalide %s: %s" -#define MSG_BAD_DIST_JN_FIL "Filtre de jointure distincte invalide" -#define MSG_BAD_DIST_JOIN "Sp‚cification invalide de jointure distincte" -#define MSG_BAD_DOM_COL_DEF "D‚finition de colonnes invalide pour un domaine" -#define MSG_BAD_DOM_VALUE "La valeur %d n'appartient pas au domaine" -#define MSG_BAD_EDIT_INIT "Coparm: ‚dition %s initialis‚e improprement" -#define MSG_BAD_EVAL_TYPE "Fonction scalaire de type=%d invalide" -#define MSG_BAD_EXEC_MODE "Mode d'ex‚cution invalide '%s'" -#define MSG_BAD_EXP_ARGTYPE "Argument de type %d invalide pour une expression" -#define MSG_BAD_EXP_OPER "Op‚rateur=%d invalide pour expression" -#define MSG_BAD_FETCH_RC "Code retour inattendu de Fetch %d" -#define MSG_BAD_FIELD_FMT "Format de champ invalide %c pour %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_FILE_LIST "La section liste de fichiers est erron‚e" -#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_LINK "Op‚rateur de chaŒnage ill‚gal %d" -#define MSG_BAD_FILTER_OP "Op‚rateur de filtre invalide %d" -#define MSG_BAD_FILTEST_OP "Op‚rateur invalide %d %d pour FilTest" -#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_FLOAT_CONV "Convertion invalide d'un tableau flottant" -#define MSG_BAD_FPARM_NEXT "Coparm: FPARM avec Next non nul" -#define MSG_BAD_FREQ_SET "Sp‚cification erronn‚e de Freq pour la colonne %s" -#define MSG_BAD_FUNC_ARG "Funcarg de type %d non impl‚ment‚" -#define MSG_BAD_FUNC_ARGTYP "Mauvais type d'argument=%d pour une fonction" -#define MSG_BAD_FUNC_MODE "%s: mode invalide %d" -#define MSG_BAD_GENRE "Genre est invalide" -#define MSG_BAD_GETVIEW_RET "GetView: type de retour %d invalide" -#define MSG_BAD_HANDLE_VAL "Valeur Handle invalide" -#define MSG_BAD_HAV_FILTER "Filtre Having sur une requˆte non group‚e" -#define MSG_BAD_HAV_FILTYPE "Filtre invalide pour clause Having" -#define MSG_BAD_HEADER "Fichier %s: bloc en-tˆte alt‚r‚" -#define MSG_BAD_HEADER_VAL "Valeur invalide pour Header" -#define MSG_BAD_HEAD_END "Lecture fin d'en-tˆte impossible" -#define MSG_BAD_INDEX_COL "Colonne %s invalide pour index %s" -#define MSG_BAD_INDEX_DEF "D‚finition invalide pour index %s" -#define MSG_BAD_INDEX_FILE "Fichier index %s corrompu" -#define MSG_BAD_INDEX_PART "D‚finition colonne invalide pour index %s" -#define MSG_BAD_INPUT "Entr‚e incorrecte" -#define MSG_BAD_IN_ARGTYPE "Argument de type invalide pour l'op‚rateur IN" -#define MSG_BAD_IN_ENDING "Erreur: fin de chaŒne IN invalide" -#define MSG_BAD_IN_STRING "La chaŒne IN commence ou finie par des caractŠres invalides %c ... %c" -#define MSG_BAD_JCOL_TYPE "Erreur logique JCT: disparit‚ des types colonnes" -#define MSG_BAD_JOIN_EXP "Expression invalide pour une jointure" -#define MSG_BAD_JOIN_FILTER "Filtre de jointure invalide" -#define MSG_BAD_JOIN_OP "Op‚rateur de joint invalide %d" -#define MSG_BAD_LANG_SIZE "Le fichier langage a une mauvaise taille %d" -#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_LIST_TYPE "Type de liste invalide %d" -#define MSG_BAD_LOCALE "Locale invalide %s" -#define MSG_BAD_LOCDFON_ARG "Mauvais paramŠtre pour LOCDFON" -#define MSG_BAD_LOCNODE_USE "Usage inattendu de LOCNODE" -#define MSG_BAD_LRECL "Disparit‚ lrecl table/fichier (%d,%hd)" -#define MSG_BAD_MAX_HAVING "MAXTMP trop petit pour Having" -#define MSG_BAD_MAX_NREC "MaxRec=%d ne correspond pas … MaxBlk=%d Nrec=%d" -#define MSG_BAD_MAX_PARAM "Mauvais paramŠtres pour sp‚cifier une valeur maximum" -#define MSG_BAD_MAX_SETTING "Mauvaise valeur '%c' pour max" -#define MSG_BAD_MERGE_TYPE "Le type %d ne pas ˆtre intercall‚" -#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_OPERATOR "Op‚rateur invalide %s" -#define MSG_BAD_ORDER_MODE "Mode de tri %c invalide" -#define MSG_BAD_ORDER_TYPE "Tri sur objet de type=%d invalide" -#define MSG_BAD_OUTER_JOIN "Jointure externe invalide sur table enfant" -#define MSG_BAD_PAD_ARGTYP "Argument de type invalide pour Pad ou Justify" -#define MSG_BAD_PARAMETERS "%.8s: Mauvais paramŠtres" -#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_PHASE_NUM "Num‚ro de phrase %d hors limite" -#define MSG_BAD_PHRASE_NB "num‚ro de phrase hors limite %d rc=%d\n" -#define MSG_BAD_POS_CODE "POS_code invalide %d" -#define MSG_BAD_POS_TYPE "Type de POS_code invalide %d" -#define MSG_BAD_PROJNUM "Mauvais projnum %d pour la colonne %s" -#define MSG_BAD_QUERY_OPEN "Mode invalide %d pour l'ouverture d'une requˆte" -#define MSG_BAD_QUERY_TYPE "Type de requˆte %d invalide pour %s" -#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_RESULT_TYPE "Mauvais type de r‚sultat %d pour %s" -#define MSG_BAD_RETURN_TYPE "Type de retour %d incorrect" -#define MSG_BAD_ROW_VALIST "Liste de valeurs invalide pour ROW" -#define MSG_BAD_ROW_VALNB "Nombre de valeurs in‚gal dans la liste" -#define MSG_BAD_SCF_ARGTYPE "Argument %d de type=%s invalide pour %s" -#define MSG_BAD_SEM_DOMAIN "Domain .%d invalide" -#define MSG_BAD_SETTINGS "Certaines sp‚cifications sont incompatibles avec le type de la table" -#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_SET_TYPE "Set type %hd invalide" -#define MSG_BAD_SPECIAL_CMD "Commande sp‚ciale invalide" -#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_SQL_PARAM "ParamŠtre SQL invalide pour FindColblk" -#define MSG_BAD_SUBLST_TYPE "Coparm: type %d de sous-liste invalide" -#define MSG_BAD_SUBSEL_IN_X "Sub-select invalide pour une expression" -#define MSG_BAD_SUBSEL_TYPE "Type %d invalide retourn‚ de Sub-Select" -#define MSG_BAD_SUB_RESULT "R‚sultat ind‚fini de fonction Sub-Select" -#define MSG_BAD_SUB_SELECT "Sub-select invalide comme argument de fonction" -#define MSG_BAD_TABLE_LINE "Ligne '%s' ill‚gale ou tronqu‚e dans la section Tables" -#define MSG_BAD_TABLE_LIST "Table %s absente de la liste des tables" -#define MSG_BAD_TABLE_TYPE "Type invalide %s pour la table %s" -#define MSG_BAD_TEST_TYPE "BlockTest sur tableau: types d‚pareill‚s %s %s" -#define MSG_BAD_TRIM_ARGTYP "Argument de type invalide pour Trim" -#define MSG_BAD_TYPE_FOR_IN "Types d'argument incompatibles pour la fonction IN" -#define MSG_BAD_TYPE_FOR_S "Type incorrecte %d pour %s(%d)" -#define MSG_BAD_TYPE_LIKE "Type(%d)= %d invalide pour LIKE" -#define MSG_BAD_UPD_COR "Le qualificateur %s de la colonne %s ne se refŠre pas … la table mise … jour %s" -#define MSG_BAD_USERBLK_LEN "Mauvaise longueur … l'‚criture du bloc utilisateur" -#define MSG_BAD_USETEMP "Usetemp invalide '%s'" -#define MSG_BAD_USETEMP_VAL "Valeur pour Usetemp invalide %d" -#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_BAD_VIEW_OPEN "Mode invalide %d pour l'ouverture d'une View" -#define MSG_BAD_XMODE_VAL "Mode d'ex‚cution %d invalide" -#define MSG_BAD_XOBJ_TYPE "Mauvais type de Xobject %d" -#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_BLOCK_NO_MATCH "Bloc non correspondant" -#define MSG_BREAKPOINT "Point de controle" -#define MSG_BUFF_TOO_SMALL "GetColData: Buffer trop petit" -#define MSG_BUFSIZE_ERROR "Erreur en recherchant la taille du buffer" -#define MSG_BUILDING_GROUPS "Formation des groupes" -#define MSG_BUILD_DIST_GRPS "Formation des groupes distinctes" -#define MSG_BUILD_INDEX "Construction index %s sur %s" -#define MSG_BXP_NULL "Bxp nul dans PUTFON" -#define MSG_CANNOT_OPEN "Ouverture impossible de %s" -#define MSG_CD_ONE_STEP "Count Distinct doit ˆtre ex‚cut‚ en une seule ‚tape" -#define MSG_CD_ORDER_ERROR "Erreur de tri dans Count Distinct" -#define MSG_CHECKING_ROWS "Test des lignes … mettre … jour" -#define MSG_CHECK_LEVEL "Niveau de v‚rification fix‚ … %u" -#define MSG_CHSIZE_ERROR "Erreur dans chsize: %s" -#define MSG_CLN_NOT_IN_JOIN "La colonne C%d n'est pas dans le join" -#define MSG_CNTDIS_COL_LOST "Colonne du Count Distinct perdue" -#define MSG_COLIST_BAD_TYPE "Type=%d invalide pour Colist" -#define MSG_COLNAM_TOO_LONG "Nom de colonne trop long" -#define MSG_COLSEC_TOO_BIG "Section colonne trop grande, table %s (%d)" -#define MSG_COLS_REDUCED " (r‚duit par Maxcol)" -#define MSG_COLUMN_ERROR "Erreur de colonne" -#define MSG_COLUMN_MISMATCH "Colonne %s d‚pareill‚e" -#define MSG_COLUMN_NOT_KEY "La colonne jointe R%d.%s n'est pas une cl‚" -#define MSG_COL_ALLOC_ERR "Allocation impossible du noeud colonne" -#define MSG_COL_ALLOC_ERROR "Erreur d'allocation m‚moire pour la colonne %d" -#define MSG_COL_HAS_NO_DEF "La colonne %s n'est pas d‚finie" -#define MSG_COL_INVAL_TABLE "La colonne %s.%s n'existe pas dans la table %s alias %s" -#define MSG_COL_ISNOT_TABLE "La colonne %s n'est pas dans la table %s" -#define MSG_COL_NB_MISM "Le nombre de colonnes ne correspond pas" -#define MSG_COL_NOTIN_GRPBY "La colonne %s n'est pas dans la liste de Group By" -#define MSG_COL_NOTIN_TABLE "La colonne %s n'est dans aucune table" -#define MSG_COL_NOTIN_UPDT "%s n'appartient pas … la table mise … jour %s" -#define MSG_COL_NOT_CODED "La colonne %s n'est pas codifi‚e" -#define MSG_COL_NOT_EXIST "La colonne %s n'existe pas dans %s" -#define MSG_COL_NOT_FOUND "La colonne %s n'est pas dans la table %s" -#define MSG_COL_NOT_IN_DB "La colonne %s de la table %s n'est pas dans la base de donn‚es" -#define MSG_COL_NOT_IN_JOIN "La colonne %s n'est pas dans le join" -#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_COL_USED_TWICE "Colonne %s utilis‚e deux fois ???" -#define MSG_COMPUTE_ERROR "Erreur dans Compute, op=%d" -#define MSG_COMPUTE_NIY "Compute non impl‚ment‚ pour TOKEN" -#define MSG_COMPUTING "Calculs en cours" -#define MSG_COMPUTING_DIST "Comptage des valeurs distinctes" -#define MSG_COMPUTING_FUNC "Calcul de(s) fonction(s)" -#define MSG_COM_ERROR "Erreur Com" -#define MSG_CONCAT_SUBNODE "Concat‚nation de sous-noeuds impossible" -#define MSG_CONNECTED "Connect‚e" -#define MSG_CONNECT_CANCEL "Connection interrompue par l'utilisateur" -#define MSG_CONNECT_ERROR "Erreur %d se connectant à %s" -#define MSG_CONN_CLOSED "%s(%d) ferm‚e" -#define MSG_CONN_CREATED "Connexion %s cr‚e" -#define MSG_CONN_DROPPED "Connexion %s supprim‚e" -#define MSG_CONN_OPEN "%s(%d) ouverte (%s)" -#define MSG_CONN_SUC_OPEN "%s(%d) ouverte avec succŠs" -#define MSG_CONTROL_C_EXIT "Exit par Ctrl-C" -#define MSG_COPY_BAD_PHASE "Copie de liste invalide en phase %d" -#define MSG_COPY_INV_TYPE "Coparm: type non support‚ %d" -#define MSG_CORREL_NO_QRY "Les sous-requˆtes corr‚l‚es ne peuvent pas ˆtre de type QRY" -#define MSG_CREATED_PLUGDB " Cr‚‚ par PlugDB %s " -#define MSG_CURSOR_SET "Curseur remis … %d" -#define MSG_DATABASE_ACTIVE "Base de donn‚es %s activ‚e" -#define MSG_DATABASE_LOADED "Base de donn‚es %s charg‚e" -#define MSG_DATA_IS_NULL "ExecSpecialCmd: data est NULL" -#define MSG_DATA_MISALIGN "Mauvais alignement pour ce type de donn‚es" -#define MSG_DBASE_FILE "Fichier dBASE dbf: " -#define MSG_DB_ALREADY_DEF "Base de donn‚es %s d‚j… d‚finie" -#define MSG_DB_ALTERED "Base de donn‚es modifi‚e" -#define MSG_DB_CREATED "Base de donn‚es %s cr‚‚e" -#define MSG_DB_NOT_SPEC "Base de donn‚es non sp‚cifi‚e" -#define MSG_DB_REMOVED "Base de donn‚es %s retir‚e de la liste" -#define MSG_DB_SORT_ERROR "Erreur de tri DB" -#define MSG_DB_STOPPED "Arrˆt de la base de donn‚es %s" -#define MSG_DEBUG_NOT_ACTIV "Mode Debug inactif" -#define MSG_DEBUG_SET_INV "Invalide pour Debug: %c" -#define MSG_DEF_ALLOC_ERROR "Erreur d'allocation de la classe DEF %s" -#define MSG_DELETING_ROWS "Suppression des lignes" -#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_DICTIONARY "Dictionnaire " -#define MSG_DIRECT_VARTOK "AccŠs direct aux rŠgles du Variable Token non impl‚ment‚" -#define MSG_DISCONNECTED "D‚connect‚" -#define MSG_DISTINCT_ERROR "Plus d'un ‚l‚ment fonctionel DISTINCT" -#define MSG_DISTINCT_ROWS "S‚lection des lignes distinctes" -#define MSG_DISTINCT_VALUES "Extraction des valeurs distinctes" -#define MSG_DIS_NOHEAD_JOIN "Jointure distincte sur une table non en tˆte" -#define MSG_DLL_LOAD_ERROR "Erreur %d au chargement du module %s" -#define MSG_DOMAIN_EMPTY "Le domaine %s est vide" -#define MSG_DOMAIN_ERROR "Colonne %s: disparit‚ domaine(%s)/valeur(%s)" -#define MSG_DOMAIN_FULL "Le domaine %s est plein (max=%d)" -#define MSG_DOM_FILE_ERROR "Fichier domain %s introuvable" -#define MSG_DOM_NOT_SUPP "MS-DOM non support‚ par cette version" -#define MSG_DOM_OPEN_ERROR "Erreur d'ouverture du domaine: %s" -#define MSG_DOM_READ_ERROR "Erreur %d en lecture de domaine: %s" -#define MSG_DOM_READ_ONLY "La table domaine %s est en lecture seulement" -#define MSG_DOM_WRITE_ERROR "Erreur %d en ‚criture de domaine: %s" -#define MSG_DONE "Effectu‚, rc=%d" -#define MSG_DOSALMEM_NOMEM "Erreur d'allocation, pas assez de m‚moire" -#define MSG_DROP_DB_ERR "Echec du Drop sur le base de donn‚es %s" -#define MSG_DSORT_LOG_ERROR "Kindex: Erreur logique de tri distincte" -#define MSG_DUMMY_NO_COLS "Les tables DUMMY ne peuvent pas avoir de colonne" -#define MSG_DUPLICAT_COUNT "Count sur plus d'une colonne" -#define MSG_DUP_COL_NAME "La colonne %s existe en double" -#define MSG_DUP_PROJNUM "Non unique projnum %d pour la colonne %s" -#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_ENDSTR_MISMATCH "Fins de chaŒne et de noeud ne correspondent pas" -#define MSG_END_OF_DELETE "%d ligne(s) enlev‚e(s) en %.2lf sec" -#define MSG_END_OF_INSERT "%d ligne(s) ins‚r‚e(s) en %.2lf sec" -#define MSG_END_OF_QUERY "%d ligne(s) extraite(s) en %.2lf sec" -#define MSG_END_OF_UPDATE "%d ligne(s) modifi‚e(s) en %.2lf sec" -#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_ERASED " et effac‚e" -#define MSG_ERASE_FAILED " (‚chec de l'effacement)" -#define MSG_ERROR "Erreur" -#define MSG_ERROR_IN_LSK "Erreur %d dans lseek64" -#define MSG_ERROR_IN_SFP "Erreur %d dans SetFilePointer" -#define MSG_ERROR_NO_PARM "ParamŠtre absent (valide seulement pour %.8s.1 et %.8s.5)" -#define MSG_ERROR_OPENING "Erreur … l'ouverture de : " -#define MSG_ERR_NUM_GT_MAX "Erreur: Numval (%d) plus grand que Maxnum (%d)" -#define MSG_ERR_READING_REC "Erreur lisant l'enregistrement %d de %s" -#define MSG_ERR_RET_RULE "Retour erreur, rŠgle=%u" -#define MSG_ERR_RET_TYPE "Retour erreur, type=%d" -#define MSG_EVAL_EXPIRED "Cette version d'évaluation est expir‚e" -#define MSG_EVAL_ONLY "L'utilisation de cette Dll est pour ‚valuation seulement" -#define MSG_EXECUTING "Ex‚cution" -#define MSG_EXECUTION_ERROR "Erreur d'ex‚cution" -#define MSG_EXEC_MODE_IS "Le mode d'ex‚cution est %s" -#define MSG_EXEC_MODE_RESET ". Mode remis … Execute" -#define MSG_EXEC_MODE_SET "Mode d'ex‚cution fix‚ … %s" -#define MSG_EXIT_EVAL_ERR "Erreur pendant l'‚valuation de Exit" -#define MSG_EXIT_FROM_LANG "Fin du langage %s version %d.%d" -#define MSG_FAIL_ADD_NODE "L'ajout du noeud %s dans la table a ‚chou‚" -#define MSG_FETCHING_DATA "Recherche des donn‚es" -#define MSG_FETCHING_ROWS "Recherche des lignes" -#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_CLOSE_ERR "Erreur %d … la fermeture du fichier" -#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_NOT_FOUND "Fichier %s introuvable" -#define MSG_FILE_OPEN_YET "Fichier %s d‚j… ouvert" -#define MSG_FILE_UNFOUND "Fichier %s non trouv‚" -#define MSG_FILGRP_NO_TABLE "Table %d manquante pour groupe filtre" -#define MSG_FILTER_ATTACH "Filtre pass‚ … Attach" -#define MSG_FILTER_NO_TABLE "Filtre: premiŠre table manquante" -#define MSG_FIND_BAD_TYPE "Recherche dans un tableau: type non conforme %s %s" -#define MSG_FIX_OVFLW_ADD "D‚passement de capacit‚ en addition" -#define MSG_FIX_OVFLW_TIMES "D‚passement de capacit‚ en mutiplication" -#define MSG_FIX_UNFLW_ADD "Sous d‚passement de capacit‚ en addition" -#define MSG_FIX_UNFLW_TIMES "Sous d‚passement de capacit‚ en multiplication" -#define MSG_FLD_TOO_LNG_FOR "Champs %d trop long pour %s ligne %d de %s" -#define MSG_FLTST_NO_CORREL "FilTest ne devrait ˆtre appel‚ que pour les sous-requˆtes corr‚l‚es" -#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_FNC_NOTIN_SLIST "Fonction de tri absente de la liste de s‚lection" -#define MSG_FORMAT_ERROR "Erreur de formattage" -#define MSG_FOXPRO_FILE "Fichier FoxPro: " -#define MSG_FPUTS_ERROR "Erreur dans fputs: %s" -#define MSG_FSBPARP_NULL "PUTFON: fsbparp est nul" -#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_FUNC_REF_DEL "R‚f‚rence … une fonction d‚finie (rŠgle %d) qui a ‚t‚ supprim‚e" -#define MSG_FWRITE_ERROR "Erreur dans fwrite: %s" -#define MSG_GETCWD_ERR_NO "?getcwd %s errno=%d" -#define MSG_GETFILESIZE_ERR "Erreur %d dans GetFileSize" -#define MSG_GET_DIST_VALS "R‚cup‚ration des valeurs distinctes de " -#define MSG_GET_ERROR "Erreur dans %s (colonne %d)" -#define MSG_GET_FUNC_ERR "Erreur en recherche de la fonction %s: %s" -#define MSG_GET_NAME_ERR "Erreur en retrouvant le nom d'une table SYS" -#define MSG_GLOBAL_ERROR "Erreur d'allocation de Global (taille=%d)\n" -#define MSG_GRAM_ALLOC_ERR "Erreur d'allocation dans Grammar Up" -#define MSG_GRAM_MISMATCH "Avertissement: version de GRAMMAR p‚rim‚e (sauv‚ sous GRAMMAR v%u)" -#define MSG_GRAM_SUBSET_ERR "Erreur d'initialisation du dictionnaire de la grammaire" -#define MSG_GRBY_TAB_NOTIMP "Group by avec tables jointes non impl‚ment‚" -#define MSG_GROUPBY_NOT_ALL "Group By doit inclure toutes les s‚lections non-fonctionnelles" -#define MSG_GROUP_ON_FUNC "Group by invalide sur colonne fonctionnelle" -#define MSG_GRP_COL_MISM "Disparit‚ colonne des groupes" -#define MSG_GRP_LIST_MISMAT "Le groupement ne couvre pas la liste de s‚lection" -#define MSG_GUARD_PAGE "Violation de page de garde" -#define MSG_GZOPEN_ERROR "gzopen %s: erreur %d sur %s" -#define MSG_GZPUTS_ERROR "Erreur dans gzputs: %s" -#define MSG_HANDLE_IS_NULL "%s est NULL: erreur code: %d" -#define MSG_HARRY_COMP_NIY "Compute non impl‚ment‚ pour les chaŒnes cod‚es" -#define MSG_HAVING_FILTER "Traitement du Filtre Having" -#define MSG_HBUF_TOO_SMALL "Buffer(%d) trop petit pour entˆte(%d)" -#define MSG_HEAD_OPEN_ERROR "Erreur … l'ouverture du fichier header" -#define MSG_HEAD_READ_ERROR "Erreur en lecture du fichier header %s" -#define MSG_HEAD_WRITE_ERR "Erreur en ‚criture du fichier header" -#define MSG_HI_OFFSET_ERR "Offset sup‚rieur non nul" -#define MSG_HUGE_DEFAULT "Huge est %d par d‚fault" -#define MSG_HUGE_WARNING_1 "M‚moire Huge non compatible 16-bit pour %d\n" -#define MSG_HUGE_WARNING_2 "R‚sultats impr‚visibles possibles\n" -#define MSG_IDLE "Au repos" -#define MSG_ILLEGAL_INSTR "Instruction ill‚gale" -#define MSG_ILL_FILTER_CONV "Conversion implicite ill‚gale dans un filtre" -#define MSG_INDEX_CREATED "Index %s cr‚‚ sur %s" -#define MSG_INDEX_DEF_ERR "Erreur sauvegardant l'index d‚finition pour %s" -#define MSG_INDEX_DROPPED "Index %s supprim‚ de %s" -#define MSG_INDEX_INIT_ERR "Echec de l'initialisation de l'index %s" -#define MSG_INDEX_NOT_DEF "Index %s non d‚fini" -#define MSG_INDEX_NOT_UNIQ "L'index n'est pas Unique" -#define MSG_INDEX_ONE_SAVE "Les index sont sauvegard‚s dans un fichier unique" -#define MSG_INDEX_SEP_SAVE "Les index sont sauvegard‚s dans des fichiers s‚par‚s" -#define MSG_INDEX_YET_ON "L'index %s existe d‚j… sur %s" -#define MSG_INDX_ALL_DROP "Tous les index de %s supprim‚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_ERROR "Erreur à l'initialisation de %s" -#define MSG_INIT_FAILED "L'initialisation de %s a ‚chou‚" -#define MSG_INPUT "Entr‚e: " -#define MSG_INPUT_KEYBD_YET "L'entr‚e est d‚j… au clavier" -#define MSG_INSERTING "Insertion: " -#define MSG_INSERT_ERROR "Insert erreur: usage multiple du fichier %s" -#define MSG_INSERT_MISMATCH "Les listes colonne et valeur ne correspondent pas" -#define MSG_INTERNAL "interne" -#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_BIP "Bip invalide .%d" -#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_INVALID_OPTION "Option invalide %s" -#define MSG_INV_COLUMN_TYPE "Type %d Invalide pour la colonne %s" -#define MSG_INV_COL_DATATYP "Type de donn‚es %d invalide pour la colonne %d" -#define MSG_INV_COL_NUM "Colonne invalide %d" -#define MSG_INV_COL_TYPE "Type de colonne %s invalide" -#define MSG_INV_CONC_BIP "Bip invalide (seuls valides: %.8s.0 .1 and .5)" -#define MSG_INV_DATA_PATH "Chemin vers les donn‚es 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_DOMAIN_TYPE "Type invalide %d" -#define MSG_INV_FILTER "Filtre r‚siduel dans %s" -#define MSG_INV_FNC_BUFTYPE "FNC: Type %d de l'argument invalide pour %s" -#define MSG_INV_INFO_TYPE "Type d'info catalog invalide %d" -#define MSG_INV_INIPATH "Inipath invalide " -#define MSG_INV_MAP_POS "Position m‚moire invalide" -#define MSG_INV_OPERATOR "op‚rateur invalide %d\n" -#define MSG_INV_PARAMETER "ParamŠtre invalide %s" -#define MSG_INV_PARM_TYPE "Type de paramŠtre invalide" -#define MSG_INV_QUALIFIER "Qalificateur '%s' invalide" -#define MSG_INV_QUERY_TYPE "Type de requˆte %d 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_SET_SUBTYPE "Type de formattage %d invalide" -#define MSG_INV_SPECIAL_CMD "%s: Commande sp‚ciale invalide" -#define MSG_INV_SUBTYPE "Sous type invalide %s" -#define MSG_INV_TOK_DOMAIN "Le domaine %s n'existe pas" -#define MSG_INV_TOPSEM_CMD "Commande TopSem invalide %c" -#define MSG_INV_TRANSF_USE "Usage invalide en rŠgle transformationnelle" -#define MSG_INV_TYPE_SPEC "Sp‚cification de type invalide (%.8s.%d)" -#define MSG_INV_UPDT_TABLE "Table %s invalide pour Update" -#define MSG_INV_VALUE_LIST "Liste de valeurs invalide pour Insert" -#define MSG_INV_WHERE_JOIN "Clause Where invalide dans une requˆte de jointure" -#define MSG_INV_WORK_PATH "Chemin de travail invalide" -#define MSG_IN_ARGTYPE_MISM "Arguments de types incompatibles pour une expression IN" -#define MSG_IN_USE " et en activit‚" -#define MSG_IN_WITHOUT_SUB "IN ou EXISTS sans tableau ou subquery" -#define MSG_IS_NOT_CONN "%s n'est pas une connexion d‚finie" -#define MSG_JCT_MISS_COLS "Colonnes manquantes pour une table JCT" -#define MSG_JCT_MISS_TABLE "Table jointe manquante pour JCT" -#define MSG_JCT_NO_FILTER "Filtrage impossible des tables virtuelles JCT" -#define MSG_JCT_NO_KEY "Erreur logique JCT: cl‚ manquante" -#define MSG_JOIN_KEY_NO_COL "La cl‚ de jointure n'est pas une colonne" -#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_LANGUAGE_QUIT "%s lib‚r‚" -#define MSG_LANG_ACTIVE "Langage %s actif" -#define MSG_LANG_ALLOC_FAIL "PlugInitLang: Erreur d'allocation du bloc Lang" -#define MSG_LANG_ALREADY_UP "Langage d‚j… en ‚dition" -#define MSG_LANG_BAD_SAVE "Langage %s peut-ˆtre incorrectement sauvegard‚" -#define MSG_LANG_NOT_FREED "Langage %s non lib‚rable (pas dans la chaŒne principale)" -#define MSG_LANG_SAVED "Langage %s sauvegard‚" -#define MSG_LANG_WR_LEN_ERR "Erreur de longueur … l'‚criture du bloc Lang" -#define MSG_LDF_ALLOC_ERROR "Erreur d'allocation d'un LdfBlock" -#define MSG_LDF_RN_MISMATCH "LDF: d‚calage des num‚ros de rŠgle" -#define MSG_LDF_WLEN_ERROR "Erreur de longueur en ‚crivant LdfData" -#define MSG_LDF_W_LEN_ERROR "Erreur de longueur pour LdfData en ‚criture" -#define MSG_LIC_NO_MYSQL "Votre licence actuelle ne permet pas l'utilisation du type MYSQL" -#define MSG_LINEAR_ERROR "Erreur de lin‚arisation" -#define MSG_LINE_LENGTH "Largeur d'impression fix‚e … %d" -#define MSG_LINE_MAXLIN "Nombre de lignes de travail plafonn‚ … %d" -#define MSG_LINE_MAXRES "Nombre de lignes de r‚sultat plafonn‚ … %d" -#define MSG_LINE_MAXTMP "Nombre de lignes interm‚diaires plafonn‚ … %d" -#define MSG_LINE_TOO_LONG "La nouvelle ligne est trop longue" -#define MSG_LINJOINDB_ERROR "Erreur systŠme: appel incorrecte … LinJoinDB" -#define MSG_LIST "--Liste--" -#define MSG_LNG_NOT_IN_LIST "Le langage %s n'est pas dans la liste" -#define MSG_LOADING_DB "Chargement description de la BD" -#define MSG_LOADING_FAILED "Le chargement de %s a ‚chou‚" -#define MSG_LOAD_CDLL_ERROR "Erreur au chargement de ConnDll: rc=%d" -#define MSG_LOCSTRG_TOO_BIG "LOCSTRG: n trop grand ? (%d)\n" -#define MSG_LOGICAL_ERROR "%s: Erreur logique" -#define MSG_LRECL_TOO_SMALL "Lrecl trop petit (longueur en-tˆte = %d)" -#define MSG_MAC_NO_DELETE "Pas de suppression de lignes pour les tables MAC" -#define MSG_MAC_NO_INDEX "Pas d'accŠs direct aux tables MAC" -#define MSG_MAC_READ_ONLY "Les tables MAC sont en lecture seulement" -#define MSG_MAC_WIN_ONLY "Les tables MAC sont seulement sous Windows" -#define MSG_MAKE_EMPTY_FILE "G‚n‚ration du fichier vide %s: %s" -#define MSG_MAKING "G‚n‚ration" -#define MSG_MAKING_DISTINCT "Regroupement des valeures distinctes" -#define MSG_MALLOC_ERROR "Allocation m‚moire impossible par %s" -#define MSG_MALLOC_NULL "malloc retourne Null" -#define MSG_MAP_NO_MORE "Le type %s n'est plus support‚" -#define MSG_MAP_OBJ_ERR "Erreur %d … la fermeture du map objet" -#define MSG_MAP_VEC_ONLY "MAP Insert permis seulement pour les tables VEC Estimate" -#define MSG_MAP_VIEW_ERROR "MapViewOfFile %s erreur rc=%d" -#define MSG_MAXSIZE_ERROR "Maxsize incalculable sur table ouverte" -#define MSG_MAXTMP_TRUNCATE "R‚sultats interm‚diaires tronqu‚s par maxtmp=%d" -#define MSG_MAX_BITMAP "Taille maxi des bitmaps d'optimisation fix‚e … %d" -#define MSG_MEMSIZE_TOO_BIG "Erreur: memsize (%d) trop grand pour Length (%d)" -#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_MEM_ALLOC_YET "M‚moire d‚j… allou‚e" -#define MSG_METAFILE_NOTFND "Fichier Meta introuvable" -#define MSG_MISPLACED_QUOTE "Appostrophe mal plac‚e ligne %d" -#define MSG_MISSING "Manquant: Value=%p Argval=%p Builtin=%d" -#define MSG_MISSING_ARG "Argument manquant pour l'op‚rateur %d" -#define MSG_MISSING_COL_DEF "D‚finition des colonnes manquante" -#define MSG_MISSING_CONNECT "Connection #1 manquante" -#define MSG_MISSING_EOL "Fin de ligne manquante dans %s" -#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_POS "POS code manquant" -#define MSG_MISSING_ROWNODE "Impossible de trouver le noeud de la ligne %d" -#define MSG_MISSING_SERV_DB "Indication serveur et/ou base de donn‚es manquante" -#define MSG_MISS_LEAD_COL "Colonne majeure %s manquante" -#define MSG_MISS_NAME_LRECL "Nom du fichier et/ou LRECL manquant" -#define MSG_MISS_TABLE_LIST "Liste des tables manquante" -#define MSG_MISS_VCT_ELMT "Taille de bloc vectoriel manquante (Elements)" -#define MSG_MIS_TAG_LIST "Liste des balises colonne manquante" -#define MSG_MKEMPTY_NIY "MakeEmptyFile: pas encore implement‚ pour Huge et Unix" -#define MSG_MOVE_INV_TYPE "MOVPARM: paramŠtre de type invalide %d" -#define MSG_MULT_DISTINCT "Distinct utilis‚ plus d'une fois" -#define MSG_MULT_KEY_ERROR "Erreur sur cl‚ multiple k=%d n=%d" -#define MSG_MUL_MAKECOL_ERR "Erreur logique dans TABMUL::MakeCol" -#define MSG_MYSQL_CNC_OFF "La connexion … MySQL est ferm‚e" -#define MSG_MYSQL_CNC_ON "La connexion … MySQL est ‚tablie" -#define MSG_MYSQL_NOT_SUP "Pas de support de MySQL dans cette version" -#define MSG_MY_CNC_ALREADY "La connexion … MySQL est d‚j… active" -#define MSG_NAME_CONV_ERR "Erreur de convertion du nom de noeud" -#define MSG_NAME_IS_USED "Le nom %s est d‚j… utilis‚" -#define MSG_NCOL_GT_MAXCOL "Trop de colonnes (%d > %d max)" -#define MSG_NEW_CHAR_NULL "new char(%d) retourne Null" -#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_NEW_TABLE_ERR "La nouvelle table %s ne peut pas ˆtre charg‚e" -#define MSG_NEXT_FILE_ERROR "Erreur en recherche du fichier suivant. rc=%s" -#define MSG_NODEF_FROM_VIEW "Pas de d‚finition de table depuis une view" -#define MSG_NODE_FOR_CHAR "Noeud %s trouve au lieu d'un caractŠre" -#define MSG_NODE_SUBSET_ERR "Erreur d'initialisation de la zone Noeud %d" -#define MSG_NONCONT_EXCEPT "Exception non-continuable" -#define MSG_NON_DUP_HAVING "Clause Having dans une requˆte non fonctionelle" -#define MSG_NON_EVAL_SEM "Sem non ‚valu‚e: p_no=%d" -#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_ENOUGH_COLS "Pas assez de colonnes dans %s" -#define MSG_NOT_ENOUGH_MEM "M‚moire insuffisante pour cette op‚ration" -#define MSG_NOT_FIXED_LEN "Fichier %s non fixe, len=%d lrecl=%d" -#define MSG_NOT_IMPLEMENTED "Non implement‚: %.8s" -#define MSG_NOT_IMPL_JOIN "Pas impl‚ment‚ pour les jointures" -#define MSG_NOT_IMPL_SET "Pas impl‚ment‚ pour les op‚rateurs d'ensembles" -#define MSG_NOT_IMPL_YET "Pas encore implement‚" -#define MSG_NOT_LINEARIZED "Arborescence des tables non lin‚aris‚e" -#define MSG_NOT_MODIFIABLE " (non modifiable)" -#define MSG_NO_0DH_HEAD "0DH manquant en fin d'en-tˆte (dbc=%d)" -#define MSG_NO_ACTIVE_APPL "Pas d'application active" -#define MSG_NO_ACTIVE_DB "Pas de base de donn‚es active" -#define MSG_NO_ACTIVE_UDIC "Pas de dictionaire utilisateur actif" -#define MSG_NO_AGGR_FUNC "Fonction aggr‚g‚e %d ill‚gale … cet endroit" -#define MSG_NO_AREA_FILE "Fichier Area introuvable" -#define MSG_NO_AVAIL_RESULT "Pas de r‚sultat disponible" -#define MSG_NO_BIG_DELETE "D‚l‚tion Partielle non impl‚ment‚e pour les fichiers HUGE" -#define MSG_NO_CHAR_FROM "Conversion de type %d en caractŠres impossible" -#define MSG_NO_CLUSTER_COL "Pas de colonne optimisable" -#define MSG_NO_COL_ADDING "Ajouter des colonnes dans une d‚finition existante est impossible" -#define MSG_NO_COL_DEF_AS "La d‚finitions des colonnes est incompatible avec AS Select" -#define MSG_NO_COL_FOUND "La section colonne %s est vide" -#define MSG_NO_COL_IN_TABLE "La colonne %d n'est pas dans la table %s" -#define MSG_NO_COL_SECTION "Section colonne manquante pour la table %s" -#define MSG_NO_CONNECT_ADDR "Adresse de connection non sp‚cifi‚e" -#define MSG_NO_CONST_FILTER "Filtres constants non implement‚s" -#define MSG_NO_CURLY_BRKT "Pas d'accolade de fermeture" -#define MSG_NO_DATABASE "Base de donn‚es %s introuvable" -#define MSG_NO_DATE_FMT "Pas de format date pour le valblock de type %d" -#define MSG_NO_DBF_INSERT "Insert pas encore impl‚ment‚ pour les fichier DBF" -#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_DMY_DIR_ACC "Pas d'accŠs direct aux tables virtuelles DUMMY" -#define MSG_NO_DOM_DELETE "D‚l‚tion Partielle non impl‚ment‚e pour les domaines" -#define MSG_NO_DOM_MATCH "ChaŒne %.8s... non touv‚e dans le domaine %s" -#define MSG_NO_EDITED_LANG "Coparm: Pas de langage en ‚dition" -#define MSG_NO_EXP_LINK "Liaison par expression invalide pour une table JCT" -#define MSG_NO_EXT_FILTER "Le filtrage ne peut se r‚f‚rer … une autre table" -#define MSG_NO_EXT_UPDATE "Pas de mise … jour en r‚f‚rence … une autre table" -#define MSG_NO_FEAT_SUPPORT "%s non support‚ dans cette version" -#define MSG_NO_FILE_LIST "La table %s n'a pas de liste de fichiers" -#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_FULL_JOIN "Jointures autoris‚es seulement … ‚galit‚ sur cl‚(s)" -#define MSG_NO_FUL_OUT_JOIN "Jointures externes complŠtes non support‚es" -#define MSG_NO_FUNC_ORDER "Tri non support‚ sur ‚l‚ment fonctionnel" -#define MSG_NO_HEAD_JOIN "Jointure sur une table non en tˆte" -#define MSG_NO_HQL_CONV "Conversion en HQL non disponible" -#define MSG_NO_INDEX "La table %s n'a pas d'index" -#define MSG_NO_INDEX_GBX "Pas ou mauvais index pour SQLGBX" -#define MSG_NO_INDEX_IN "Pas d'index dans %s" -#define MSG_NO_INDEX_READ "Pas d'accŠs directe des tables multiples" -#define MSG_NO_INIT_LANG "Pas de langage initial" -#define MSG_NO_JOIN_TO_EXP "Jointure vers une expression impossible" -#define MSG_NO_JOIN_UPDEL "Pas de jointure avec Update/Delete" -#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_LANGUAGE "Pas de langage op‚rationnel\n" -#define MSG_NO_LANG_TO_QUIT "Pas de langage … quitter" -#define MSG_NO_LISTVAL_HERE "LSTBLK: Liste de valeurs utilis‚e hors contexte" -#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_MEM_CORR_SUB "Subquery corr‚l‚e en m‚moire non encore impl‚ment‚e" -#define MSG_NO_MODE_PADDED "Mode non support‚ pour les fichiers 'padded'" -#define MSG_NO_MORE_COL "La colonne %s n'est plus dans la table pivot" -#define MSG_NO_MORE_LANG "Plus de langage, exit de %s\n" -#define MSG_NO_MORE_VAR "Les fichiers VAR ne sont plus support‚s" -#define MSG_NO_MULCOL_JOIN "Jointure vers un index multi-colonne pas encore possible" -#define MSG_NO_MULT_HAVING "Clauses Having multiples non impl‚ment‚es" -#define MSG_NO_MUL_DIR_ACC "AccŠs direct des tables multiples pas encore impl‚ment‚" -#define MSG_NO_MUL_VCT "Les tables VCT ne peuvent pas ˆtre multiples" -#define MSG_NO_MYSQL_CONN "Aucune connexion MySQL ouverte" -#define MSG_NO_MYSQL_DELETE "Pas de Delete pour les tables MySQL" -#define MSG_NO_NBCOL "Pas de NBcol" -#define MSG_NO_NBLIN "Pas de NBlin, MaxSize ou Continued" -#define MSG_NO_NBLIN_CONT "Fetch: Pas de NBlin ou Continued" -#define MSG_NO_NULL_CONST "Les constantes <null> ne sont pas prises en charge" -#define MSG_NO_ODBC_COL "Colonnes ODBC automatiques non support‚es par cette version" -#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_OPT_COLUMN "Pas optimisable ou pas de colonne optimis‚es" -#define MSG_NO_OP_MODIF "Les modificateurs ne s'appliquent pas … %s" -#define MSG_NO_PARAMETER "Pas de paramŠtre" -#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_POS_ADDED "Pos_code non ajout‚" -#define MSG_NO_PROMPTING "Relance impossible pour les tables distribu‚es" -#define MSG_NO_QRY_DELETE "Delete n'est pas utilisable pour les views QRY" -#define MSG_NO_QUERY_ARRAY "Tableaux avec QUERY non encore impl‚ment‚s" -#define MSG_NO_RCUR_DSK_YET "Usage r‚cursif de DISK non encore implement‚" -#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_REF_DELETE "Pas de suppression en r‚f‚rence … une autre table" -#define MSG_NO_REF_UPDATE "Pas de mise … jour en r‚f‚rence … une autre table" -#define MSG_NO_REMOTE_FNC "Certaines fonctions ne peuvent pas ˆtre ex‚cut‚es … distance" -#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_SELECTED_DB "Aucune base de donn‚es s‚lect‚e" -#define MSG_NO_SELF_PIVOT "Une table ne peut se pivoter elle-mˆme !" -#define MSG_NO_SERVER_FOUND "Serveur introuvable" -#define MSG_NO_SETPOS_YET "SetPos pas encore impl‚ment‚ pour les fichier %s" -#define MSG_NO_SFEXIT_UNIX "Fonction %s non disponible sur Unix" -#define MSG_NO_SOURCE " (pas de source)" -#define MSG_NO_SPEC_COL "Pas de colonne sp‚ciales MYSQL" -#define MSG_NO_SQL_DELETE "Delete n'est pas utilisable actuellement pour les views SQL" -#define MSG_NO_SUB_VAL "Pas de sous-value d'un tableau de type %d" -#define MSG_NO_SUCH_INDEX "La table %s n'a pas l'index %s" -#define MSG_NO_SUCH_SERVER "Serveur %s introuvable" -#define MSG_NO_SUCH_TABLE "Table %s pas dans la base de donn‚es" -#define MSG_NO_TABCOL_DATA "Pas de donn‚es pour la table %s colonne %s" -#define MSG_NO_TABLE_COL "Aucune colonne trouv‚e pour %s" -#define MSG_NO_TABLE_DEL "Delete non autoris‚ pour les tables %s " -#define MSG_NO_TABLE_DESC "Pas de bloc descriptif de table" -#define MSG_NO_TABLE_INDEX "La table %s n'a pas d'index" -#define MSG_NO_TABLE_LIST "Pas de liste de tables" -#define MSG_NO_TAB_DATA "Pas de donn‚es pour la table %s" -#define MSG_NO_TERM_IN_TOK "Les non-terminaux ne sont pas utilisables dans les rŠgles de Token" -#define MSG_NO_TOKEN_DB "DB introuvable pour la colonne TOKEN %s" -#define MSG_NO_UNIX_CATINFO "Pas d'info catalogue sous Unix" -#define MSG_NO_UPDEL_JOIN "Pas de jointure de tables ODBC pour Update/Delete" -#define MSG_NO_VCT_DELETE "D‚l‚tion Partielle non impl‚ment‚e pour les fichiers VCT" -#define MSG_NO_VIEW_COLDEF "Colonne d‚finition impossible pour les views" -#define MSG_NO_VIEW_SORT "La View fonctionnelle %s ne peut pas ˆtre tri‚e ou jointe" -#define MSG_NO_ZIP_DELETE "Delete sur fichier Zip non encore implement‚" -#define MSG_NO_ZIP_DIR_ACC "AccŠs directe des tables ZDOS non encore implement‚" -#define MSG_NULL_COL_VALUE "La colonne n'a pas de valeur" -#define MSG_NULL_ENTRY "InitLang, entr‚e nulle %d %s" -#define MSG_NULL_QUERY "Requˆte vide" -#define MSG_NUMVAL_NOMATCH "Disparit‚ de Numval pour %s" -#define MSG_N_FULL_PARSES "%d significations" -#define MSG_ODBC_READ_ONLY "ODBC est actuellement en lecture seulement" -#define MSG_OFFSET_NOT_SUPP "Offset non support‚ pour ce type de sous requˆte" -#define MSG_ONE_LANG_YET "Un langage est d‚j… en ‚dition" -#define MSG_ONE_PARAM_ONLY "Un seul paramŠtre autoris‚" -#define MSG_ONLY_LOG10_IMPL "Seul Log10 est implement‚" -#define MSG_ON_LANGUAGE "Langage %.8s version %d niveau %d ‚ditable" -#define MSG_OPENING "Ouverture" -#define MSG_OPENING_QUERY "Ouverture de la requˆte" -#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_ERROR_ON "Erreur d'ouverture sur %s" -#define MSG_OPEN_MODE_ERROR "Erreur d'ouverture(%s) %d sur %s" -#define MSG_OPEN_SORT_ERROR "Erreur logique de tri dans QUERY Open" -#define MSG_OPEN_STRERROR "Erreur … l'ouverture: %s" -#define MSG_OPEN_W_ERROR "Erreur … l'ouverture de %s en ‚criture" -#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_INIT "Optimisation initialis‚e" -#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_OP_RES_TOO_LONG "R‚sultat trop long pour l'op‚rateur=%d" -#define MSG_ORDER_OUT_RANGE "Tri: Order %d hors limite" -#define MSG_ORDER_TWICE "Un mˆme ‚l‚ment est tri‚ deux fois" -#define MSG_PAGE_ERROR "Erreur de pagination" -#define MSG_PARM_CNT_MISS "Disparit‚ du nombre de ParamŠtres" -#define MSG_PARSE_NULL_SEM "S‚mantique nulle" -#define MSG_PARSING_QUERY "Analyse de la requˆte" -#define MSG_PIX_ERROR "Pix %s erreur rŠgle no=%u\n" -#define MSG_PIX_TEST_ERROR "RŠgle=%u: pix-TEST pas dans le premier noeud\n" -#define MSG_PLG_READ_ONLY "PLG est actuellement en lecture seulement" -#define MSG_PLM_NULL_SFP "TABPLM ReadDB: Sfp est NULL" -#define MSG_PLUG_NOT_INIT "Plug n'est pas initialis‚\n" -#define MSG_PLUG_NOT_RUN "Plug n'est pas en marche" -#define MSG_PNODE_RULE "(Noeud %d rŠgle %d) " -#define MSG_POS_TOO_LONG "%s trop long (>%d)" -#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_PROCESS_SUBQRY "Sub-Query en cours de traitement" -#define MSG_PROC_WOULD_LOOP "Bouclage du traitement (maxres=%d maxlin=%d)" -#define MSG_PROGRESS_INFO "Informations sur le traitement en cours" -#define MSG_PROMPT_CANCEL "Relance annul‚e" -#define MSG_PROMPT_NIY "Prompt non impl‚ment‚ pour cette configuration" -#define MSG_PTR_NOT_FOUND "Pointeur introuvable Num=%d ti1=%d" -#define MSG_PXDEF_IS_NULL "Pxdef est NULL" -#define MSG_QRY_READ_ONLY "Les views QRY sont en lecture seulement" -#define MSG_QUERY_CANCELLED "Requˆte interrompue par l'utilisateur" -#define MSG_QUERY_NOT_EXEC "Requˆte non ex‚cut‚e" -#define MSG_QUERY_SAVED "Requˆte %s sauvegard‚e" -#define MSG_QUOTE_IN_QUOTE "Appostrophe dans un champ entre appostrophe ligne %d" -#define MSG_RANGE_NIY "Range pas encore impl‚ment‚ pour %s" -#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_READB_BAD_INIT "%s ReadDB appel‚ avec Init=0" -#define MSG_READCOL_ERROR "SQLCOL: erreur dans ReadColumn" -#define MSG_READING "Lecture" -#define MSG_READING_FROM "Lecture de %s" -#define MSG_READING_RECORD "Erreur en lecture de l'enregistrement %d de %s" -#define MSG_READY "Prˆt" -#define MSG_READ_ERROR "Erreur en lecture sur %s: %s" -#define MSG_READ_ERROR_RC "Erreur en lecture, rc=%d" -#define MSG_READ_MEM_ERROR "Lecture m‚moire %d: taille=%d" -#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_READ_SEG_ERROR "Lecture segment %d: taille=%d" -#define MSG_RECEIVED "Re‡u %c\n" -#define MSG_RECORD_ERROR "Erreur … la lecture de l'enregistrement %d de %s" -#define MSG_RECORD_NO_SEP "Enregistrement sans s‚parateur" -#define MSG_REC_SKIPPED " (%d lignes erronn‚es saut‚es par l'option MaxErr)" -#define MSG_REDUCE_INDEX "Réduction de l'index" -#define MSG_REGISTER_ERR "Enregistrement NS impossible, pr‚fix='%s' et href='%s'" -#define MSG_REMOTE_CONN_ERR "La connection ‚loign‚e a ‚chou‚" -#define MSG_REMOVE_ERROR "Erreur en supprimant %s: %s" -#define MSG_REMOVE_NOT_IMPL "Remove non impl‚ment‚ pour TDB non Table" -#define MSG_RENAME_ERROR "Erreur renommant %s en %s: %s" -#define MSG_RENUM_RULES "Renum‚rotez les rŠgles et r‚entrez ADD (rŠgle sauvegard‚e dans la zone tampon)" -#define MSG_REORDER_INDEX "Reclassement de l'index" -#define MSG_REQU_ARG_NUM "La fonction %s doit avoir %d arguments" -#define MSG_RESET_TO "%s remis … %d" -#define MSG_RES_NOT_UNIQUE "Le r‚sultat n'est pas unique" -#define MSG_RET_FROM_LANG "Retour au language %s version %d.%d du language %s version %d.%d" -#define MSG_ROWID_NOT_IMPL "RowNumber non impl‚ment‚ pour les tables de type %s" -#define MSG_ROWS_SELECTED "%d lignes s‚lectionn‚es en %.2lf sec" -#define MSG_ROWS_TRUNCATED " (tronqu‚ par MAXRES, LIMIT, FREQ ou AreaSize)" -#define MSG_ROW_ARGNB_ERR "ROW: disparit‚ du nombre d'arguments (%d,%d)" -#define MSG_RPC_SERVER_ERR "Erreur logique dans TABMUL::MakeCol" -#define MSG_RSC_ALLOC_ERROR "Erreur d'allocation m‚moire dans Rescol %s" -#define MSG_RULE_ENTERED "RŠgle %d entr‚e" -#define MSG_RULE_SUBSET_ERR "Erreur d'initialisation de la zone RŠgles" -#define MSG_SAVING_INDEX "Sauvegarde du fichier index" -#define MSG_SCAN_NOT_IMP "Scan non impl‚ment‚" -#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_SEC_NOT_FOUND "Section %s absente de %s" -#define MSG_SEEK_ERROR "Seek erreur dans CopyHeader" -#define MSG_SEMANTIC_TREE "Arbre s‚mantique" -#define MSG_SEM_BAD_REF "Sem @%d r‚f‚rence un argument de type non 0 ou 1" -#define MSG_SEM_UNKNOWN "inconnue, rc=%d" -#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_LOCALE "Locale fix‚e … %s" -#define MSG_SET_NULL_DOM "Valeur %d donn‚e … un domaine nul" -#define MSG_SET_OP_NOT_IMPL "Op‚rateurs ensemblistes non impl‚ment‚s" -#define MSG_SET_STR_TRUNC "SetValue: ChaŒne de caractŠres tronqu‚e" -#define MSG_SEVERAL_TREES "Jointure non sp‚cifi‚e pour certaines tables" -#define MSG_SFP_ERROR "Erreur sur SetFilePointer: %s" -#define MSG_SFUNC_NOT_IMPL "Fonction scalaire %s non impl‚ment‚e" -#define MSG_SHARED_LIB_ERR "Erreur au chargement de la librairie partag‚e %s: %s" -#define MSG_SINGLE_STEP "Pas … pas" -#define MSG_SLEEP "J'ai dormi %d milliseconds" -#define MSG_SMART_SORTING "R‚cup‚ration des lignes tri‚es (passage %d de %d)" -#define MSG_SMART_SORT_ERR "Erreur logique 1 dans Smart Sort" -#define MSG_SORTING "Tri en cours" -#define MSG_SORTING_INDEX "Tri de l'index" -#define MSG_SORTING_VAL "Tri de %d valeurs" -#define MSG_SORT_JOIN_INDEX "Tri de l'index de jointure" -#define MSG_SPCOL_READONLY "La colonne sp‚ciale %s est en lecture seulement" -#define MSG_SPEC_CMD_SEP "Les commandes sp‚ciales doivent ˆtre ex‚cut‚es s‚par‚ment" -#define MSG_SQL_BAD_TYPE "RephraseSQL: type %d non support‚" -#define MSG_SQL_BLOCK_MISM "CheckColumn: bloc SQL courant non correspondant" -#define MSG_SQL_CONF_ERROR "Erreur SQL: SQL_CONFORMANCE" -#define MSG_SQL_READ_ONLY "Les views SQL sont actuellement en lecture seulement" -#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_ERROR "Erreur sur la pile, i=%d\n" -#define MSG_STACK_OVERFLOW "Parser: D‚bordement de la pile\n" -#define MSG_STRG_NOT_FOUND "ChaŒne introuvable" -#define MSG_STRING_INV_LIST "Liste invalide pour SemString" -#define MSG_STRING_TOO_BIG "ChaŒne trop grande pour le domaine %s" -#define MSG_SUBALLOC_ERROR "Pas assez de m‚moire en zone %p pour allouer %d (utilis‚=%d libre=%d)" -#define MSG_SUBAL_HUGE_ERR "Pas assez de m‚moire en zone huge %p pour allouer %d" -#define MSG_SUBARG_NOSEM "Argument @ ou sous-phrase de niveau %d pointe sur un noeud sans Sem" -#define MSG_SUBARG_OUTRANGE "Argument @ ou sous-phrase de niveau %d hors limite" -#define MSG_SUBQRY_ONEITEM "Une Sub-Query ne doit avoir qu'une s‚lection" -#define MSG_SUBSET_ERROR "SubSet erreur dans LoadDB" -#define MSG_SUB_OPEN_YET "Subquery d‚j… ouverte" -#define MSG_SUB_RES_TOO_LNG "R‚sultat trop long pour SUBSTR" -#define MSG_SYNTAX_ERROR "Erreur de syntaxe" -#define MSG_SYSTEM_ERROR "Erreur systŠme %d" -#define MSG_S_ACCESS_DENIED "%s: accŠs non autoris‚" -#define MSG_S_ERROR "%s erreur" -#define MSG_S_ERROR_NUM "%s: erreur=%d" -#define MSG_S_INTRUPT_ERROR "%s: erreur interruption" -#define MSG_S_INVALID_PARM "%s: paramŠtre invalide" -#define MSG_S_INV_ADDRESS "%s: adresse invalide" -#define MSG_S_UNKNOWN_ERROR "%s: erreur de code %u inconnu" -#define MSG_TABDIR_READONLY "Les tables DIR sont en lecture seulement" -#define MSG_TABLE_ALREADY "La table %s existe d‚j…" -#define MSG_TABLE_ALTERED "Table %s %s alt‚r‚e" -#define MSG_TABLE_CREATED "%s table %s cr‚‚e" -#define MSG_TABLE_DROPPED "Table %s supprim‚e" -#define MSG_TABLE_MULT_JOIN "Utilisation multiple de la table %s pour jointure" -#define MSG_TABLE_NOT_IN_DB "La table %s n'existe pas dans %s" -#define MSG_TABLE_NOT_OPT "Table non optimisable" -#define MSG_TABLE_NO_INDEX "La table %s n'est pas indexable" -#define MSG_TABLE_NO_OPT "La table %s n'existe pas ou de type non optimisable" -#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_TAB_NOT_LOADED " (certaines tables n'ont put ˆtre charg‚es)" -#define MSG_TAB_NOT_SPEC "Table non specifi‚e" -#define MSG_TB_VW_NOTIN_DB "Table ou view %s pas dans la base de donn‚es" -#define MSG_TDB_NXT_NOT_NUL "Tdb.Next non NULL" -#define MSG_TDB_USE_ERROR "Erreur, Tdbp->Use=%d" -#define MSG_TOO_MANY_COLS "Trop de colonnes" -#define MSG_TOO_MANY_COLTAB "Trop de colonnes dans %s (%d)" -#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_TOO_MANY_POS "Trop de pos_codes" -#define MSG_TOO_MANY_TABLES "Trop de tables (%d)" -#define MSG_TOPSEM_ERROR "Erreur inconnue dans TopSem" -#define MSG_TO_BLK_IS_NULL "To Blk est nul" -#define MSG_TO_FTR_NOT_NULL "Set.To_Ftr n'est pas nul" -#define MSG_TO_PIX_NOT_NULL "Set.To_Pix n'est pas nul" -#define MSG_TO_SEM_NOT_NULL "Set.To_Sem n'est pas nul" -#define MSG_TRUNCATE_ERROR "Erreur en troncation: %s" -#define MSG_TRUNC_BY_ESTIM "Tronqu‚ par l'option Estimate" -#define MSG_TYPES_ERROR "Erreur sur Types(%d)" -#define MSG_TYPE_CONV_ERROR "Type non convertible dans une expression" -#define MSG_TYPE_DEF_MISM "Disparit‚ entre type et d‚finition" -#define MSG_TYPE_MISMATCH "Cl‚ et source ne sont pas du mˆme type" -#define MSG_TYPE_RECFM_MISM "Disparit‚ entre Type et Recfm" -#define MSG_TYPE_TO_VERIFY "Type … v‚rifier: %d" -#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_UNDEFINED_PATH "Chemin d'accŠs ind‚fini pour Plgcnx.ini" -#define MSG_UNDEF_COL_COUNT "Count sur colonne non d‚finie" -#define MSG_UNKNOWN_DOMAIN "Domaine inconnu %s" -#define MSG_UNKNOWN_ERROR "Erreur inconnue" -#define MSG_UNKNOWN_EXCPT "Exception non r‚pertori‚e" -#define MSG_UNKNOWN_NAME "Nom inconnu: %.8s" -#define MSG_UNKNOWN_PATH "Chemin d'accŠs inconnu pour Plgcnx.ini" -#define MSG_UNKNOWN_POS "Nom pos_code inconnu: %s" -#define MSG_UNKNOWN_SEM "Sem %.8s inconnue, rc=%d" -#define MSG_UNKNOWN_SYNONYM "Synonyme inconnu" -#define MSG_UNKNW_QRY_TYPE "ReadDB: type de requˆte inconnu" -#define MSG_UNKN_ERR_CODE "Erreur de code %d inconnu" -#define MSG_UNLOADABLE " inchargeable: " -#define MSG_UNLOADABLE_PRM "%s inchargeable: %s" -#define MSG_UNMATCH_FIL_ARG "Argument de filtre d‚pareill‚" -#define MSG_UNQ_COL_SEV_TAB "La colonne %s non qualifi‚e est dans plusieurs tables" -#define MSG_UNRESOLVED_ARG "?Argument manquant: %s non r‚solu en %d ligne %d" -#define MSG_UPDATE_ERROR "Erreur en Update sur %s" -#define MSG_UPDATING_ROWS "Mise … jour des lignes" -#define MSG_UPD_ZIP_NOT_IMP "Mise … jour des tables ZDOS non encore implement‚" -#define MSG_UP_LANGUAGE "Bloc langage %.8s version %d niveau %d charg‚" -#define MSG_USED_FREE_MEM "Sarea: utilis‚ %d, libre %d" -#define MSG_USETEMP_IS "Usetemp est : %s" -#define MSG_USETEMP_RESET ". Usetemp remis … Auto" -#define MSG_USETEMP_SET "Usetemp fix‚ … %s" -#define MSG_USE_NO_MATCH "Use non correspondant : Use=%d, ti2=%d, ti3=%d" -#define MSG_USING_INDEX " (Index‚ par" -#define MSG_VALIST_MISMATCH "Disparit‚ des listes de valeurs" -#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_NOT_ALLOC "Valeur non allou‚e pour la colonne R%d %s" -#define MSG_VALUE_TOO_BIG "Valeur %lld 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_VAL_TOO_LONG "Valeur %s trop longue pour le champ %s" -#define MSG_VIEW_ALREADY "La VIEW %s existe d‚j…" -#define MSG_VIEW_CREATED "%s view %s cr‚‚e" -#define MSG_VIEW_DROPPED "View %s supprim‚e" -#define MSG_VIEW_NOT_IN_DB "%s n'est pas une View de %s" -#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_VM_LANG "Langage au format VM, non support‚" -#define MSG_VOID_FIRST_ARG "Le premier argument ne doit pas ˆtre vide" -#define MSG_VOID_IN_STRING "Erreur: chaŒne IN vide" -#define MSG_VOID_ORDER_LIST "Liste de tri vide, erreur systŠme ?" -#define MSG_VOID_POS_DICT "Dictionnaire interne du langage vide" -#define MSG_VOID_QUERY "Requˆte vide %s" -#define MSG_WORK_AREA "Espace de travail: %s" -#define MSG_WORK_TOO_SMALL "Zone de travail trop petite, accroŒtre AreaSize" -#define MSG_WRITE_ERROR "Erreur … l'‚criture de %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_WRITING_QUERY "Erreur … l'‚criture de la requˆte: " -#define MSG_WRONG_ARG_NUM "La fonction %s ne prend pas %d arguments" -#define MSG_WRONG_COL_NUM "Num‚ro de colonne %d trop grand pour %s" -#define MSG_WRONG_DB_LIST "Liste des bases de donn‚es incorrecte ou vide" -#define MSG_WRONG_FUNCTION "Mauvaise fonction %d" -#define MSG_WRONG_OP_PARM "Mauvais op‚rateur ou paramŠtres pour %s" -#define MSG_WRONG_PARMS "Mauvais paramŠtres pour %s" -#define MSG_WRONG_PASSWORD "Mot de passe ill‚gal pour %s" -#define MSG_WRONG_TYPE "type non support‚" -#define MSG_WRONG_USERFILE "La Userfile a une mauvaise taille %d" -#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_XDB_DEL_ERROR "Erreur en supprimant des entr‚es du fichier XDB" -#define MSG_XFILE_READERR "Erreur %d en lisant le fichier index" -#define MSG_XFILE_TOO_SMALL "Le fichier index est plus petit que la taille de l'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" -#define MSG_X_ARG_ADDED "%d arguments ajout‚s" -#define MSG_X_ARG_SET "%d arguments ont ‚t‚ initialis‚s" -#define MSG_X_ON_TAB " %s sur %s(" -#define MSG_ZERO_DIVIDE "Division par z‚ro dans une expression" diff --git a/storage/connect/ha_connect.cc b/storage/connect/ha_connect.cc index 802015341b8..080440e052b 100644 --- a/storage/connect/ha_connect.cc +++ b/storage/connect/ha_connect.cc @@ -540,11 +540,7 @@ extern "C" const char *msglang(void) #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 diff --git a/storage/connect/messages.h b/storage/connect/messages.h index b55ec39b235..91e04f3d472 100644 --- a/storage/connect/messages.h +++ b/storage/connect/messages.h @@ -1,13 +1,5 @@ /**************************************************************************/ /* NLS messsages definition. */ /**************************************************************************/ -#if defined(FRENCH) -#if defined(CPX) -#include "frmsg1.h" -#else /* not CPX */ -#include "frmsg2.h" -#endif /* CPX */ -#else /* not FRENCH */ #include "engmsg.h" -#endif /* FRENCH */ /* ---------------------------------------------------------------------- */ diff --git a/storage/connect/plgdbsem.h b/storage/connect/plgdbsem.h index 370bf69ffa0..4371f90a21d 100644 --- a/storage/connect/plgdbsem.h +++ b/storage/connect/plgdbsem.h @@ -14,11 +14,7 @@ /***********************************************************************/ /* DB Constant definitions. */ /***********************************************************************/ -#if defined(FRENCH) -#define DEFAULT_LOCALE "French" -#else // !FRENCH #define DEFAULT_LOCALE "English" -#endif // !FRENCH #define DOS_MAX_PATH 144 /* Must be the same across systems */ #define DOS_BUFF_LEN 100 /* Number of lines in binary file buffer */ diff --git a/storage/connect/rcmsg.c b/storage/connect/rcmsg.c index 4cd443d88bb..e2fd08ba866 100644 --- a/storage/connect/rcmsg.c +++ b/storage/connect/rcmsg.c @@ -32,17 +32,6 @@ const char *GetMsgid(int id) const char *p = NULL; // This conditional until a real fix is found for MDEV-7304 -#if defined(FRENCH) - if (!stricmp(msglang(), "french")) - switch (id) { -#include "frids.h" -#if defined(NEWMSG) -#include "frcas.h" -#endif // NEWMSG - } // endswitch(id) - - else // English -#endif // FRENCH switch (id) { #include "enids.h" #if defined(NEWMSG) diff --git a/storage/innobase/btr/btr0btr.cc b/storage/innobase/btr/btr0btr.cc index 3b48c0827e7..19192cdf798 100644 --- a/storage/innobase/btr/btr0btr.cc +++ b/storage/innobase/btr/btr0btr.cc @@ -4882,6 +4882,7 @@ corrupted: loop: if (!block) { invalid_page: + mtr.commit(); func_exit: mem_heap_free(heap); return err; diff --git a/storage/innobase/buf/buf0buf.cc b/storage/innobase/buf/buf0buf.cc index 98b95239a68..3f5145b9556 100644 --- a/storage/innobase/buf/buf0buf.cc +++ b/storage/innobase/buf/buf0buf.cc @@ -2117,7 +2117,7 @@ void buf_page_free(fil_space_t *space, uint32_t page, mtr_t *mtr) btr_search_drop_page_hash_index(block); #endif /* BTR_CUR_HASH_ADAPT */ block->page.set_freed(block->page.state()); - mtr->memo_push(block, MTR_MEMO_PAGE_X_FIX); + mtr->memo_push(block, MTR_MEMO_PAGE_X_MODIFY); } /** Get read access to a compressed page (usually of type @@ -2518,6 +2518,9 @@ ignore_block: return nullptr; } + if (UNIV_UNLIKELY(!block->page.frame)) { + goto wait_for_unzip; + } /* A read-fix is released after block->page.lock in buf_page_t::read_complete() or buf_pool_t::corrupted_evict(), or @@ -2548,7 +2551,7 @@ ignore_block: mysql_mutex_lock(&buf_pool.mutex); block->unfix(); - if (!buf_LRU_free_page(&block->page, true)) { + if (!buf_LRU_free_page(&block->page, true)) { ut_ad(0); } @@ -2566,6 +2569,7 @@ ignore_block: if (UNIV_UNLIKELY(!block->page.frame)) { if (!block->page.lock.x_lock_try()) { +wait_for_unzip: /* The page is being read or written, or another thread is executing buf_zip_decompress() in buf_page_get_low() on it. */ diff --git a/storage/innobase/dict/dict0stats_bg.cc b/storage/innobase/dict/dict0stats_bg.cc index 224caea70bb..10c7426103c 100644 --- a/storage/innobase/dict/dict0stats_bg.cc +++ b/storage/innobase/dict/dict0stats_bg.cc @@ -37,7 +37,6 @@ Created Apr 25, 2012 Vasil Dimov # include "mysql/service_wsrep.h" # include "wsrep.h" # include "log.h" -# include "wsrep_mysqld.h" #endif #include <vector> diff --git a/storage/innobase/fsp/fsp0fsp.cc b/storage/innobase/fsp/fsp0fsp.cc index 7b931b29aa1..09583e157b7 100644 --- a/storage/innobase/fsp/fsp0fsp.cc +++ b/storage/innobase/fsp/fsp0fsp.cc @@ -2590,7 +2590,6 @@ corrupted: if (UNIV_UNLIKELY(err != DB_SUCCESS)) { return err; } - return err; } mtr->free(*space, static_cast<uint32_t>(offset)); diff --git a/storage/innobase/handler/ha_innodb.h b/storage/innobase/handler/ha_innodb.h index 6a4948256a0..01acde3d8e6 100644 --- a/storage/innobase/handler/ha_innodb.h +++ b/storage/innobase/handler/ha_innodb.h @@ -565,9 +565,6 @@ bool thd_is_strict_mode(const MYSQL_THD thd); extern void mysql_bin_log_commit_pos(THD *thd, ulonglong *out_pos, const char **out_file); struct trx_t; -#ifdef WITH_WSREP -#include <mysql/service_wsrep.h> -#endif /* WITH_WSREP */ extern const struct _ft_vft ft_vft_result; diff --git a/storage/innobase/handler/handler0alter.cc b/storage/innobase/handler/handler0alter.cc index 0babd37251e..0b933265fcf 100644 --- a/storage/innobase/handler/handler0alter.cc +++ b/storage/innobase/handler/handler0alter.cc @@ -1444,9 +1444,13 @@ struct ha_innobase_inplace_ctx : public inplace_alter_handler_ctx for (unsigned i= 0, j= 0; i < index->n_fields; i++) { const dict_col_t *col= index->fields[i].col; - if (change_col_collate.find(col->ind) == collate_end) + auto it= change_col_collate.find(col->ind); + if (it != collate_end) + { + ut_ad(it->second == col); index->fields[i].col= index->change_col_info->add(index->heap, *col, j++); + } } } } diff --git a/storage/innobase/include/mtr0mtr.inl b/storage/innobase/include/mtr0mtr.inl index 0b45bc1d695..1368cca0efd 100644 --- a/storage/innobase/include/mtr0mtr.inl +++ b/storage/innobase/include/mtr0mtr.inl @@ -48,12 +48,13 @@ mtr_t::memo_push(void* object, mtr_memo_type_t type) ut_ad(type <= MTR_MEMO_SPACE_S_LOCK); ut_ad(type == MTR_MEMO_PAGE_X_MODIFY || ut_is_2pow(type)); - /* If this mtr has x-fixed a clean page then we set - the made_dirty flag. This tells mtr_t::commit() - to hold log_sys.latch longer. */ + /* If this mtr has U or X latched a clean page then we set + the m_made_dirty flag. This tells us if we need to + grab log_sys.flush_order_mutex at mtr_t::commit() so that we + can insert the dirtied page into the buf_pool.flush_list. */ if (!m_made_dirty - && (type == MTR_MEMO_PAGE_X_FIX || type == MTR_MEMO_PAGE_SX_FIX)) { + && (type & (MTR_MEMO_PAGE_X_FIX | MTR_MEMO_PAGE_SX_FIX))) { m_made_dirty = is_block_dirtied( reinterpret_cast<const buf_block_t*>(object)); diff --git a/storage/innobase/log/log0recv.cc b/storage/innobase/log/log0recv.cc index bb2a488e0ae..0b6ddce30ce 100644 --- a/storage/innobase/log/log0recv.cc +++ b/storage/innobase/log/log0recv.cc @@ -217,7 +217,9 @@ public: /** The page was modified, affecting the encryption parameters */ APPLIED_TO_ENCRYPTION, /** The page was modified, affecting the tablespace header */ - APPLIED_TO_FSP_HEADER + APPLIED_TO_FSP_HEADER, + /** The page was found to be corrupted */ + APPLIED_CORRUPTED, }; /** Apply log to a page frame. @@ -299,12 +301,10 @@ public: ut_ad(*l == OPT_PAGE_CHECKSUM); if (page_checksum(block, l + 1)) { - applied= APPLIED_YES; page_corrupted: sql_print_error("InnoDB: Set innodb_force_recovery=1" " to ignore corruption."); - recv_sys.set_corrupt_log(); - return applied; + return APPLIED_CORRUPTED; } goto next_after_applying; } @@ -3007,6 +3007,7 @@ static buf_block_t *recv_recover_page(buf_block_t *block, mtr_t &mtr, start_lsn = 0; continue; case log_phys_t::APPLIED_YES: + case log_phys_t::APPLIED_CORRUPTED: goto set_start_lsn; case log_phys_t::APPLIED_TO_FSP_HEADER: case log_phys_t::APPLIED_TO_ENCRYPTION: @@ -3060,7 +3061,8 @@ static buf_block_t *recv_recover_page(buf_block_t *block, mtr_t &mtr, } set_start_lsn: - if (recv_sys.is_corrupt_log() && !srv_force_recovery) { + if ((a == log_phys_t::APPLIED_CORRUPTED + || recv_sys.is_corrupt_log()) && !srv_force_recovery) { if (init) { init->created = false; if (space || block->page.id().page_no()) { @@ -3157,7 +3159,13 @@ ATTRIBUTE_COLD void recv_sys_t::free_corrupted_page(page_id_t page_id) p->second.log.clear(); pages.erase(p); if (!srv_force_recovery) + { set_corrupt_fs(); + ib::error() << "Unable to apply log to corrupted page " << page_id + << "; set innodb_force_recovery to ignore"; + } + else + ib::warn() << "Discarding log for corrupted page " << page_id; } if (pages.empty()) diff --git a/storage/innobase/page/page0cur.cc b/storage/innobase/page/page0cur.cc index cc94d6cfa3e..073b903a740 100644 --- a/storage/innobase/page/page0cur.cc +++ b/storage/innobase/page/page0cur.cc @@ -1649,7 +1649,7 @@ inc_dir: { const byte *r= rec; const byte *c= cur->rec; - const byte *c_end= cur->rec + data_size; + const byte *c_end= c + (page_rec_is_infimum(c) ? 8 : data_size); static_assert(REC_N_OLD_EXTRA_BYTES == REC_N_NEW_EXTRA_BYTES + 1, ""); if (c <= insert_buf && c_end > insert_buf) c_end= insert_buf; diff --git a/storage/innobase/row/row0ins.cc b/storage/innobase/row/row0ins.cc index 35179eaf7c3..0f36e1910e5 100644 --- a/storage/innobase/row/row0ins.cc +++ b/storage/innobase/row/row0ins.cc @@ -47,7 +47,8 @@ Created 4/20/1996 Heikki Tuuri # include "btr0sea.h" #endif #ifdef WITH_WSREP -#include "wsrep_mysqld.h" +#include <wsrep.h> +#include <mysql/service_wsrep.h> #endif /* WITH_WSREP */ /************************************************************************* diff --git a/storage/innobase/row/row0mysql.cc b/storage/innobase/row/row0mysql.cc index 483e10b6283..a8619e788af 100644 --- a/storage/innobase/row/row0mysql.cc +++ b/storage/innobase/row/row0mysql.cc @@ -66,11 +66,6 @@ Created 9/17/2000 Heikki Tuuri #include <vector> #include <thread> -#ifdef WITH_WSREP -#include "mysql/service_wsrep.h" -#include "wsrep.h" -#include "wsrep_mysqld.h" -#endif /*******************************************************************//** Delays an INSERT, DELETE or UPDATE operation if the purge is lagging. */ |