Beispiel #1
0
        private void ReportUsageAdvisorWarnings(int statementId, ResultSet rs)
        {
            if (!Settings.UseUsageAdvisor) return;

              // report not all fields accessed
              if (!AllFieldsAccessed(rs))
              {
            StringBuilder notAccessed = new StringBuilder("");
            string delimiter = "";
            for (int i = 0; i < rs.Size; i++)
              if (!rs.FieldRead(i))
              {
            notAccessed.AppendFormat("{0}{1}", delimiter, rs.Fields[i].ColumnName);
            delimiter = ",";
              }
              }

              // report type conversions if any
              if (rs.Fields != null)
              {
            foreach (MySqlField f in rs.Fields)
            {
              StringBuilder s = new StringBuilder();
              string delimiter = "";
              foreach (Type t in f.TypeConversions)
              {
            s.AppendFormat("{0}{1}", delimiter, t.Name);
            delimiter = ",";
              }
            }
              }
        }
Beispiel #2
0
        private bool AllFieldsAccessed(ResultSet rs)
        {
            if (rs.Fields == null || rs.Fields.Length == 0) return true;

              for (int i = 0; i < rs.Fields.Length; i++)
            if (!rs.FieldRead(i)) return false;
              return true;
        }