00001 /*
00002 * (C) Copyright 2005 by Autodesk, Inc. All Rights Reserved.
00003 *
00004 * By using this code, you are agreeing to the terms and conditions of
00005 * the License Agreement included in the documentation for this code.
00006 *
00007 * AUTODESK MAKES NO WARRANTIES, EXPRESS OR IMPLIED, AS TO THE
00008 * CORRECTNESS OF THIS CODE OR ANY DERIVATIVE WORKS WHICH INCORPORATE
00009 * IT. AUTODESK PROVIDES THE CODE ON AN "AS-IS" BASIS AND EXPLICITLY
00010 * DISCLAIMS ANY LIABILITY, INCLUDING CONSEQUENTIAL AND INCIDENTAL
00011 * DAMAGES FOR ERRORS, OMISSIONS, AND OTHER PROBLEMS IN THE CODE.
00012 *
00013 * Use, duplication, or disclosure by the U.S. Government is subject
00014 * to restrictions set forth in FAR 52.227-19 (Commercial Computer
00015 * Software Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
00016 * (Rights in Technical Data and Computer Software), as applicable.
00017 *
00018 *
00019 */
00020
00021 #pragma once
00022
00023 class FdoSqlServerOvClassDefinition;
00024
00025 BEGIN_NAMESPACE_AUTODESK_GIS_FDO_PROVIDERS_RDBMS_OVERRIDE_SQLSERVER
00026 public __gc class OvPropertyDefinitionCollection;
00027 public __gc class OvTable;
00028 public __gc class OvGeometricColumn;
00029
00030 ///<summary>Concrete class defining physical schema overrides for a class definition.</summary>
00031 public __gc class OvClassDefinition : public NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE::OvClassDefinition
00032 {
00033 public:
00034 ///<summary>Constructs a default of an NAMESPACE_AUTODESK_GIS_FDO_PROVIDERS_RDBMS_OVERRIDE_SQLSERVER::OvClassDefinition</summary>
00035 OvClassDefinition();
00036
00037 ///<summary>Constructs an instance of an NAMESPACE_AUTODESK_GIS_FDO_PROVIDERS_RDBMS_OVERRIDE_SQLSERVER::OvClassDefinition using the specified arguments</summary>
00038 /// <param name="name">Input name</param>
00039 OvClassDefinition(System::String* name);
00040
00041 ///<summary>Gets a collection of SqlServer property overrides</summary>
00042 /// <returns>Returns the collection of SqlServer property overrides</returns>
00043 __property NAMESPACE_AUTODESK_GIS_FDO_PROVIDERS_RDBMS_OVERRIDE_SQLSERVER::OvPropertyDefinitionCollection* get_Properties();
00044
00045 ///<summary>Gets the SqlServer table override for this class override</summary>
00046 /// <returns>Returns NAMESPACE_AUTODESK_GIS_FDO_PROVIDERS_RDBMS_OVERRIDE_SQLSERVER::OvTable</returns>
00047 __property NAMESPACE_AUTODESK_GIS_FDO_PROVIDERS_RDBMS_OVERRIDE_SQLSERVER::OvTable* get_Table();
00048
00049 ///<summary>Sets the SqlServer table override for this class override</summary>
00050 /// <param name="name">Input SqlServer table override</param>
00051 /// <returns>Returns nothing</returns>
00052 __property System::Void set_Table(NAMESPACE_AUTODESK_GIS_FDO_PROVIDERS_RDBMS_OVERRIDE_SQLSERVER::OvTable* table);
00053
00054 ///<summary>Specifies which FDO property corresponds to the single SqlServer IDENTITY column.
00055 /// This property corresponds to the singleton IDENTITY column of the SQL Server table.
00056 /// This is not to be confused with the usual FDO identity properties, which instead
00057 /// correspond to the primary key of a SQL Server table.
00058 /// </summary>
00059 /// <param name="name">Input SqlServer identity property name override.
00060 /// An empty string means there is no identity column for this class.</param>
00061 /// <returns>Returns nothing</returns>
00062 __property System::Void set_IdentityPropertyName(System::String* identityPropertyName);
00063
00064 ///<summary>Gets which FDO property corresponds to the single SqlServer IDENTITY column</summary>
00065 /// <returns>Returns the FDO property corresponding to the single SqlServer IDENTITY column,
00066 /// or an empty string if there is no such property</returns>
00067 __property System::String* get_IdentityPropertyName();
00068
00069 ///<summary>Retrieves the identity column's type, whether it is a non-globally-unique
00070 /// identity column or a globally-unique identity column.</summary>
00071 /// <remarks>Non-globally-unique identity columns have their value
00072 /// automatically populated by SQL Server on insert; the first value is set to the specified
00073 /// IdentitySeed, and all subsequent values are set using the specified IdentityIncrement.
00074 /// If defining such a column during ApplySchema, it must be one of the following SQL Server
00075 /// native data types: decimal, int, numeric, smallint, bigint, or tinyint. Note that the
00076 /// not for replication?identity column flag is not exposed. Also note that the identifier
00077 /// column must not be nullable and must not contain a default value.
00078 /// Globally-unique identity columns do not have their value automatically populated by SQL Server.
00079 /// Instead SQL Server relies on the default value or the user to populate this value. To have
00080 /// this value populated automatically on insert, the user should set the default value to use the
00081 /// NEWID() function to obtain a globally-unique identity value.
00082 /// This override is ignored on ApplySchema if this column belongs to an existing table in a
00083 /// foreign database. This override is also ignored if IdentityPropertyName is not specified.
00084 /// </remarks>
00085 /// <returns>Returns the type of the single IDENTITY column, if it exists</returns>
00086 __property System::Boolean get_IdentityIsGloballyUnique();
00087
00088 ///<summary>Set the type of the single IDENTITY column, if it exists</summary>
00089 /// <returns>Returns nothing</returns>
00090 __property System::Void set_IdentityIsGloballyUnique(System::Boolean isGloballyUnique);
00091
00092 ///<summary>Sets the first value to use for the identity column, if there is one.</summary>
00093 /// <remarks>This override defaults to 1. This override is ignored on ApplySchema if
00094 /// this column belongs to an existing table in a foreign database. This override is also
00095 /// ignored if IdentityPropertyName is not specified.</remarks>
00096 /// <returns>Returns the first value to use for the identity column</returns>
00097 __property System::Int32 get_IdentitySeed();
00098
00099 ///<summary>Gets the first value to use for the identity column, if there is one.</summary>
00100 /// <returns>Returns nothing</returns>
00101 __property System::Void set_IdentitySeed(System::Int32 identitySeed);
00102
00103 ///<summary>Gets the increment value to use for the identity column, if there is one.</summary>
00104 /// <remarks>This override defaults to 1. This override is ignored on ApplySchema if this
00105 /// column belongs to an existing table in a foreign database. This override is also ignored
00106 /// if IdentityPropertyName is not specified.</remarks>
00107 /// <returns>Returns the increment value to use for the identity column</returns>
00108 __property System::Int32 get_IdentityIncrement();
00109
00110 ///<summary>Sets the increment value to use for the identity column, if there is one.</summary>
00111 /// <returns>Returns nothing</returns>
00112 __property System::Void set_IdentityIncrement(System::Int32 identityIncrement);
00113
00114 public private:
00115 OvClassDefinition(System::IntPtr unmanaged, System::Boolean autoDelete);
00116
00117 inline FdoSqlServerOvClassDefinition* GetImpObj();
00118 };
00119
00120 END_NAMESPACE_AUTODESK_GIS_FDO_PROVIDERS_RDBMS_OVERRIDE_SQLSERVER