예제 #1
0
        /// <summary>
        /// Enumerate indexes info
        /// </summary>
        /// <param name="tableName">Table name</param>
        /// <returns>Indexes info list</returns>
        public VDBIndexInfo[] EnumIndexes(string tableName)
        {
            int indexesCount, position;

            VDBIndexInfo[] indexes;

            if (!FindTable(tableName))
            {
                return(null);
            }

            position = this.position;

            try
            {
                FindIndexSection();
                GetInteger();
                indexesCount = GetInteger();
                indexes      = new VDBIndexInfo[indexesCount];

                for (int i = 0; i < indexesCount; i++)
                {
                    indexes[i].Name       = GetString();
                    indexes[i].Standard   = GetBool();
                    indexes[i].Fields     = GetString();
                    indexes[i].Unique     = GetBool();
                    indexes[i].PrimaryKey = GetBool();
                    indexes[i].Desc       = GetBool();
                    indexes[i].CaseSens   = GetBool();
                    indexes[i].Condition  = GetString();
                    indexes[i].FTS        = GetBool();
                    indexes[i].Locale     = GetInteger();
                }
            }
            finally
            {
                this.position = position;
            }

            return(indexes);
        }
예제 #2
0
		/// <summary>
		/// Enumerate indexes info
		/// </summary>
		/// <param name="tableName">Table name</param>
		/// <returns>Indexes info list</returns>
		public VDBIndexInfo[] EnumIndexes(string tableName)
		{
			int indexesCount, position;
			VDBIndexInfo[] indexes;

			if(!FindTable(tableName))
				return null;

			position = this.position;

			try
			{
				FindIndexSection();
				GetInteger();
				indexesCount = GetInteger();
				indexes      = new VDBIndexInfo[indexesCount];

				for(int i = 0; i < indexesCount; i++)
				{
					indexes[i].Name       = GetString();
					indexes[i].Standard   = GetBool();
					indexes[i].Fields     = GetString();
					indexes[i].Unique     = GetBool();
					indexes[i].PrimaryKey = GetBool();
					indexes[i].Desc       = GetBool();
					indexes[i].CaseSens   = GetBool();
					indexes[i].Condition  = GetString();
					indexes[i].FTS        = GetBool();
					indexes[i].Locale     = GetInteger();
				}
			}
			finally
			{
				this.position = position;
			}

			return indexes;
		}