lang/seed7: update to 05_20190107
20190107:
- A chapter about the handling of errors in interpreter and run-time library has been added to the manual.
- The new database driver sql_fire.c has been added. This driver provides database access functions for Firebird/InterBase.
- The database drivers sql_lite.c, sql_my.c, sql_odbc.c and sql_post.c have been improved to check that all parameters of a prepared statement are bound. This check takes place when a prepared statement is executed.
- The bind functions in sql_lite.c and sql_my.c have been improved to check, that a parameter with the given index exists.
- The bind functions of sql_my.c and sql_odbc.c have been improved to allow that the same parameter can be bound again with a different bind function (e.g. as integer instead of a bigInteger).
- The database driver sql_lite.c has been improved:
- The function sqlBindBigRat has been improved to convert a bigRational to a double via the decimal representation.
- The functions sqlColumnBigInt and sqlColumnInt have been improved to accept blob values with a decimal content that ends with ".0".
- The function sqlColumnFloat has been improved to accept integer values.
- The function sqlExecute has been improved to reset a prepared statement, when necessary.
- The database driver sql_my.c has been improved:
- Medium and large blobs are supported now.
- The function sqlColumnStri() has been improved to read BLOB data.
- The function processEscapesInStatement() has been introduced. This function assures that string literals in prepared statements do not allow backslash escape sequences (e.g. \n or \t). This way a backslash in a SQL statement has no special meaning (like it is common practice in all other SQL databases).
- The function sqlExecute() has been improved to call mysql_stmt_store_result(). This way the complete result set is buffered on the client. Doing so avoids the "Commands out of sync" error (e.g. which is triggered (without mysql_stmt_store_result()), when a new statement is prepared before all data of an old statement is fetched).
- The function resizeBindArray() has been removed.
- The database driver sql_odbc.c has been improved:
- The function SQLGetTypeInfo is used to determine if the driver supports the type SQL_WCHAR.
- It is recognized when the function SQLDescribeParam() is missing and reasonable default values are used instead.
- The function SQLFreeStmt() is used now without the precondition fetchOkay or fetchFinished.
- The function setupParameterColumn has been introduced. This function allocates memory for parameter buffers.
- One call of SQLDescribeCol() is used to determine the properties of result columns instead of many calls of SQLColAttribute().
- Blob result data is now recognized by data type (SQL_LONGVARCHAR, SQL_WLONGVARCHAR or SQL_LONGVARBINARY) instead of data length.
- The bind functions have been improved to use a switch depending on the data type.
- Calls of SQLBindParameter() have been changed to use parameters determined with SQLDescribeParam().
- At several places switch statements depending on the c_type are used.
- The function sqlColumnDuration has been improved to accept a duration in a VARCHAR field.
- Experimental code to search for an ODBC driver has been added (but it is deactivated for now).
- The database driver sql_post.c has been improved:
- The function setupParameterColumn() has been introduced. This function allocates memory for parameter buffers. The buffers are part of the bindDataRecord.
- The conversion of the internal NUMERIC representation to integer, float, bigInteger and bigRational values has been improved. Now sqlColumnInt() and sqlColumnFloat() can also read NUMERIC data.
- The functions getNumericAsCStri(), getNumericAsStri(), getNumericAsInt(), getNumericAsBigInt(), getNumericAsBigRat() and getNumericAsFloat() have been added.
- The function sqlColumnStri() has been improved to read BLOB data.
- The memory management has been improved to recogize out of memory situations reliable.
- The handling of exceptions has been improved.
- The function literal() has been added to bigint.s7i, bigrat.s7i, boolean.s7i, bstring.s7i, duration.s7i and time.s7i.
- The function integer (it converts a bigInteger to an integer) has been added to bigint.s7i.
- The function string (it converts a bstring to a string) has been added to bstring.s7i.
- The example program chkdb.sd7 has been improved to test the functionality of a database with much more detail. Chkdb.sd7 now supports parameters to specify the database to be checked.
- The programs sql7.sd7 and db7.sd7 has been improved to support Firebird/Interbase databases.
- The tests of shift operators have been improved in chkbig.sd7.
- The program chkccomp.c has been improved to determine the settings for directory access and for the database driver sql_fire.c.
- An #if instruction has been added to dir_win.c, soc_none.c and soc_rtl.c, such that the object file can always be linked.
- The function stri_to_cstri8_buf() has been changed to work without err_info parameter.
- Experimental code, to avoid the gmp error "overflow in mpz type" for shift operations, has been added to big_gmp.c.
- In big_rtl.c, big_gmp.c and big_drv.h the functions bigToInt16(), bigToInt32() and bigToInt64() have been changed to have the additional parameter err_info.
- The function setupBig() has been added to big_rtl.c and big_gmp.c. Additionally interpreter and compiler have been improved to call setupBig().
- Documentation comments have been improved in integer.s7i, sql_base.s7i, big_gmp.c, big_rtl.c, sql_rtl.c, intlib.c, int_rtl.c and striutl.c
- The file soc_dos.c has been renamed to soc_none.c.