00001 #ifndef FDO_SqlServerOvColumn_H
00002 #define FDO_SqlServerOvColumn_H
00003
00004 //
00005 //
00006 // (C) Copyright 1990-2005 by Autodesk, Inc.
00007 //
00008 //
00009 //
00010 // By using this code, you are agreeing to the terms
00011 // and conditions of the License Agreement that appeared
00012 // and was accepted upon download or installation
00013 // (or in connection with the download or installation)
00014 // of the Autodesk software in which this code is included.
00015 // All permissions on use of this code are as set forth
00016 // in such License Agreement provided that the above copyright
00017 // notice appears in all authorized copies and that both that
00018 // copyright notice and the limited warranty and
00019 // restricted rights notice below appear in all supporting
00020 // documentation.
00021 //
00022 // AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
00023 // AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
00024 // MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
00025 // DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
00026 // UNINTERRUPTED OR ERROR FREE.
00027 //
00028 // Use, duplication, or disclosure by the U.S. Government is subject to
00029 // restrictions set forth in FAR 52.227-19 (Commercial Computer
00030 // Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
00031 // (Rights in Technical Data and Computer Software), as applicable.
00032 //
00033 #include <Rdbms/Override/SqlServer/SqlServerOv.h>
00034 #include <Rdbms/Override/RdbmsOvColumn.h>
00035
00036 /// \brief
00037 /// Concrete class defining physical schema overrides for a column.
00038 class FdoSqlServerOvColumn : public FdoRdbmsOvColumn
00039 {
00040
00041 public:
00042 /// \brief
00043 /// Constructs a default of an FdoSqlServerOvColumn
00044 ///
00045 /// \return
00046 /// Returns FdoSqlServerOvColumn
00047 ///
00048 FDOSQLSERVER_OV_API static FdoSqlServerOvColumn* Create();
00049
00050 /// \brief
00051 /// Constructs an instance of an FdoSqlServerOvColumn using the specified arguments
00052 ///
00053 /// \param name
00054 /// Input name
00055 ///
00056 /// \return
00057 /// Returns FdoSqlServerOvColumn
00058 ///
00059 FDOSQLSERVER_OV_API static FdoSqlServerOvColumn* Create(FdoString* name);
00060
00061 /// \brief
00062 /// Gets the SQL Server formula for this column
00063 ///
00064 /// \remarks
00065 /// An empty string denotes that there is no formula for this column;
00066 /// otherwise, the column's value is computed based on the formula.
00067 ///
00068 /// \return
00069 /// Returns the SQL Server formula
00070 ///
00071 FDOSQLSERVER_OV_API FdoString* GetFormula();
00072
00073 /// \brief
00074 /// Sets the SQL Server formula for this column
00075 ///
00076 /// \remarks
00077 /// An empty string denotes that there is no formula for this column;
00078 /// otherwise, the column's value is computed based on the formula.
00079 ///
00080 /// \return
00081 /// Returns nothing
00082 ///
00083 FDOSQLSERVER_OV_API void SetFormula(FdoString* formula);
00084
00085 /// \cond DOXYGEN-IGNORE
00086
00087 /// XML serialization functions, not part of the API.
00088
00089 /// Initialize this element from its XML attributes
00090 virtual void InitFromXml(FdoXmlSaxContext* pContext, FdoXmlAttributeCollection* attrs);
00091
00092 /// \endcond
00093
00094 protected:
00095 FdoSqlServerOvColumn();
00096 FdoSqlServerOvColumn(FdoString* name);
00097 virtual ~FdoSqlServerOvColumn();
00098 virtual void Dispose();
00099
00100 /// Serialize this property to XML.
00101 virtual void _writeXmlContents(FdoXmlWriter* xmlWriter, const FdoXmlFlags* flags);
00102
00103 private:
00104 FdoStringP mFormula;
00105 };
00106
00107 /// \brief
00108 /// FdoSqlServerOvColumnP is a FdoPtr on FdoSqlServerOvColumn, provided for convenience.
00109 typedef FdoPtr<FdoSqlServerOvColumn> FdoSqlServerOvColumnP;
00110
00111 #endif
00112
00113