Ejemplo n.º 1
0
 public static void FixTreeAuditValueFKeyErrors(Datastore db)
 {
     if (db.HasForeignKeyErrors("TreeDefaultValueTreeAuditValue"))
     {
         db.BeginTransaction();
         try
         {
             db.Execute("DELETE FROM TreeDefaultValueTreeAuditValue WHERE TreeDefaultValue_CN NOT IN (Select TreeDefaultValue_CN FROM TreeDefaultValue);");
             db.Execute("DELETE FROM TreeDefaultValueTreeAuditValue WHERE TreeAuditValue_CN NOT IN (SELECT TreeAuditValue_CN FROM TreeAuditValue);");
             db.CommitTransaction();
         }
         catch
         {
             db.RollbackTransaction();
         }
     }
 }
Ejemplo n.º 2
0
        public static void RecursiveDeleteStratum(StratumDO stratum)
        {
            Datastore db = stratum.DAL;

            db.BeginTransaction();
            try
            {
                string command =
                    String.Format(@"DELETE From CuttingUnitStratum WHERE Stratum_CN = {0};
DELETE FROM Log WHERE Tree_CN IN (SELECT Tree_CN FROM Tree WHERE Tree.Stratum_CN = {0});
DELETE FROM LogStock WHERE Tree_CN IN (SELECT Tree_CN FROM Tree WHERE Tree.Stratum_CN = {0});
DELETE FROM TreeCalculatedValues WHERE Tree_CN IN (SELECT Tree_CN FROM Tree WHERE Tree.Stratum_CN = {0});
DELETE FROM Tree WHERE Stratum_CN = {0};
DELETE FROM Plot WHERE Stratum_CN = {0};
DELETE FROM TreeEstimate WHERE CountTree_CN IN (SELECT CountTree_CN FROM CountTree JOIN SampleGroup USING (SampleGroup_CN) WHERE Stratum_CN = {0});
DELETE FROM CountTree WHERE SampleGroup_CN IN (SELECT SampleGroup_CN FROM SampleGroup WHERE SampleGroup.Stratum_CN = {0});
DELETE FROM SampleGroupTreeDefaultValue WHERE SampleGroup_CN IN (SELECT SampleGroup_CN FROM SampleGroup WHERE SampleGroup.Stratum_CN = {0});
DELETE FROM SamplerState WHERE SampleGroup_CN IN (SELECT SampleGroup_CN FROM SampleGroup WHERE SampleGroup.Stratum_CN = {0});
DELETE FROM SampleGroup WHERE Stratum_CN = {0};
DELETE FROM TreeFieldSetup WHERE Stratum_CN = {0};
DELETE FROM LogFieldSetup WHERE Stratum_CN = {0};
DELETE FROM FixCNTTallyPopulation WHERE FixCNTTallyClass_CN IN (SELECT FixCNTtallyClass_CN FROM FixCNTTallyClass WHERE Stratum_CN = {0});
DELETE FROM FixCNTTallyClass WHERE Stratum_CN = {0};
DELETE FROM SampleGroupStatsTreeDefaultValue WHERE SampleGroupStats_CN IN 
    (SELECT SampleGroupStats_CN FROM SampleGroupStats AS sgs 
        JOIN StratumStats AS ss USING (StratumStats_CN) WHERE Stratum_CN = {0});
DELETE FROM SampleGroupStats WHERE StratumStats_CN IN 
    (SELECT StratumStats_CN FROM StratumStats WHERE Stratum_CN = {0});
DELETE FROM StratumStats WHERE Stratum_CN = {0};",
                                  stratum.Stratum_CN);
                db.Execute(command);
                stratum.Delete();
                db.CommitTransaction();
            }
            catch (Exception e)
            {
                db.RollbackTransaction();
                throw e;
            }
        }