示例#1
0
        override public IDBObject getDataObject(string id)
        {
            AEDBPersistObject obj = null;

            dynamic objdatas = _memDB.getHashs(id, this.desc);

            if (objdatas != null && AEHelper.HasProperty(objdatas, _desc.keyName))
            {
                // get from cache
                // create AEDBPersistObject
                obj = new AEDBPersistObject(_mysqlDB, this, _memDB, objdatas[_desc.keyName], objdatas, true);

                return(obj);
            }

            uint dbindex = _getDBIndexByKey(id);

            objdatas = _mysqlDB[dbindex].getByKey(id, _desc);

            if (!AEHelper.HasProperty(objdatas, _desc.keyName))
            {
                Debug.logger.log(LogType.LOG_ERR, "AEDBPersistTable name[" + this.desc.name + "] getDataObject id[" + id + "] keyName[" + _desc.keyName + "] not exist!");
                return(null);
            }

            // cache data object
            List <KeyValuePair <string, object> > pars = new List <KeyValuePair <string, object> >();

            for (int i = 0; i < _desc.columCount; ++i)
            {
                string keyName = _desc.getName(i);
                if (!AEHelper.HasProperty(objdatas, keyName))
                {
                    Debug.logger.log(LogType.LOG_ERR, "AEDBPersistTable name[" + this.desc.name + "] update cache data keyName[" + keyName + "] not exist!");
                    continue;
                }

                pars.Add(new KeyValuePair <string, object>(keyName, objdatas[keyName]));
            }
            if (!_memDB.setHashs(objdatas[_desc.keyName].ToString(), pars, _desc))
            {
                // cache failed!
                Debug.logger.log(LogType.LOG_ERR, "AEDBPersistTable name[" + this.desc.name + "] update cache data keyName[" + _desc.keyName + "] keyVal[" + objdatas[_desc.keyName] + "] sethashs failed!");
            }

            obj = new AEDBPersistObject(_mysqlDB, this, _memDB, objdatas[_desc.keyName], objdatas, true);

            return(obj);
        }
示例#2
0
        override protected IDBObject _onInsertData(List <KeyValuePair <string, object> > pars, object key, object Data)
        {
            if (!_memDB.setHashs(key.ToString(), pars, _desc))
            {
                Debug.logger.log(LogType.LOG_ERR, "AEDBPersistTable name[" + this.desc.name + "] insert data keyName[" + _desc.keyName + "] keyVal[" + key + "] sethashs failed!");
                return(null);
            }

            uint dbindex = _getDBIndexByKey(key);

            if (!_mysqlDB[dbindex].insert(_desc.name, pars, _desc))
            {
                Debug.logger.log(LogType.LOG_ERR, "AEDBPersistTable name[" + this.desc.name + "] insert data keyName[" + _desc.keyName + "] keyVal[" + key + "] to mysql failed!");
                return(null);
            }

            // create AEDBPersistObject
            AEDBPersistObject obj = new AEDBPersistObject(_mysqlDB, this, _memDB, key.ToString(), Data, true);

            return(obj);
        }