00001 #ifndef FDO_SqlServerOVTABLE_H
00002 #define FDO_SqlServerOVTABLE_H
00003 //
00004 //
00005 // (C) Copyright 1990-2005 by Autodesk, Inc.
00006 //
00007 //
00008 //
00009 // By using this code, you are agreeing to the terms
00010 // and conditions of the License Agreement that appeared
00011 // and was accepted upon download or installation
00012 // (or in connection with the download or installation)
00013 // of the Autodesk software in which this code is included.
00014 // All permissions on use of this code are as set forth
00015 // in such License Agreement provided that the above copyright
00016 // notice appears in all authorized copies and that both that
00017 // copyright notice and the limited warranty and
00018 // restricted rights notice below appear in all supporting
00019 // documentation.
00020 //
00021 // AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
00022 // AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
00023 // MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
00024 // DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
00025 // UNINTERRUPTED OR ERROR FREE.
00026 //
00027 // Use, duplication, or disclosure by the U.S. Government is subject to
00028 // restrictions set forth in FAR 52.227-19 (Commercial Computer
00029 // Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
00030 // (Rights in Technical Data and Computer Software), as applicable.
00031 //
00032 #include <Rdbms/Override/RdbmsOvTable.h>
00033 #include <Rdbms/Override/SqlServer/SqlServerOv.h>
00034 #include <Rdbms/Override/SqlServer/SqlServerOvTextInRowOption.h>
00035
00036
00037 /// \brief
00038 /// Concrete class defining physical schema overrides for a table.
00039 class FdoSqlServerOvTable : public FdoRdbmsOvTable
00040 {
00041
00042 public:
00043 /// \brief
00044 /// Constructs a default of an FdoSqlServerOvTable
00045 ///
00046 /// \return
00047 /// Returns FdoSqlServerOvTable
00048 ///
00049 FDOSQLSERVER_OV_API static FdoSqlServerOvTable* Create();
00050
00051 /// \brief
00052 /// Constructs an instance of an FdoSqlServerOvTable using the specified arguments
00053 ///
00054 /// \param name
00055 /// Input name
00056 ///
00057 /// \return
00058 /// Returns FdoSqlServerOvTable
00059 ///
00060 FDOSQLSERVER_OV_API static FdoSqlServerOvTable* Create(FdoString *name);
00061
00062 /// \brief
00063 /// Gets the table filegroup
00064 ///
00065 /// \return
00066 /// Returns the table filegroup
00067 ///
00068 FDOSQLSERVER_OV_API FdoString *GetTableFilegroup();
00069
00070 /// \brief
00071 /// Sets the table filegroup
00072 ///
00073 /// \return
00074 /// Returns nothing
00075 ///
00076 FDOSQLSERVER_OV_API void SetTableFilegroup(FdoString *tableFilegroup);
00077
00078 /// \brief
00079 /// Gets the text filegroup
00080 ///
00081 /// \return
00082 /// Returns the text filegroup
00083 ///
00084 FDOSQLSERVER_OV_API FdoString *GetTextFilegroup();
00085
00086 /// \brief
00087 /// Sets the text filegroup
00088 ///
00089 /// \return
00090 /// Returns nothing
00091 ///
00092 FDOSQLSERVER_OV_API void SetTextFilegroup(FdoString *textFilegroup);
00093
00094 /// \brief
00095 /// Gets the index filegroup
00096 ///
00097 /// \return
00098 /// Returns the index filegroup
00099 ///
00100 FDOSQLSERVER_OV_API FdoString *GetIndexFilegroup();
00101
00102 /// \brief
00103 /// Sets the index filegroup
00104 ///
00105 /// \return
00106 /// Returns nothing
00107 ///
00108 FDOSQLSERVER_OV_API void SetIndexFilegroup(FdoString *indexFilegroup);
00109
00110 /// \brief
00111 /// Gets the text-in-row option
00112 ///
00113 /// \return
00114 /// Returns the text-in-row option
00115 ///
00116 FDOSQLSERVER_OV_API SqlServerOvTextInRowOption GetTextInRow();
00117
00118 /// \brief
00119 /// Sets the text-in-row option
00120 ///
00121 /// \return
00122 /// Returns nothing
00123 ///
00124 FDOSQLSERVER_OV_API void SetTextInRow(SqlServerOvTextInRowOption textInRow);
00125
00126 /// \brief
00127 /// Gets the database
00128 ///
00129 /// \return
00130 /// Returns the database
00131 ///
00132 FDOSQLSERVER_OV_API FdoString *GetDatabase();
00133
00134 /// \brief
00135 /// Sets the database
00136 ///
00137 /// \return
00138 /// Returns nothing
00139 ///
00140 FDOSQLSERVER_OV_API void SetDatabase(FdoString *database);
00141
00142 /// \brief
00143 /// Gets the owner
00144 ///
00145 /// \return
00146 /// Returns the owner
00147 ///
00148 FDOSQLSERVER_OV_API FdoString *GetOwner();
00149
00150 /// \brief
00151 /// Sets the owner
00152 ///
00153 /// \return
00154 /// Returns nothing
00155 ///
00156 FDOSQLSERVER_OV_API void SetOwner(FdoString *owner);
00157
00158
00159 /// \cond DOXYGEN-IGNORE
00160
00161 /// XML Serialization functions, not part of the API.
00162
00163 /// Serialize this property to XML.
00164 virtual void _writeXmlContents(FdoXmlWriter* xmlWriter, const FdoXmlFlags* flags);
00165
00166 /// Initialize this element from its XML attributes
00167 virtual void InitFromXml(FdoXmlSaxContext* pContext, FdoXmlAttributeCollection* attrs);
00168
00169 /// Sets the parent of this object. Not part of the API.
00170 void SetParent(FdoPhysicalElementMapping* value);
00171
00172 /// Common initializer for all constructors:
00173 void Init();
00174
00175 /// \endcond
00176
00177 protected:
00178 FdoSqlServerOvTable();
00179 FdoSqlServerOvTable(FdoString *name);
00180 virtual ~FdoSqlServerOvTable();
00181 virtual void Dispose();
00182
00183 private:
00184 FdoStringP mTableFilegroup;
00185 FdoStringP mTextFilegroup;
00186 FdoStringP mIndexFilegroup;
00187 SqlServerOvTextInRowOption mTextInRow;
00188 FdoStringP mDatabase;
00189 FdoStringP mOwner;
00190 };
00191
00192 /// \brief
00193 /// FdoSqlServerOvTableP is a FdoPtr on FdoSqlServerOvTable, provided for convenience.
00194 typedef FdoPtr<FdoSqlServerOvTable> FdoSqlServerOvTableP;
00195
00196 #endif
00197
00198