#pragma once #include"ColumnType.h" namespace OTSSQLITE { class __declspec(dllexport) CDBTableBase { public: virtual void AddColumn(ColumnDefine col)=0; virtual int GetColumnCount() = 0; virtual CString GetTableName() = 0; virtual void SetTableName(LPCTSTR a_sTableName) = 0; virtual CString GetColumnName(const int a_nColId) = 0; virtual CString GetColumnFullName(const int a_nColId) = 0; virtual CString GetColumnNames(const BOOL a_bWithPrimary = TRUE) = 0; virtual CString GetColumnFullNames(const BOOL a_bWithPrimary = TRUE) = 0; virtual ColumnType GetColumnType(const int a_nColId) = 0; virtual CString GetCreateTableCommandString() = 0; virtual CString GetDeleteTableCommandString() = 0; virtual CString GetRemoveAllRowsCommandString() = 0; virtual CString GetInsertCommandFormatString(const BOOL a_bWithPrimary = FALSE) = 0; virtual CString GetInsertCommandFormatString(std::vector& a_colIndexes) = 0; virtual CString GetUpdateCommandFormatString(std::vector& a_updateColIndexes, const int a_nConditionColIndex) = 0; }; typedef std::shared_ptr __declspec(dllexport) CDBTableBasePtr; __declspec(dllexport) CDBTableBasePtr CreateNewSQLiteTable(); }