summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoost <joost@3ad0048d-3df7-0310-abae-a5850022a9f2>2011-01-30 21:05:56 +0000
committerjoost <joost@3ad0048d-3df7-0310-abae-a5850022a9f2>2011-01-30 21:05:56 +0000
commit14d107d209eb81411fbff8a411c97442b22f70df (patch)
tree6837b3f889aa81a6ded7a56607a1d7dd8be27858
parent87b0680dc045e902770277db318495fd6cdb76f9 (diff)
downloadfpc-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
-rw-r--r--packages/fcl-db/src/sqldb/sqlite/sqlite3conn.pp13
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