/// <summary> /// Erzeugt eine Abfrage, welche über Linq angesteuert werden kann. /// </summary> /// <param name="db">Datenbanknummer</param> /// <param name="groups">Gruppennummern</param> /// <param name="fields">Feldnamen</param> /// <returns></returns> public QueryProxy <Record> Get(int db, int[] groups, params string[] fields) { FieldList list = new FieldList(); foreach (string f in fields) { list.Add(f); } return(Get(db, groups, list)); }
private void ReadMetaData() { // RDP mit unterschiedlichen Variablentabellen wird aktuell nicht untersützt if (data.Count > 0) { throw new NotSupportedException("Server responds with meta data after sending data commands. Subsequent changes of field lists are not yet supported."); } MetaDataTypeHelper.TryParse(currentCmd[CommandFields.Responses.DM.MetaDataType], out MetaDataType type); // neue nicht untersützte Metadaten ignorieren if (type == MetaDataType.Undefined) { return; } if (fields == null) { fields = new FieldList(); } for (int i = 1; i < currentCmd.Fields.Length; i++) { string value = currentCmd[i]; // die erste Angabe in den Metadaten ist der Typ und wird hier übersprungen, die Feldliste beginnt aber bei 0 int fieldIdx = i - 1; if (type == MetaDataType.Name && !fields.Contains(value)) { fields.Add(new Field(value)); } else if (fieldIdx < fields.Count) { // Die Metadaten kommen ohne Bezug zu den Feldnamen aber immer in der gleichen Reihenfolge Field f = fields[fieldIdx]; f.SetMetaData(type, value); } } }