/*********************************************************************/
        /// <summary>
        /// Ließt alle Einträge der Tabelle aus und gibt diese zurück
        /// !!Zurzeit TestDATA!!!
        /// </summary>
        /// <returns>Liste mit allen Tabelleneinträgen</returns>
        public CTableEntryList getAllEntries()
        {
            CTableEntryList entryList = new CTableEntryList();

            #region Engin Test

            /*// Fake Daten um die GUI provisorisch zu testen //
             * // BEGIN //
             * //Attributetypen erstellen
             * //CAttributeType attribute1 = new CAttributeType("erstesAttribute", E_DATATYPE.E_STRING, false);
             * //CAttributeType attribute2 = new CAttributeType("2tes Attribute", E_DATATYPE.E_FLOAT, true);
             *
             * CAttributeType attribute1 = new CAttributeType(CTableConstants.ATTR_X + "1");
             * CAttributeType attribute2 = new CAttributeType(CTableConstants.ATTR_X + "2");
             * attribute1.setUsed("erstesAttribute", E_DATATYPE.E_STRING, false);
             * attribute2.setUsed("2tes Attribute", E_DATATYPE.E_FLOAT, true);
             *
             * //AttributeValues erstellen
             *
             * CAttributeValue value1 = new CAttributeValue(attribute1, "index", "value");
             * CAttributeValue value2 = new CAttributeValue(attribute2, "index2", "1.2");
             *
             * //Entry erstellen
             *
             * CTableEntry entry1 = new CTableEntry("1");
             * entry1.addValue(value1);
             * entry1.addValue(value2);
             *
             * CTableEntry entry2 = new CTableEntry("2");
             * entry2.addValue(value1);
             * entry2.addValue(value2);
             *
             *
             * //EntryList erstellen
             *
             * entryList.Add(entry1);
             * entryList.Add(entry2);
             *
             * return entryList;
             * //**ENDE**/
            #endregion

            string sSQLCommand = "SELECT * FROM " + CTableConstants.TABLE_ATTRIBUTES;

            SQLiteDataReader reader;
            if (mConnection.sqlRequestStatement(sSQLCommand, out reader) == true)
            {
                CTableEntry tableEntry;
                while (getNextTableEntry(reader, out tableEntry) == true)
                {
                    entryList.Add(tableEntry);
                }
                closeReader(reader);
            }

            return(entryList);
        }
        /*********************************************************************/
        /// <summary>
        /// gibt ein Liste mit Datensätzen zurück die von dem übergebenen
        /// Knoten repräsentiert werden.
        /// </summary>
        /// <param name="vertexToIdentify">Knoten der Identifiziert werden
        /// soll</param>
        /// <returns>Liste mit Datensätzen des Knotens</returns>
        public CTableEntryList getFilteredTableData(CTreeVertex vertexToIdentify)
        {
            if (vertexToIdentify == null)
            {
                return(null);
            }

            // sollte der Knoten kein Parent-Knoten haben (Root-Knoten) geben
            // wir alle Einträge zurück
            if (vertexToIdentify.ParentVertex == null)
            {
                return(getAllEntries());
            }


            string sSqlCommand = "SELECT * FROM " + CTableConstants.TABLE_ATTRIBUTES + " WHERE ";

            // Den SQL-Befehl um die Filter erweitert. Dabei wird vom zu übergebenen Knoten
            while (vertexToIdentify.ParentVertex != null)
            {
                CTreeVertex parent     = vertexToIdentify.ParentVertex;
                CTreeEdge   parentEdge = vertexToIdentify.ParentEdge;

                sSqlCommand += parent.AttributeType.InternalName;
                sSqlCommand += "=";
                sSqlCommand += "'" + parentEdge.EdgeValue + "'";


                // den Nächsten Knotne auswählen
                vertexToIdentify = parent;
                if (vertexToIdentify.ParentVertex != null)
                {
                    sSqlCommand += " AND ";
                }
            }

            SQLiteDataReader reader;
            CTableEntryList  entryList = new CTableEntryList();

            if (mConnection.sqlRequestStatement(sSqlCommand, out reader) == true)
            {
                CTableEntry tableEntry;
                while (getNextTableEntry(reader, out tableEntry) == true)
                {
                    entryList.Add(tableEntry);
                }
                closeReader(reader);
            }

            return(entryList);
        }