Quellcode durchsuchen

Database comparison: get rid of false positive modified field when using domain field types. Harmonize capitalization.

Reinier Olislagers vor 11 Jahren
Ursprung
Commit
5eb3caa30f
2 geänderte Dateien mit 9 neuen und 5 gelöschten Zeilen
  1. 4 3
      comparison.pas
  2. 5 2
      systables.pas

+ 4 - 3
comparison.pas

@@ -538,6 +538,7 @@ begin
       for i:= 0 to FDBObjectsList[ord(ObjectType)].Count - 1 do
       begin
         ScriptList.Clear;
+        FQueryWindow.meQuery.Lines.Add('-- CREATE OR ALTER EXCEPTION supported since Firebird 2.0');
         if (dmSysTables.GetExceptionInfo(FDBIndex, FDBObjectsList[ord(ObjectType)].Strings[i],
           ExceptionMesage, ExceptionDescription, ExceptionSQL, true)) then
           FQueryWindow.meQuery.Lines.Add(ExceptionSQL)
@@ -794,7 +795,7 @@ var
   NotNull, CNotNull: Boolean;
 begin
   meLog.Lines.Add('');
-  meLog.Lines.Add('Modified fields');
+  meLog.Lines.Add('Modified Fields');
   FModifiedFieldsList.Clear;
 
   for i:= 0 to FExistFieldsList.Count - 1 do
@@ -1113,7 +1114,7 @@ var
   DomainSize, CDomainSize: Integer;
 begin
   meLog.Lines.Add('');
-  meLog.Lines.Add('Modified domains');
+  meLog.Lines.Add('Modified Domains');
   FModifiedDomainsList.Clear;
 
   for i:= 0 to FDBExistingObjectsList[ord(otDomains)].Count - 1 do
@@ -1372,7 +1373,7 @@ begin
     if FModifiedFieldsList.Count > 0 then
     begin
       FQueryWindow.meQuery.Lines.Add('');
-      FQueryWindow.meQuery.Lines.Add('-- Modified fields');
+      FQueryWindow.meQuery.Lines.Add('-- Modified Fields');
     end;
 
     for i:= 0 to FModifiedFieldsList.Count - 1 do

+ 5 - 2
systables.pas

@@ -84,6 +84,7 @@ type
     function GetDefaultTypeSize(dbIndex: Integer; TypeName: string): Integer;
     function GetDomainTypeSize(dbIndex: Integer; DomainTypeName: string): Integer;
 
+    // Gets details of field for given database/table/field
     function GetFieldInfo(dbIndex: Integer; TableName, FieldName: string;
       var FieldType: string;
       var FieldSize: integer; var FieldScale: integer;
@@ -978,9 +979,11 @@ begin
       begin
         // Field is based on a domain
         FieldType:= trim(FieldByName('field_source').AsString);
+        // Reset other value to avoid strange values
+        FieldSize:= 0;
       end;
-      FieldScale:=FieldByName('field_scale').AsInteger;
-      NotNull:= FieldByName('field_not_null_constraint').AsString = '1';
+      FieldScale:= FieldByName('field_scale').AsInteger;
+      NotNull:= (FieldByName('field_not_null_constraint').AsString = '1');
       Collation:= trim(FieldByName('field_collation').AsString);
       CharacterSet:= trim(FieldByName('field_charset').AsString);
       // Note: no trim here - defaultvalue could be an empty string