00001 /*
00002 * Copyright (C) 2004-2006 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
00019
00020 #pragma once
00021
00022 class FdoMySQLOvClassDefinition;
00023
00024 BEGIN_NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE
00025 public __gc class OvClassDefinition;
00026 END_NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE
00027
00028 BEGIN_NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE_MYSQL
00029
00030 public __gc class OvPropertyDefinitionCollection;
00031 public __gc class OvTable;
00032 public __gc class OvGeometricColumn;
00033
00034 ///<summary>Concrete class defining physical schema overrides for a class definition.</summary>
00035 public __gc class OvClassDefinition : public NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE::OvClassDefinition
00036 {
00037 public private:
00038 FdoMySQLOvClassDefinition* GetImpObj();
00039
00040 OvClassDefinition(System::IntPtr unmanaged, System::Boolean autoDelete);
00041
00042 public:
00043 ///<summary>Constructs a default of an OvClassDefinition</summary>
00044 /// <returns>Returns OvClassDefinition</returns>
00045 OvClassDefinition();
00046
00047 ///<summary>Constructs an instance of an OvClassDefinition using the specified arguments</summary>
00048 /// <param name="name">Input name</param>
00049 /// <returns>Returns OvClassDefinition</returns>
00050 OvClassDefinition(System::String* name);
00051
00052 ///<summary>Gets a collection of MySQL property overrides</summary>
00053 /// <returns>Returns the collection of MySQL property overrides</returns>
00054 __property NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE_MYSQL::OvPropertyDefinitionCollection* get_Properties();
00055
00056 ///<summary>Gets the MySQL table override for this class override</summary>
00057 /// <returns>Returns OvTable</returns>
00058 __property NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE_MYSQL::OvTable* get_Table();
00059
00060 ///<summary>Sets the MySQL table override for this class override</summary>
00061 /// <param name="name">Input MySQL table override</param>
00062 /// <returns>Returns nothing</returns>
00063 __property System::Void set_Table(NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE_MYSQL::OvTable* table);
00064
00065 ///<summary>Which FDO property maps to an MySQL auto-increment column, if any.</summary>
00066 /// <remarks>An empty string indicates
00067 /// there is no such column on this classs table. There can only be at most one auto-increment column
00068 /// per table, it must be indexed, and it cannot have a default value. As of MySQL 3.23, an AutoIncrement
00069 /// column works properly only if it contains only positive values. Inserting a negative number is
00070 /// regarded as inserting a very large positive number. For MyISAM and BDB tables, you can specify an
00071 /// AUTO_INCREMENT secondary column in a multiple-column key. The first value in an AutoIncrement column
00072 /// is always 1 and always increments by 1 for each new value. This override is ignored on ApplySchema if
00073 /// this class refers to an existing table in a foreign database.
00074 /// </remarks>
00075 /// <param name="name"></param>
00076 /// <returns>Returns nothing</returns>
00077 __property System::Void set_AutoIncrementPropertyName(System::String* autoIncrementPropertyName);
00078
00079 ///<summary>Gets which FDO property corresponds to the single MySQL auto-increment column</summary>
00080 /// <returns>Returns the FDO property corresponding to the single MySQL auto-increment column,
00081 /// or an empty string if there is no such property</returns>
00082 __property System::String* get_AutoIncrementPropertyName();
00083
00084 ///<summary>The initial value to use for the first row in the auto-increment column, if any.</summary>
00085 /// <remarks>This override is only valid if the AutoIncrementProperty override is set to a non-empty string.
00086 /// This works only for the following storage engine types: MyISAM, MEMORY as of MySQL 4.1, and InnoDB
00087 /// as of MySQL 5.0.3. This override is ignored on ApplySchema if this table is an existing table in
00088 /// a foreign database.
00089 /// </remarks>
00090 /// <returns>Returns the initial value to use for the first row in the auto-increment column</returns>
00091 __property System::Int64 get_AutoIncrementSeed();
00092
00093 ///<summary>Sets the initial value to use for the first row in the auto-increment column, if any</summary>
00094 /// <returns>Returns nothing</returns>
00095 __property System::Void set_AutoIncrementSeed(System::Int64 autoIncrementSeed);
00096
00097 };
00098
00099 END_NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE_MYSQL