Browse Source

+ patch from Bram Kuijvenhoven:
- timestamp fields map now to ftDateTime
- limited field Size for TStringField to db.bsMaxStringSize

git-svn-id: trunk@1980 -

joost 19 years ago
parent
commit
9605dde4cf
1 changed files with 7 additions and 1 deletions
  1. 7 1
      fcl/db/sqldb/odbc/odbcconn.pas

+ 7 - 1
fcl/db/sqldb/odbc/odbcconn.pas

@@ -687,7 +687,7 @@ begin
       SQL_LONGVARBINARY: begin FieldType:=ftBlob;       FieldSize:=ColumnSize; end;
       SQL_TYPE_DATE:     begin FieldType:=ftDate;       FieldSize:=0; end;
       SQL_TYPE_TIME:     begin FieldType:=ftTime;       FieldSize:=0; end;
-      SQL_TYPE_TIMESTAMP:begin FieldType:=ftTimeStamp;  FieldSize:=0; end;
+      SQL_TYPE_TIMESTAMP:begin FieldType:=ftDateTime;   FieldSize:=0; end;
 {      SQL_TYPE_UTCDATETIME:FieldType:=ftUnknown;}
 {      SQL_TYPE_UTCTIME:   FieldType:=ftUnknown; }
 {      SQL_INTERVAL_MONTH:           FieldType:=ftUnknown;}
@@ -707,6 +707,12 @@ begin
     else
       begin FieldType:=ftUnknown; FieldSize:=ColumnSize; end
     end;
+    
+    if (FieldType in [ftString,ftFixedChar]) and // field types mapped to TStringField
+       (FieldSize >= dsMaxStringSize) then
+    begin
+      FieldSize:=dsMaxStringSize-1;
+    end;
 
     // add FieldDef
     TFieldDef.Create(FieldDefs, ColName, FieldType, FieldSize, False, i);