コード例 #1
0
ファイル: Config_OptionTree.cs プロジェクト: d3x0r/xperdex
        // Add JMU
        /// <summary>
        /// Recursive Look for the value the last Node. Does NOT change the database.
        /// </summary>
        /// <param name="Parent_node_id"></param>
        /// <param name="p_Path"></param>
        /// <returns>The value of the Option searched for</returns>
        private string recursiveValueOptionTree(int Parent_node_id, string p_Path)
        {
            string       path1, path2, sql, value;
            int          DelimeterSize, parent_id;
            DbDataReader OptionReader;

            DelimeterSize = p_Path.IndexOf("/");
            if (DelimeterSize == -1)
            {
                #region Search for value
                sql = " Select value.string " +
                      " FROM option_map map, option_name name, option_values value " +
                      " WHERE map.parent_node_id = " + Parent_node_id +
                      " AND   map.name_id = name.name_id " +
                      " AND   name.name = '" + p_Path + "'" +
                      " AND   map.value_id = value.value_id ";
                OptionReader = _dsn.KindExecuteReader(sql);
                if (!(OptionReader.HasRows))
                {
                    value = null;
                }
                else
                {
                    value = OptionReader.GetString(OptionReader.GetOrdinal("string"));
                }
                OptionReader.Close();
                OptionReader = null;
                return(value);

                #endregion
            }
            else
            {
                #region Search Recursive ChildNode
                path1 = p_Path.Substring(0, DelimeterSize);
                path2 = p_Path.Substring(DelimeterSize + 1);

                sql = " Select map.node_id " +
                      " FROM option_map map, option_name name " +
                      " WHERE map.parent_node_id = " + Parent_node_id +
                      " AND   map.name_id = name.name_id " +
                      " AND   name.name = '" + path1 + "'";
                OptionReader = _dsn.KindExecuteReader(sql);
                if (!(OptionReader.HasRows))
                {
                    OptionReader.Close();
                    OptionReader = null;
                    return(null);
                }
                else
                {
                    parent_id = OptionReader.GetInt32(OptionReader.GetOrdinal("node_id"));
                    OptionReader.Close();
                    OptionReader = null;
                    return(recursiveValueOptionTree(parent_id, path2));
                }
                #endregion
            }
        }
コード例 #2
0
ファイル: Config_OptionTree.cs プロジェクト: d3x0r/xperdex
        // Add JMU
        /// <summary>
        /// Recursive Look for the value the last Node. Make Changes in the database.
        /// </summary>
        /// <param name="Parent_node_id"></param>
        /// <param name="p_Path"></param>
        /// <returns>The value of the Option searched for</returns>
        private string recursiveSetValueOptionTree(int Parent_node_id, string p_Path, string Default_value, string Default_Description)
        {
            string       path1, path2, sql, value;
            int          DelimeterSize, parent_id;
            DbDataReader OptionReader;

            DelimeterSize = p_Path.IndexOf("/");
            if (DelimeterSize == -1)
            {
                #region Search for value
                sql = " Select value.value_id " +
                      " FROM option_map map, option_name name, option_values value " +
                      " WHERE map.parent_node_id = " + Parent_node_id +
                      " AND   map.name_id = name.name_id " +
                      " AND   name.name = '" + p_Path + "'" +
                      " AND   map.value_id = value.value_id ";

                OptionReader = _dsn.KindExecuteReader(sql);
                if (!(OptionReader.HasRows))
                {
                    OptionReader.Close();
                    OptionReader = null;
                    int name_id  = GetNameID(p_Path);
                    int value_id = InsertValue(Default_value);
                    InsertOptionNode(Parent_node_id, name_id, Default_Description, value_id);
                    value = Default_value;
                }
                else
                {
                    value = OptionReader.GetString(OptionReader.GetOrdinal("value_id"));
                    OptionReader.Close();
                    OptionReader = null;

                    sql = " UPDATE option_values " +
                          " SET string = '" + Default_value + "' " +
                          " WHERE value_id = " + value;

                    _dsn.KindExecuteNonQuery(sql);
                }

                return(value);

                #endregion
            }
            else
            {
                #region Search Recursive ChildNode
                path1 = p_Path.Substring(0, DelimeterSize);
                path2 = p_Path.Substring(DelimeterSize + 1);

                sql = " Select map.node_id " +
                      " FROM option_map map, option_name name " +
                      " WHERE map.parent_node_id = " + Parent_node_id +
                      " AND   map.name_id = name.name_id " +
                      " AND   name.name = '" + path1 + "'";
                OptionReader = _dsn.KindExecuteReader(sql);
                if (!(OptionReader.HasRows))
                {
                    OptionReader.Close();
                    OptionReader = null;
                    int name_id = GetNameID(path1);
                    int node_id = InsertOptionNode(Parent_node_id, name_id, "", 0);
                    return(recursiveSetValueOptionTree(node_id, path2, Default_value, Default_Description));
                }
                else
                {
                    parent_id = OptionReader.GetInt32(OptionReader.GetOrdinal("node_id"));
                    OptionReader.Close();
                    OptionReader = null;
                    return(recursiveSetValueOptionTree(parent_id, path2, Default_value, Default_Description));
                }
                #endregion
            }
        }