00001 //
00002 // Copyright (C) 2004-2008 Autodesk, Inc.
00003 //
00004 // This library is free software; you can redistribute it and/or
00005 // modify it under the terms of version 2.1 of the GNU Lesser
00006 // General Public License as published by the Free Software Foundation.
00007 //
00008 // This library is distributed in the hope that it will be useful,
00009 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00010 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
00011 // Lesser General Public License for more details.
00012 //
00013 // You should have received a copy of the GNU Lesser General Public
00014 // License along with this library; if not, write to the Free Software
00015 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
00016 //
00017
00018 #pragma once
00019
00020 class FdoSqlServerOvClassDefinition;
00021
00022 BEGIN_NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE_SQLSERVERSPATIAL
00023 public __gc class OvPropertyDefinitionCollection;
00024 public __gc class OvTable;
00025 public __gc class OvGeometricColumn;
00026
00027 ///<summary>Concrete class defining physical schema overrides for a class definition.</summary>
00028 public __gc class OvClassDefinition : public NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE::OvClassDefinition
00029 {
00030 public:
00031 ///<summary>Constructs a default of an NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE_SQLSERVERSPATIAL::OvClassDefinition</summary>
00032 OvClassDefinition();
00033
00034 ///<summary>Constructs an instance of an NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE_SQLSERVERSPATIAL::OvClassDefinition using the specified arguments</summary>
00035 /// <param name="name">Input name</param>
00036 OvClassDefinition(System::String* name);
00037
00038 ///<summary>Gets a collection of SqlServer property overrides</summary>
00039 /// <returns>Returns the collection of SqlServer property overrides</returns>
00040 __property NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE_SQLSERVERSPATIAL::OvPropertyDefinitionCollection* get_Properties();
00041
00042 ///<summary>Gets the SqlServer table override for this class override</summary>
00043 /// <returns>Returns NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE_SQLSERVERSPATIAL::OvTable</returns>
00044 __property NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE_SQLSERVERSPATIAL::OvTable* get_Table();
00045
00046 ///<summary>Sets the SqlServer table override for this class override</summary>
00047 /// <param name="name">Input SqlServer table override</param>
00048 /// <returns>Returns nothing</returns>
00049 __property System::Void set_Table(NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE_SQLSERVERSPATIAL::OvTable* table);
00050
00051 ///<summary>Specifies which FDO property corresponds to the single SqlServer IDENTITY column.
00052 /// This property corresponds to the singleton IDENTITY column of the SQL Server table.
00053 /// This is not to be confused with the usual FDO identity properties, which instead
00054 /// correspond to the primary key of a SQL Server table.
00055 /// </summary>
00056 /// <param name="name">Input SqlServer identity property name override.
00057 /// An empty string means there is no identity column for this class.</param>
00058 /// <returns>Returns nothing</returns>
00059 __property System::Void set_IdentityPropertyName(System::String* identityPropertyName);
00060
00061 ///<summary>Gets which FDO property corresponds to the single SqlServer IDENTITY column</summary>
00062 /// <returns>Returns the FDO property corresponding to the single SqlServer IDENTITY column,
00063 /// or an empty string if there is no such property</returns>
00064 __property System::String* get_IdentityPropertyName();
00065
00066 ///<summary>Retrieves the identity column's type, whether it is a non-globally-unique
00067 /// identity column or a globally-unique identity column.</summary>
00068 /// <remarks>Non-globally-unique identity columns have their value
00069 /// automatically populated by SQL Server on insert; the first value is set to the specified
00070 /// IdentitySeed, and all subsequent values are set using the specified IdentityIncrement.
00071 /// If defining such a column during ApplySchema, it must be one of the following SQL Server
00072 /// native data types: decimal, int, numeric, smallint, bigint, or tinyint. Note that the
00073 /// not for replication?identity column flag is not exposed. Also note that the identifier
00074 /// column must not be nullable and must not contain a default value.
00075 /// Globally-unique identity columns do not have their value automatically populated by SQL Server.
00076 /// Instead SQL Server relies on the default value or the user to populate this value. To have
00077 /// this value populated automatically on insert, the user should set the default value to use the
00078 /// NEWID() function to obtain a globally-unique identity value.
00079 /// This override is ignored on ApplySchema if this column belongs to an existing table in a
00080 /// foreign database. This override is also ignored if IdentityPropertyName is not specified.
00081 /// </remarks>
00082 /// <returns>Returns the type of the single IDENTITY column, if it exists</returns>
00083 __property System::Boolean get_IdentityIsGloballyUnique();
00084
00085 ///<summary>Set the type of the single IDENTITY column, if it exists</summary>
00086 /// <returns>Returns nothing</returns>
00087 __property System::Void set_IdentityIsGloballyUnique(System::Boolean isGloballyUnique);
00088
00089 ///<summary>Sets the first value to use for the identity column, if there is one.</summary>
00090 /// <remarks>This override defaults to 1. This override is ignored on ApplySchema if
00091 /// this column belongs to an existing table in a foreign database. This override is also
00092 /// ignored if IdentityPropertyName is not specified.</remarks>
00093 /// <returns>Returns the first value to use for the identity column</returns>
00094 __property System::Int32 get_IdentitySeed();
00095
00096 ///<summary>Gets the first value to use for the identity column, if there is one.</summary>
00097 /// <returns>Returns nothing</returns>
00098 __property System::Void set_IdentitySeed(System::Int32 identitySeed);
00099
00100 ///<summary>Gets the increment value to use for the identity column, if there is one.</summary>
00101 /// <remarks>This override defaults to 1. This override is ignored on ApplySchema if this
00102 /// column belongs to an existing table in a foreign database. This override is also ignored
00103 /// if IdentityPropertyName is not specified.</remarks>
00104 /// <returns>Returns the increment value to use for the identity column</returns>
00105 __property System::Int32 get_IdentityIncrement();
00106
00107 ///<summary>Sets the increment value to use for the identity column, if there is one.</summary>
00108 /// <returns>Returns nothing</returns>
00109 __property System::Void set_IdentityIncrement(System::Int32 identityIncrement);
00110
00111 public private:
00112 OvClassDefinition(System::IntPtr unmanaged, System::Boolean autoDelete);
00113
00114 inline FdoSqlServerOvClassDefinition* GetImpObj();
00115 };
00116
00117 END_NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE_SQLSERVERSPATIAL