22 #include "svn_revision.h" 26 #include "blosc/blosc.h" 53 #define MSG_PURESTRING -2 54 #define MSG_NOERROR -1 56 #define MSG_INVALIDDBHANDLE 1 57 #define MSG_IMPOSSIBLE 2 59 #define MSG_INVALIDARG 4 60 #define MSG_CLOSINGFILES 5 61 #define MSG_CANTCOPYSTRING 6 62 #define MSG_NOOPENARG 7 63 #define MSG_NOFREESLOT 8 64 #define MSG_CANTOPEN 9 65 #define MSG_DBNOTOPEN 10 66 #define MSG_INVQUERY 11 67 #define MSG_CANTCREATEOUTPUT 12 68 #define MSG_UNKNWNDBTYPE 13 69 #define MSG_BUSYTIMEOUTFAIL 14 70 #define MSG_MSGUNIQUEWARN 15 71 #define MSG_UNEXPECTEDARG 16 72 #define MSG_MISSINGARGL 17 73 #define MSG_ERRMEMORY 18 74 #define MSG_UNSUPPVARTYPE 19 75 #define MSG_UNSUPPTBH 20 76 #define MSG_ERRPLATFORMDETECT 21 77 #define MSG_WARNDIFFARCH 22 78 #define MSG_BLOBTOOBIG 23 79 #define MSG_ERRCOMPRESSION 24 80 #define MSG_UNKCOMPRESSOR 25 81 #define MSG_ERRCOMPRARG 26 82 #define MSG_ERRCOMPRLOGMINVALS 27 83 #define MSG_ERRUNKOPENMODE 28 84 #define MSG_ERRUNKTHREADMODE 29 85 #define MSG_ERRCANTCLOSE 30 86 #define MSG_ERRCLOSEDBS 31 87 #define MSG_ERRNOTSUPPORTED 32 88 #define MSG_EXTENSION_EN 33 89 #define MSG_EXTENSION_DIS 34 90 #define MSG_EXTENSION_FAIL 35 91 #define MSG_MISSINGARG 36 92 #define MSG_MISSINGARG_CELL 37 93 #define MSG_MISSINGARG_STRUCT 38 94 #define MSG_NUMARGEXPCT 39 95 #define MSG_SINGLECELLNOTALLOWED 40 96 #define MSG_SINGLESTRUCTNOTALLOWED 41 97 #define MSG_ERRVARNAME 42 98 #define MSG_STREAMINGNEEDTYBLOBS 43 99 #define MSG_STREAMINGNOTSUPPORTED 44 100 #define MSG_RESULTTYPE 45 101 #define MSG_DBID_SUPFLOUS 46 102 #define MSG_FCNHARGEXPCT 47 103 #define MSG_LITERALARGEXPCT 48 104 #define MSG_RECURSIVECALL 49 105 #define MSG_INVALIDFUNCTION 50 106 #define MSG_ERRNULLDBID 51 107 #define MSG_ERRINTERNAL 52 108 #define MSG_ABORTED 53 136 m_msgId = MSG_NOERROR;
150 void set(
const char* strMsg,
const char* strId = NULL )
158 m_msgId = MSG_PURESTRING;
159 m_static_msg = strMsg;
172 void set(
char* strMsg,
const char* strId = NULL )
182 m_msgId = MSG_PURESTRING;
186 _snprintf( m_shared_msg,
sizeof(m_shared_msg),
"%s", strMsg );
197 void set(
int iMessageNr,
const char* strId = NULL )
199 m_msgId = iMessageNr;
201 if( iMessageNr == MSG_NOERROR )
221 va_start( va, strId );
224 m_msgId = iMessageNr;
229 vsnprintf( m_shared_msg,
sizeof( m_shared_msg ), message, va );
246 va_start( va, strId );
248 m_msgId = MSG_PURESTRING;
253 vsnprintf( m_shared_msg,
sizeof( m_shared_msg ), fmt, va );
266 const char*
get(
const char** errId = NULL )
311 "(c) 2008-2017 by Martin Kortmann <mail@kortmann.de>\n" 312 " Andreas Martin <andimartin@users.sourceforge.net>\n" 313 "based on SQLite Version %s - http://www.sqlite.org\n" 314 "mksqlite utilizes:\n" 315 " - DEELX perl compatible regex engine Version " DEELX_VERSION_STRING
" (Sswater@gmail.com)\n" 316 " - BLOSC/LZ4 " BLOSC_VERSION_STRING
" compression algorithm (Francesc Alted / Yann Collett) \n" 317 " - MD5 Message-Digest Algorithm (RFC 1321) implementation by Alexander Peslyak\n" 320 "invalid database handle",
321 "function not possible",
322 "usage: mksqlite([dbid,] command [, databasefile])\n",
323 "no or wrong argument",
324 "mksqlite: closing open databases",
325 "can\'t copy string in getstring()",
326 "open without database name",
327 "no free database handle available",
328 "cannot open database (check access privileges and existence of database)",
330 "invalid query string (semicolon?)",
331 "cannot create output matrix",
332 "unknown SQLITE data type",
333 "cannot set busy timeout",
334 "could not build unique field name for %s",
335 "unexpected arguments passed",
336 "missing argument list",
337 "memory allocation error",
338 "unsupported variable type",
339 "unknown/unsupported typed blob header",
340 "error while detecting the type of computer you are using",
341 "BLOB stored on different type of computer",
342 "BLOB exceeds maximum allowed size",
343 "error while compressing data",
344 "unknown compressor",
345 "chosen compressor accepts 'double' type only",
346 "chosen compressor accepts positive values only",
347 "unknown open modus (only 'ro', 'rw' or 'rwc' accepted)",
348 "unknown threading mode (only 'single', 'multi' or 'serial' accepted)",
349 "cannot close connection",
350 "not all connections could be closed",
351 "this Matlab version doesn't support this feature",
352 "extension loading enabled for this db",
353 "extension loading disabled for this db",
354 "failed to set extension loading feature",
355 "more argument(s) expected",
356 "more argument(s) expected (maybe matrix argument given, instead of a cell array?)",
357 "missing field in argument for SQL parameter '%s'",
358 "numeric argument expected",
359 "single cell argument not allowed when streaming is enabled while multiple\nSQL parameters are used or parameter wrapping is enabled, too",
360 "single struct argument not allowed when streaming is enabled while multiple\nSQL parameters are used or parameter wrapping is enabled, too",
361 "unable to create fieldname from column name",
362 "streaming of variables needs typed BLOBs! Streaming is off",
363 "streaming not supported in this MATLAB version",
365 "database ID is given, but superflous!",
366 "function handle expected!",
367 "string argument expected!",
368 "recursive application-defined functions not allowed!",
370 "dbid of 0 only allowed for commands 'open' and 'close'!",
382 "(c) 2008-2017 by Martin Kortmann <mail@kortmann.de>\n" 383 " Andreas Martin <andimartin@users.sourceforge.net>\n" 384 "basierend auf SQLite Version %s - http://www.sqlite.org\n" 385 "mksqlite verwendet:\n" 386 " - DEELX perl kompatible regex engine Version " DEELX_VERSION_STRING
" (Sswater@gmail.com)\n" 387 " - BLOSC/LZ4 " BLOSC_VERSION_STRING
" zur Datenkompression (Francesc Alted / Yann Collett) \n" 388 " - MD5 Message-Digest Algorithm (RFC 1321) Implementierung von Alexander Peslyak\n" 391 "ungueltiger Datenbankhandle",
392 "Funktion nicht moeglich",
393 "Verwendung: mksqlite([dbid,] Befehl [, Datenbankdatei])\n",
394 "kein oder falsches Argument uebergeben",
395 "mksqlite: Die noch geoeffneten Datenbanken wurden geschlossen",
396 "getstring() kann keine neue Zeichenkette erstellen",
397 "Open Befehl ohne Datenbanknamen",
398 "kein freier Datenbankhandle verfuegbar",
399 "Datenbank konnte nicht geoeffnet werden (ggf. Zugriffsrechte oder Existenz der Datenbank pruefen)",
400 "Datenbank nicht geoeffnet",
401 "ungueltiger query String (Semikolon?)",
402 "kann Ausgabematrix nicht erstellen",
403 "unbekannter SQLITE Datentyp",
404 "busytimeout konnte nicht gesetzt werden",
405 "konnte keinen eindeutigen Bezeichner fuer Feld %s bilden",
406 "Argumentliste zu lang",
407 "keine Argumentliste angegeben",
408 "Fehler im Speichermanagement",
409 "nicht unterstuetzter Variablentyp",
410 "unbekannter oder nicht unterstuetzter typisierter BLOB Header",
411 "Fehler beim Identifizieren der Computerarchitektur",
412 "BLOB wurde mit abweichender Computerarchitektur erstellt",
414 "Fehler waehrend der Kompression aufgetreten",
415 "unbekannte Komprimierung",
416 "gewaehlter Kompressor erlaubt nur Datentyp 'double'",
417 "gewaehlter Kompressor erlaubt nur positive Werte",
418 "unbekannter Zugriffmodus (nur 'ro', 'rw' oder 'rwc' moeglich)",
419 "unbekannter Threadingmodus (nur 'single', 'multi' oder 'serial' moeglich)",
420 "die Datenbank kann nicht geschlossen werden",
421 "nicht alle Datenbanken konnten geschlossen werden",
422 "Feature wird von dieser Matlab Version nicht unterstuetzt",
423 "DLL Erweiterungen fuer diese db aktiviert",
424 "DLL Erweiterungen fuer diese db deaktiviert",
425 "Einstellung fuer DLL Erweiterungen nicht moeglich",
426 "Argumentliste zu kurz",
427 "Argumentliste zu kurz (moeglicherweise eine Matrix statt Cell-Array uebergeben?)",
428 "Feld fuer SQL Parameter '%s' fehlt",
429 "numerischer Parameter erwartet",
430 "einzelnes Argument vom Typ Cell nicht erlaubt, bei aktiviertem Streaming mit\nmehreren SQL Parametern oder ebenfalls aktiviertem Parameter Wrapping",
431 "einzelnes Argument vom Typ Struct nicht erlaubt, bei aktiviertem Streaming mit\nmehreren SQL Parametern oder ebenfalls aktiviertem Parameter Wrapping",
432 "aus dem Spaltennamen konnte kein gueltiger Feldname erzeugt werden",
433 "fuer das Streamen von Variablen sind typisierte BLOBS erforderlich! Streaming ist ausgeschaltet",
434 "Streaming wird von dieser MATLAB Version nicht unterstuetzt",
436 "Datenbank ID wurde angegeben, ist fuer diesen Befehl jedoch ueberfluessig! ",
437 "Funktionshandle erwartet! ",
438 "String Argument erwartet! ",
439 "unzulaessiger rekursiver Funktionsaufruf! ",
440 "ungueltige Funktion! ",
441 "0 als dbid ist nur fuer die Befehle 'open' und 'close' erlaubt! ",
443 "Ausfuehrung abgebrochen (Ctrl+C)!",
487 return "Unbekanner Fehler!";
489 return "Unspecified error!";
char m_shared_msg[1024]
(Shared) text buffer for non-const (generated) messages
bool setLocale(int iLang)
Sets the current locale.
void warn(int iMessageNr)
Omits a warning with the current error message.
void set_printf(int iMessageNr, const char *strId,...)
Set error message by identifier (translations available) with printf arguments.
static const char * messages_0[]
Message table for english translations (Language==0)
Global configuration settings and defaults.
const char * getLocaleMsg(int iMsgNr)
Returns the translation for a defined message.
void set_printf(const char *fmt, const char *strId,...)
Set error message by format string with arguments.
const char * STR_RESULT_TYPES[]
Text representations.
static const char * messages_1[]
Message table for german translations (Language=1)
bool isPending()
Returns true, if the current error message is still not handled.
void clear()
Reset error message.
static const char ** messages[]
Message Tables.
Helperclass for error message transport.
int getLocale()
Get current locale id.
static int Language
Number of language in use.
const char * m_err_id
Holds the error id (for MATLAB exception handling f.e., see MSG_IDS)
const char * m_static_msg
Holds pointer to static message text.
#define CONFIG_MKSQLITE_VERSION_STRING
mksqlite version string
int getMsgId()
Get the current message identifier.
int m_msgId
Message ID (see Message Identifiers)
bool m_isPending
Message has still to be handled if this flag is set.