2025-03-12 14:17:01 +08:00

235 lines
6.6 KiB
C++

#include "db_api_ex/CDbApi.h"
#include "CDbApi_impl.h"
using namespace iot_dbms;
CDbApi::CDbApi( EDbConnType eType )
{
m_pDbApiImpl = new CDbApi_impl( eType );
}
CDbApi::~CDbApi()
{
delete m_pDbApiImpl;
m_pDbApiImpl = NULL;
}
bool CDbApi::open()
{
return m_pDbApiImpl->open();
}
bool CDbApi::isOpen()
{
return m_pDbApiImpl->isOpen();
}
void CDbApi::close()
{
m_pDbApiImpl->close();
}
CDbPara CDbApi::getCurrentDbPara()
{
return m_pDbApiImpl->getCurrentDbPara();
}
// 事务
bool CDbApi::transaction()
{
return m_pDbApiImpl->transaction();
}
bool CDbApi::commit()
{
return m_pDbApiImpl->commit();
}
bool CDbApi::rollback()
{
return m_pDbApiImpl->rollback();
}
// execute
bool CDbApi::execute( const QString& sSql )
{
return m_pDbApiImpl->execute( sSql );
}
bool CDbApi::execute( const QString& sSql, QSqlQuery& objQuery )
{
return m_pDbApiImpl->execute( sSql, objQuery );
}
// select
bool CDbApi::select( const QString& sTableName, QSqlQuery& objQuery )
{
return m_pDbApiImpl->select( sTableName, objQuery );
}
bool CDbApi::select( const QString& sTableName, const QList<QString>& listColName, QSqlQuery& objQuery )
{
return m_pDbApiImpl->select( sTableName, listColName, objQuery );
}
// select + one condition
bool CDbApi::select( const QString& sTableName, const CDbCondition& objCondition, QSqlQuery& objQuery )
{
return m_pDbApiImpl->select( sTableName, objCondition, objQuery );
}
bool CDbApi::select( const QString& sTableName, const QList<QString>& listColName, const CDbCondition& objCondition, QSqlQuery& objQuery )
{
return m_pDbApiImpl->select( sTableName, listColName, objCondition, objQuery );
}
// select + many condition
bool CDbApi::select( const QString& sTableName, const QList<CDbCondition>& listCondition, QSqlQuery& objQuery )
{
return m_pDbApiImpl->select( sTableName, listCondition, objQuery );
}
bool CDbApi::select( const QString& sTableName, const QList<QString>& listColName, const QList<CDbCondition>& listCondition, QSqlQuery& objQuery )
{
return m_pDbApiImpl->select( sTableName, listColName, listCondition, objQuery );
}
// select + many order by
bool CDbApi::select( const QString& sTableName, const QList<CDbOrder>& listOrderBy, QSqlQuery& objQuery )
{
return m_pDbApiImpl->select( sTableName, listOrderBy, objQuery );
}
bool CDbApi::select( const QString& sTableName, const QList<QString>& listColName, const QList<CDbOrder>& listOrderBy, QSqlQuery& objQuery )
{
return m_pDbApiImpl->select( sTableName, listColName, listOrderBy, objQuery );
}
// select + one condition + many order by
bool CDbApi::select( const QString& sTableName, const CDbCondition& objCondition, const QList<CDbOrder>& listOrderBy, QSqlQuery& objQuery )
{
return m_pDbApiImpl->select( sTableName, objCondition, listOrderBy, objQuery );
}
bool CDbApi::select( const QString& sTableName, const QList<QString>& listColName, const CDbCondition& objCondition, const QList<CDbOrder>& listOrderBy, QSqlQuery& objQuery )
{
return m_pDbApiImpl->select( sTableName, listColName, objCondition, listOrderBy, objQuery );
}
// select + many condition + many order by
bool CDbApi::select( const QString& sTableName, const QList<CDbCondition>& listCondition, const QList<CDbOrder>& listOrderBy, QSqlQuery& objQuery )
{
return m_pDbApiImpl->select( sTableName, listCondition, listOrderBy, objQuery );
}
bool CDbApi::select( const QString& sTableName, const QList<QString>& listColName, const QList<CDbCondition>& listCondition, const QList<CDbOrder>& listOrderBy, QSqlQuery& objQuery )
{
return m_pDbApiImpl->select( sTableName, listColName, listCondition, listOrderBy, objQuery );
}
// insert
bool CDbApi::insert( const QString& sTableName, const QList<QString>& listColName, const QList<QVariant>& listVal )
{
return m_pDbApiImpl->insert( sTableName, listColName, listVal );
}
bool CDbApi::insert( const QString& sTableName, const QList<QString>& listColName, const QList<QList<QVariant> >& listVal, int nMaxRowInOneSql )
{
return m_pDbApiImpl->insert( sTableName, listColName, listVal, nMaxRowInOneSql );
}
// update
bool CDbApi::update( const QString& sTableName, const QList<QString>& listColName, const QList<QVariant>& listVal )
{
return m_pDbApiImpl->update( sTableName, listColName, listVal );
}
bool CDbApi::update( const QString& sTableName, const QList<QString>& listColName, const QList<QVariant>& listVal, const CDbCondition& objCondition )
{
return m_pDbApiImpl->update( sTableName, listColName, listVal, objCondition );
}
bool CDbApi::update( const QString& sTableName, const QList<QString>& listColName, const QList<QVariant>& listVal, const QList<CDbCondition>& listCondition )
{
return m_pDbApiImpl->update( sTableName, listColName, listVal, listCondition );
}
// delete
bool CDbApi::deleteRow( const QString& sTableName )
{
return m_pDbApiImpl->deleteRow( sTableName );
}
bool CDbApi::deleteRow( const QString& sTableName, const CDbCondition& objCondition )
{
return m_pDbApiImpl->deleteRow( sTableName, objCondition );
}
bool CDbApi::deleteRow( const QString& sTableName, const QList<CDbCondition>& listCondition )
{
return m_pDbApiImpl->deleteRow( sTableName, listCondition );
}
// drop
bool CDbApi::drop( const QString& sTableName )
{
return m_pDbApiImpl->drop( sTableName );
}
// max
QVariant CDbApi::getMaxValueByCol( const QString& sTableName, const QString& sColName )
{
return m_pDbApiImpl->getMaxValueByCol( sTableName, sColName );
}
// 获取最后一个执行语句
QString CDbApi::getLastSqlString() const
{
return m_pDbApiImpl->getLastSqlString();
}
// 获取最后一个错误语句,仅在修改操作返回失败时可信
QString CDbApi::getLastErrorSqlString() const
{
return m_pDbApiImpl->getLastErrorSqlString();
}
// 获取最后一个错误信息,仅在修改操作返回失败时可信
QString CDbApi::getLastErrorString() const
{
return m_pDbApiImpl->getLastErrorString();
}
// 获取最后一个错误编号,仅在修改操作返回失败时可信
int CDbApi::getLastErrorNumber() const
{
return m_pDbApiImpl->getLastErrorNumber();
}
// 不同的数据库对特殊表名、列名的引用方式不一样
QString CDbApi::addQuoteMarks( const QString& sStr ) const
{
return m_pDbApiImpl->addQuoteMarks( sStr );
}
// 转义
QString CDbApi::convertQuoteMarks( const QString& sStr ) const
{
return m_pDbApiImpl->convertQuoteMarks( sStr );
}
// 将时间转化为对应数据库的字符串
QString CDbApi::convertToSqlString( const QDateTime& dt ) const
{
return m_pDbApiImpl->convertToSqlString( dt );
}
// 获取服务所在的机器名,空字符串表示获取失败
QString CDbApi::getHostName()
{
return m_pDbApiImpl->getHostName();
}