static public BindingList<DdChangeLogExt> GetChangeLogList(
      string targetTableName, int targetTableREF, int maxCount = 1000)
    {
      try
      {
        string sqlOrder = "Id desc";
        string sqlWhere = string.Format("(Id != 1) and (FsaRevisionLogREF = 1)" +
          " and (TargetTableName = '{0}') and (TargetTableREF = '{1}')",
          targetTableName, targetTableREF);

        using (ASL.SQL.DBConnection cnx = DataStore.CloneDbConnection())
        {
          DaChangeLog daChangeLog = new DaChangeLog(cnx);
          using (SqlDataReader reader = daChangeLog.GetReader(sqlWhere, sqlOrder))
          {
            BindingList<DdChangeLogExt> list = new BindingList<DdChangeLogExt>();
            while (reader.Read() && list.Count < maxCount)
            {
              DdChangeLog dd = DaChangeLog.LoadRow(reader);
              list.Add(new DdChangeLogExt(dd));
            }
            return list;
          }
        }
      }
      catch (Exception exc)
      {
        System.Diagnostics.Debug.WriteLine(exc.ToString());
        throw;
      }
    }
    static public BindingList<DdChangeLogExt> GetChangeLogList(
      DateTime dateFrom, DateTime dateThru, bool includePreviousRevs, int maxCount = 1000)
    {
      try
      {
        string sqlOrder = "Id desc";
        string sqlWhere = string.Format("(Id != 1) and " + 
          "(Created >= '{0:MM/dd/yyyy}') and (Created <= '{1:MM/dd/yyyy}')",
          dateFrom.Date, dateThru.AddDays(1).Date);
        if (!includePreviousRevs) sqlWhere += " and (FsaRevisionLogREF = 1)";

        using (ASL.SQL.DBConnection cnx = DataStore.CloneDbConnection())
        {
          DaChangeLog daChangeLog = new DaChangeLog(cnx);
          using (SqlDataReader reader = daChangeLog.GetReader(sqlWhere, sqlOrder))
          {
            BindingList<DdChangeLogExt> list = new BindingList<DdChangeLogExt>();
            while (reader.Read() && list.Count < maxCount)
            {
              DdChangeLog dd = DaChangeLog.LoadRow(reader);
              list.Add(new DdChangeLogExt(dd));
            }
            return list;
          }
        }
      }
      catch (Exception exc)
      {
        System.Diagnostics.Debug.WriteLine(exc.ToString());
        throw;
      }
    }