///实现的ORM框架,用于方便的访问和管理对像
class CTNORM
{
public:
    CTNORM();
    ~CTNORM();

    void setTable(const string& sTable);

    ///返回表名
    string table();

    string getORM();
    bool fromString(const string& sORMDefine);

    //是否存在字段
    bool exist(const string& sField);

    //获取执行的行数,仅对update,delete,insert有效
    int rpc();

    //查询
    int query(const string& sFields, CIntent& itWhere, CSelectHelp& help);
    int queryAll(CIntent& itWhere, CSelectHelp& help);



    //更新
    bool update(CIntent& itSet, CIntent& itWhere);

    //删除
    bool del(CIntent& itWhere);

    //新建
    bool insert(CIntent& it);
    bool insertAll(CIntent& it);


    string error();
    void callError(const string& sMsg);
    void enableLog(bool bEnable);

    //返回OTL的类型 
    string getOtlType(const string& sType);
    string getType(const string& sField);

    void dump();

    //可以设置为ICE或者CDBUTIL
    void setDB(int idx);
    void setDBLuaProcess(CDBLuaProcess& db);

    //获取SQL
    string getQuerySQL(bool bNeedWhere);
    string getUpdateSQL(bool bNeedWhere);

    ///
    void getKS(CselectHelp& help);

    ///
    void getFields (CSelectHelp& help);

    ///批量更新(若没有则新增)
    bool batchUpdateAndInsert(CIntent& vUpdate, CIntent& vInsert, CSelectHelp& help, CTNString& sReturnErr,int iOneSplit = 300);

    ///批量更新(若没有则新增全部)
    bool batchUpdateAndInsertAll(CSelectHelp& help, CTNString& sReturnErr, int iOneSplit = 300);

    ///更新操作 传入参数(表名,更新的数据,更新的键名,返回值rpc代表影响的数据行数)
    bool update(const string& sTable, CSelectHelp& help, const string& keys,CIntent& itOption=CIntent());

    ///新增操作 传入参数(表名,新增的数据,返回值rpc代表影响的数据行数)
    bool insert(const string& sTable, CSelectHelp& help, CSelectHelp& helpAutoID=CSelectHelp());

    ///删除操作 传入参数(表名,删除的数据,返回值rpc代表影响的数据行数)
    bool del(const string& sTable, CSelectHelp& help, const string& keys, CIntent& itOption = CIntent());

    ///支持多个表的新增和修改操作 传入参数(it对象需要包含表名、对表操作、使用help名称、键名)具体使用请参照使用范例
    bool ormFlow(CIntent& itFlow, CSelectHelp& resultHelp, CIntent& itOption = CIntent());
};
Copyright © TouchNet 2015 all right reserved,powered by Gitbook最后修订时间: 2022-06-21 09:21:04

results matching ""

    No results matching ""