浏览代码

* Better support for required in the case of "not null", default value or auto increment colomns
Patch for mysql and odbc, mantis #20429. Related to still open postgres bugreport #19872

git-svn-id: trunk@19466 -

marco 14 年之前
父节点
当前提交
eea81b4ef4
共有 2 个文件被更改,包括 4 次插入2 次删除
  1. 3 1
      packages/fcl-db/src/sqldb/mysql/mysqlconn.inc
  2. 1 1
      packages/fcl-db/src/sqldb/odbc/odbcconn.pas

+ 3 - 1
packages/fcl-db/src/sqldb/mysql/mysqlconn.inc

@@ -666,7 +666,9 @@ begin
 
     if MySQLDataType(field, DFT, DFS) then
       begin
-      TFieldDef.Create(FieldDefs, FieldDefs.MakeNameUnique(field^.name), DFT, DFS, False, TF);
+      TFieldDef.Create(FieldDefs, FieldDefs.MakeNameUnique(field^.name), DFT, DFS,
+                       (field^.flags and (AUTO_INCREMENT_FLAG or NOT_NULL_FLAG {$IFDEF MYSQL50_UP}or NO_DEFAULT_VALUE_FLAG{$ENDIF})) = (NOT_NULL_FLAG {$IFDEF MYSQL50_UP}or NO_DEFAULT_VALUE_FLAG{$ENDIF}),
+                       TF);
       c.MapDSRowToMSQLRow[TF-1] := I;
       inc(TF);
       end

+ 1 - 1
packages/fcl-db/src/sqldb/odbc/odbcconn.pas

@@ -1173,7 +1173,7 @@ begin
     end;
 
     // add FieldDef
-    TFieldDef.Create(FieldDefs, FieldDefs.MakeNameUnique(ColName), FieldType, FieldSize, False, i);
+    TFieldDef.Create(FieldDefs, FieldDefs.MakeNameUnique(ColName), FieldType, FieldSize, (Nullable=SQL_NO_NULLS) and (FieldType<>ftAutoInc), i);
   end;
 end;