Example #1
0
        /// <summary>
        /// Enumerate relationships info
        /// </summary>
        /// <param name="tableName">Table name</param>
        /// <returns>Relationships info list</returns>
        public VDBRelationshipInfo[] EnumRelationships(string tableName)
        {
            int relationshipsCount, position;

            VDBRelationshipInfo[] relationships;

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

            position = this.position;

            try
            {
                FindRelationshipSection();
                GetInteger();
                relationshipsCount = GetInteger();
                relationships      = new VDBRelationshipInfo[relationshipsCount];

                for (int i = 0; i < relationshipsCount; i++)
                {
                    relationships[i].Name = GetString();

                    relationships[i].Description = GetString();

                    relationships[i].PrimTable      = GetString();
                    relationships[i].PrimKeyColumns = ExtractColumnNamesFromExpr(GetString());
                    relationships[i].ForKeyColumns  = ExtractColumnNamesFromExpr(GetString());

                    relationships[i].CascadeUpdate = GetBool();
                    relationships[i].CascadeDelete = GetBool();

                    relationships[i].Body = GetString();
                }
            }
            finally
            {
                this.position = position;
            }

            return(relationships);
        }
		/// <summary>
		/// Enumerate relationships info
		/// </summary>
		/// <param name="tableName">Table name</param>
		/// <returns>Relationships info list</returns>
		public VDBRelationshipInfo[] EnumRelationships(string tableName)
		{
			int relationshipsCount, position;
			VDBRelationshipInfo[] relationships;

			if(!FindTable(tableName))
				return null;

			position = this.position;

			try
			{
				FindRelationshipSection();
				GetInteger();
				relationshipsCount = GetInteger();
				relationships      = new VDBRelationshipInfo[relationshipsCount];

				for(int i = 0; i < relationshipsCount; i++)
				{
					relationships[i].Name           = GetString();

					relationships[i].Description    = GetString();

					relationships[i].PrimTable      = GetString();
					relationships[i].PrimKeyColumns = ExtractColumnNamesFromExpr(GetString());
					relationships[i].ForKeyColumns  = ExtractColumnNamesFromExpr(GetString());

					relationships[i].CascadeUpdate  = GetBool();
					relationships[i].CascadeDelete  = GetBool();

					relationships[i].Body           = GetString();
				}
			}
			finally
			{
				this.position = position;
			}

			return relationships;
		}