AFAIK, мы все должны программировать в базу данных через упаковщик / менеджер баз данных, такой как sqliteman или CppSQLite.
Но оболочка базы данных специфична для одного типа базы данных, и это не удобно для программиста, потому что в случае, если база данных была заблокирована, требуется много модификаций.
Поэтому я хотел бы написать универсальную оболочку базы данных, которая может взаимодействовать с различными типами баз данных.
Я создал шаблон класса, как показано ниже.
template<typename T>
class ClsDatabaseManager
{
public:
// Pure Virtual Function
// All derived classes must implements it and forward the call
// appropriate database wrapper
connect(string);
disconnect(string);
Execute(string);
CreateTable(string);
CreateDatabase(string);
private:
T m_table;
T m_database;
};
class sqliteManager : public ClsDatabaseManager<T>
{
// Implement all the function by forward the call
};
Поэтому я буду использовать черты для получения типа информации на основе предоставленного аргумента шаблона.
Этот аргумент шаблона является типом класса, производным от этого базового класса, такого как sqlite, postgresql и mysql.
Итак, любые предложения или рекомендации по моему дизайну.
Как создать общий интерфейс базы данных и переадресовать вызов в определенную библиотеку интерфейса базы данных.
РЕДАКТИРОВАТЬ:
Чем отличается ODBC от C ++ Database Access Library (Soci)?
Пожалуйста, помогите.
Спасибо.