#pragma once #include "DBTableBase.h" #include "ColumnType.h" namespace OTSSQLITE { class CDBTable :public CDBTableBase//the implementation of sqlite table { public: CDBTable(); virtual ~CDBTable(void); virtual CString GetTableName() override { return m_sTableName; } virtual void SetTableName(LPCTSTR a_sTableName) override { m_sTableName = a_sTableName; } virtual void AddColumn(ColumnDefine col); virtual int GetColumnCount() override { return (int)m_listcolumnDefines.size(); } virtual CString GetColumnName(const int a_nColId) override; virtual CString GetColumnFullName(const int a_nColId) override; virtual CString GetColumnNames(const BOOL a_bWithPrimary = TRUE) override; virtual CString GetColumnFullNames(const BOOL a_bWithPrimary = TRUE) override; virtual ColumnType GetColumnType(const int a_nColId) override; virtual CString GetCreateTableCommandString() override; virtual CString GetDeleteTableCommandString() override; virtual CString GetRemoveAllRowsCommandString() override; virtual CString GetInsertCommandFormatString(const BOOL a_bWithPrimary = FALSE) override; virtual CString GetInsertCommandFormatString(std::vector& a_colIndexes) override; virtual CString GetUpdateCommandFormatString(std::vector& a_updateColIndexes, const int a_nConditionColIndex) override; protected: std::vector m_listcolumnDefines; CString m_sTableName; }; }