fixes in SqlOdbc/3
|Assignee:||J. Templ||% Done:|
The modules SqlOdbc and SqlOdbc3 need fixes for 16-bit Unicode
strings and for a deadlock that can appear in ReadString
when reading truncated strings and in ReadVarString and ReadBlob when reading multiple parts of a column.
A proposal for some of the fixes exists in CPC 1.7 rc5.
Reported by Eugene Temirgaleev, 2010-06-22, and Josef Templ, 2008-08-04.
Refers to CPC 1.7 rc5 change list number 23.
Refers to OberonCore B6, B10 & Open Points 36.
ODBC deadlock resolved. Refs: #49.
When reading multiple parts of a column (ReadVarString, ReadBlob),
any DB operation must be suppressed until the column has been read completely.
Calling NEW in between can invoke the garbage collector, which in turn can finalize unused tables. Finalization of tables has therefore been delayed by using an action.
Plus one trivial Optimization: empty and NULL VARCHAR strings reuse a common string object.
Signed-off-by: Josef Templ <email@example.com>