فهرست منبع

Another fix for commit 5a6f783307ff48f03882076002c9195a3b4c6855

Reinier Olislagers 11 سال پیش
والد
کامیت
b0c7f93f75
1فایلهای تغییر یافته به همراه43 افزوده شده و 44 حذف شده
  1. 43 44
      comparison.pas

+ 43 - 44
comparison.pas

@@ -384,7 +384,7 @@ begin
 
     FQueryWindow.meQuery.Lines.Add('');
 
-    for x:= 1 to NumObjects do
+    for x:= 0 to NumObjects-1 do
     begin
       if (x = 1) and cxTables.Checked then // Tables
       for i:= 0 to FDBObjectsList[x].Count - 1 do
@@ -1651,7 +1651,7 @@ end;
 
 procedure TfmComparison.ScriptRemovedDBObjects;
 var
-  x: Integer;
+  ObjectType: TObjectType;
   ObjName: string;
   i: Integer;
   IsPrimary: Boolean;
@@ -1663,130 +1663,130 @@ var
 begin
   FieldsList:= TStringList.Create;
   try
-    for x:= NumObjects downto 1 do
+    for ObjectType:= high(TObjectType) downto low(TObjectType) do
     begin
-      if (x = 1) and cxTables.Checked then
+      if (ObjectType = otTables) and cxTables.Checked then
       begin
-        if FDBRemovedObjectsList[x].Count > 0 then
+        if FDBRemovedObjectsList[ord(ObjectType)].Count > 0 then
         begin
           FQueryWindow.meQuery.Lines.Add('');
           FQueryWindow.meQuery.Lines.Add('-- Removed Tables');
         end;
-        for i:= 0 to FDBRemovedObjectsList[x].Count - 1 do
+        for i:= 0 to FDBRemovedObjectsList[ord(ObjectType)].Count - 1 do
         begin
-          ObjName:= FDBRemovedObjectsList[x][i];
+          ObjName:= FDBRemovedObjectsList[ord(ObjectType)][i];
           FQueryWindow.meQuery.Lines.Add('drop table ' + ObjName + ';');
         end;
       end
       else
-      if (x = 2) and cxGenerators.Checked then
+      if (ObjectType = otGenerators) and cxGenerators.Checked then
       begin
-        if FDBRemovedObjectsList[x].Count > 0 then
+        if FDBRemovedObjectsList[ord(ObjectType)].Count > 0 then
         begin
           FQueryWindow.meQuery.Lines.Add('');
           FQueryWindow.meQuery.Lines.Add('-- Removed Generators');
         end;
-        for i:= 0 to FDBRemovedObjectsList[x].Count - 1 do
+        for i:= 0 to FDBRemovedObjectsList[ord(ObjectType)].Count - 1 do
         begin
-          ObjName:= FDBRemovedObjectsList[x][i];
+          ObjName:= FDBRemovedObjectsList[ord(ObjectType)][i];
           FQueryWindow.meQuery.Lines.Add('drop generator ' + ObjName + ';');
         end;
       end
       else
-      if (x = 3) and cxTriggers.Checked then
+      if (ObjectType = otTriggers) and cxTriggers.Checked then
       begin
-        if FDBRemovedObjectsList[x].Count > 0 then
+        if FDBRemovedObjectsList[ord(ObjectType)].Count > 0 then
         begin
           FQueryWindow.meQuery.Lines.Add('');
           FQueryWindow.meQuery.Lines.Add('-- Removed Triggers');
         end;
-        for i:= 0 to FDBRemovedObjectsList[x].Count - 1 do
+        for i:= 0 to FDBRemovedObjectsList[ord(ObjectType)].Count - 1 do
         begin
-          ObjName:= FDBRemovedObjectsList[x][i];
+          ObjName:= FDBRemovedObjectsList[ord(ObjectType)][i];
           FQueryWindow.meQuery.Lines.Add('drop trigger ' + ObjName + ';');
         end;
       end
       else
-      if (x = 4) and cxViews.Checked then
+      if (ObjectType = otViews) and cxViews.Checked then
       begin
-        if FDBRemovedObjectsList[x].Count > 0 then
+        if FDBRemovedObjectsList[ord(ObjectType)].Count > 0 then
         begin
           FQueryWindow.meQuery.Lines.Add('');
           FQueryWindow.meQuery.Lines.Add('-- Removed Views');
         end;
-        for i:= 0 to FDBRemovedObjectsList[x].Count - 1 do
+        for i:= 0 to FDBRemovedObjectsList[ord(ObjectType)].Count - 1 do
         begin
-          ObjName:= FDBRemovedObjectsList[x][i];
+          ObjName:= FDBRemovedObjectsList[ord(ObjectType)][i];
           FQueryWindow.meQuery.Lines.Add('drop view "' + ObjName + '";');
         end;
       end
       else
-      if (x = 5) and cxStoredProcs.Checked then
+      if (ObjectType = otStoredProcedures) and cxStoredProcs.Checked then
       begin
-        if FDBRemovedObjectsList[x].Count > 0 then
+        if FDBRemovedObjectsList[ord(ObjectType)].Count > 0 then
         begin
           FQueryWindow.meQuery.Lines.Add('');
           FQueryWindow.meQuery.Lines.Add('-- Removed Procedures');
         end;
-        for i:= 0 to FDBRemovedObjectsList[x].Count - 1 do
+        for i:= 0 to FDBRemovedObjectsList[ord(ObjectType)].Count - 1 do
         begin
-          ObjName:= FDBRemovedObjectsList[x][i];
+          ObjName:= FDBRemovedObjectsList[ord(ObjectType)][i];
           FQueryWindow.meQuery.Lines.Add('drop procedure ' + ObjName + ';');
         end;
       end
       else
-      if (x = 6) and cxUDFs.Checked then
+      if (ObjectType = otUDF) and cxUDFs.Checked then
       begin
-        if FDBRemovedObjectsList[x].Count > 0 then
+        if FDBRemovedObjectsList[ord(ObjectType)].Count > 0 then
         begin
           FQueryWindow.meQuery.Lines.Add('');
           FQueryWindow.meQuery.Lines.Add('-- Removed Functions (UDFs)');
         end;
-        for i:= 0 to FDBRemovedObjectsList[x].Count - 1 do
+        for i:= 0 to FDBRemovedObjectsList[ord(ObjectType)].Count - 1 do
         begin
-          ObjName:= FDBRemovedObjectsList[x][i];
+          ObjName:= FDBRemovedObjectsList[ord(ObjectType)][i];
           FQueryWindow.meQuery.Lines.Add('drop external function "' + ObjName + '";');
         end;
       end
       else
-      if (x = 8) and cxDomains.Checked then
+      if (ObjectType = otDomains) and cxDomains.Checked then
       begin
-        if FDBRemovedObjectsList[x].Count > 0 then
+        if FDBRemovedObjectsList[ord(ObjectType)].Count > 0 then
         begin
           FQueryWindow.meQuery.Lines.Add('');
           FQueryWindow.meQuery.Lines.Add('-- Removed Domains');
         end;
-        for i:= 0 to FDBRemovedObjectsList[x].Count - 1 do
+        for i:= 0 to FDBRemovedObjectsList[ord(ObjectType)].Count - 1 do
         begin
-          ObjName:= FDBRemovedObjectsList[x][i];
+          ObjName:= FDBRemovedObjectsList[ord(ObjectType)][i];
           FQueryWindow.meQuery.Lines.Add('drop domain ' + ObjName + ';');
         end;
       end
       else
-      if (x = 9) and cxRoles.Checked then
+      if (ObjectType = otRoles) and cxRoles.Checked then
       begin
-        if FDBRemovedObjectsList[x].Count > 0 then
+        if FDBRemovedObjectsList[ord(ObjectType)].Count > 0 then
         begin
           FQueryWindow.meQuery.Lines.Add('');
           FQueryWindow.meQuery.Lines.Add('-- Removed Roles');
         end;
-        for i:= 0 to FDBRemovedObjectsList[x].Count - 1 do
+        for i:= 0 to FDBRemovedObjectsList[ord(ObjectType)].Count - 1 do
         begin
-          ObjName:= FDBRemovedObjectsList[x][i];
+          ObjName:= FDBRemovedObjectsList[ord(ObjectType)][i];
           FQueryWindow.meQuery.Lines.Add('drop role ' + ObjName + ';');
         end;
       end
       else
-      if (x = 12) and cxTables.Checked then // Indices are linked to tables
+      if (ObjectType = otIndexes) and cxTables.Checked then // Indices are linked to tables
       begin
-        if FDBRemovedObjectsList[x].Count > 0 then
+        if FDBRemovedObjectsList[ord(ObjectType)].Count > 0 then
         begin
           FQueryWindow.meQuery.Lines.Add('');
           FQueryWindow.meQuery.Lines.Add('-- Removed Indices');
         end;
-        for i:= 0 to FDBRemovedObjectsList[x].Count - 1 do
+        for i:= 0 to FDBRemovedObjectsList[ord(ObjectType)].Count - 1 do
         begin
-          ObjName:= FDBRemovedObjectsList[x][i];
+          ObjName:= FDBRemovedObjectsList[ord(ObjectType)][i];
           TableName:= Copy(ObjName, 1, Pos(',', ObjName) - 1);
           System.Delete(ObjName, 1, Pos(',', ObjName));
           IndexName:= ObjName;
@@ -1799,16 +1799,16 @@ begin
         end;
       end
       else
-      if (x = 13) and cxTables.Checked then // Constraints are linked to tables
+      if (ObjectType = otConstraints) and cxTables.Checked then // Constraints are linked to tables
       begin
-        if FDBRemovedObjectsList[x].Count > 0 then
+        if FDBRemovedObjectsList[ord(ObjectType)].Count > 0 then
         begin
           FQueryWindow.meQuery.Lines.Add('');
           FQueryWindow.meQuery.Lines.Add('-- Removed Constraints');
         end;
-        for i:= 0 to FDBRemovedObjectsList[x].Count - 1 do
+        for i:= 0 to FDBRemovedObjectsList[ord(ObjectType)].Count - 1 do
         begin
-          ObjName:= FDBRemovedObjectsList[x][i];
+          ObjName:= FDBRemovedObjectsList[ord(ObjectType)][i];
           TableName:= Copy(ObjName, 1, Pos(',', ObjName) - 1);
           System.Delete(ObjName, 1, Pos(',', ObjName));
           ConstraintName:= ObjName;
@@ -2003,7 +2003,6 @@ begin
           meLog.Lines.Add(' ' + List[j]);
           Inc(FDiffCount);
         end;
-
       end;
     except
       on e: exception do