From 079d38d9007079e4b0c8c4f18d04bcf1cb6b7ff2 Mon Sep 17 00:00:00 2001 From: Simone Palacino Date: Tue, 23 Jun 2020 16:12:07 +0200 Subject: [PATCH] Patch level : 12.0 972 Files correlati : ba8.exe f90.exe Commento : Corretta classe record sqlite: i datatype erano sempre sbagliati perche' presi dalla prima riga del set e quasi sempre i campi erano considerati real per i TVariant solitamente dovuto a un guessing di campi vuoti. --- src/include/sqlset.cpp | 52 +++++++++++++++++++++--------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/src/include/sqlset.cpp b/src/include/sqlset.cpp index 82d20e79b..185a69195 100755 --- a/src/include/sqlset.cpp +++ b/src/include/sqlset.cpp @@ -453,32 +453,32 @@ int TSQL_recordset::on_get_items(int argc, char** values, char** columns) _column.add(info); } } - //if (_items < _pagesize) - //{ - // // Aggiusta le lunghezze dei campi testo e numerici - // for (int i = 0; i < argc; i++) if (values[i] && *values[i]) - // { - // TRecordset_column_info& info = (TRecordset_column_info&)_column[i]; - // if (info._type == _alfafld || info._type == _realfld) - // { - // const int len = strlen(values[i]); - // if (len > info._width) - // { - // info._width = len; - // if (info._type == _alfafld) - // { - // if (len == 8 && atol(values[i]) > 19000000) - // { - // info._type = _datefld; - // info._width = 10; - // } else - // if (real::is_real(values[i])) - // info._type = _realfld; - // } - // } - // } - // } - //} + if (_items < _pagesize) + { + // Aggiusta le lunghezze dei campi testo e numerici + for (int i = 0; i < argc; i++) if (values[i] && *values[i]) + { + TRecordset_column_info& info = (TRecordset_column_info&)_column[i]; + if (info._type == _alfafld || info._type == _realfld) + { + const int len = strlen(values[i]); + if (len > info._width) + { + info._width = len; + if (info._type == _alfafld) + { + if (len == 8 && atol(values[i]) > 19000000) + { + info._type = _datefld; + info._width = 10; + }/* else + if (real::is_real(values[i])) + info._type = _realfld;*/ + } + } + } + } + } _items++; return SQLITE_OK;