diff options
| author | joost <joost@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2011-01-30 21:05:56 +0000 |
|---|---|---|
| committer | joost <joost@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2011-01-30 21:05:56 +0000 |
| commit | 14d107d209eb81411fbff8a411c97442b22f70df (patch) | |
| tree | 6837b3f889aa81a6ded7a56607a1d7dd8be27858 /packages/fcl-db | |
| parent | 87b0680dc045e902770277db318495fd6cdb76f9 (diff) | |
| download | fpc-14d107d209eb81411fbff8a411c97442b22f70df.tar.gz | |
* Patch from Ladislav Karrach to use a field's type-affinity to determine the fieldtype. (Fixes aggregate test)
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16857 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages/fcl-db')
| -rw-r--r-- | packages/fcl-db/src/sqldb/sqlite/sqlite3conn.pp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/packages/fcl-db/src/sqldb/sqlite/sqlite3conn.pp b/packages/fcl-db/src/sqldb/sqlite/sqlite3conn.pp index 0804004995..9aa6ea13ba 100644 --- a/packages/fcl-db/src/sqldb/sqlite/sqlite3conn.pp +++ b/packages/fcl-db/src/sqldb/sqlite/sqlite3conn.pp @@ -364,9 +364,16 @@ begin ft1:=FieldMap[fi].t; break; end; - // Empty field types are allowed and used in calculated columns (aggregates) - // and by pragma-statements - if FD='' then ft1 := ftString; + // In case of an empty fieldtype (FD='', which is allowed and used in calculated + // columns (aggregates) and by pragma-statements) or an unknown fieldtype, + // use the field's affinity: + if ft1=ftUnknown then + case TStorageType(sqlite3_column_type(st,i)) of + stInteger: ft1:=ftLargeInt; + stFloat: ft1:=ftFloat; + stBlob: ft1:=ftBlob; + else ft1:=ftString; + end; // handle some specials. size1:=0; case ft1 of |
