Exemple #1
0
int main(int argc, char *argv[])
{
	int err = 0;
	char path[] = "database.sqlite3";
	sqlite3 * db;
	err = sqlite3_open(path, &db);
	if(SQLITE_OK != err)
	{
		return -1;
	}
	SelectDB(db, "select str from xx");
	InsertDB(db, "insert  or replace into xx values ('007','kkk','5pp')");
	UpdateDB(db, "update xx set str='007' where sss='lll'");
	DeleteDB(db, "delete from xx where str='789'");
	printf("----------!!----------\n");
	OperateDB(db, "create table if not exists nimei(woqu TEXT)");
	SelectDB(db, "select * from xx");

	return 0;
}
void AddToDB(CppSQLite3DB* m_db,CLOUD_MEIDA_METADATA_STRUCT* incmd)
{
	   //Create db item
		DbItem item;

		memset(&item, 0, sizeof(item));
		//Title
		wcscpy(item.szTitle, incmd->Title);
		//Resource Uri
		wcscpy(item.szResourceUri, incmd->Location);
		//Media Type
		item.nMediaType = incmd->MediaType;
		//Size
		wcscpy(item.szSize, incmd->Size);
		//item.szSize = incmd->Size;
		//CreateDate
		item.nCreateDate = incmd->Date;
		////AddedDate
		//FileTimeToInt(fd.ftCreationTime, item.nAddedDate);
 
		//Save to DB
		InsertDB(m_db,item);
}
    int CWorldDbmgr::FromRpcCall(CPluto& u, CDbOper& db)
    {
        //printf("CWorldDbmgr::from_rpc_call\n");
        //print_hex_pluto(u);

        pluto_msgid_t msg_id = -1;
        T_VECTOR_OBJECT* p = NULL;

        //这一段要加锁(2012/02/15改为不加锁)
        {
            //CMutexGuard _g(m_rpcMutex);

            msg_id = u.GetMsgId();
            if(!CheckClientRpc(u))
            {
                LogWarning("from_rpc_call", "invalid rpcall error.unknown msgid:%d\n", msg_id);
                return -1;
            }

            p = m_rpc.Decode(u);
            if(p == NULL)
            {
                LogWarning("from_rpc_call", "rpc Decode error.unknown msgid:%d\n", msg_id);
                return -1;
            }

            if(u.GetDecodeErrIdx() > 0)
            {
                ClearTListObject(p);
                //PrintHexPluto(u);
                LogWarning("from_rpc_call", "rpc Decode error.msgid:%d;pluto err idx=%d\n", msg_id, u.GetDecodeErrIdx());
                return -2;
            }
        }

        //这一段不用加锁
        int nRet = -1;
        switch(msg_id)
        {
            case MSGID_DBMGR_INSERT_ENTITY:
            {
                nRet = InsertDB(p, db);
                break;
            }
            case MSGID_DBMGR_SELECT_ENTITY:
            {
                nRet = LookupEntityByDbId(p, db);
                break;
            }
            case MSGID_DBMGR_UPDATE_ENTITY:
            {
                nRet = UpdateEntity(p, db);
                break;
            }
            case MSGID_DBMGR_UPDATE_ENTITY_REDIS:
            {
                nRet = UpdateEntityToRedis(p, db);
                break;
            }
            case MSGID_DBMGR_SELECT_ACCOUNT:
            {
                nRet = SelectAccount(p, db);
                break;
            }
            case MSGID_DBMGR_RAW_MODIFY_NORESP:
            {
                nRet = QueryModifyNoResp(p, db);
                break;
            }
            case MSGID_DBMGR_CREATEBASE_FROM_NAME:
            {
                nRet = LookupEntityByName(p, db);
                break;
            }
            case MSGID_DBMGR_LOAD_ALL_AVATAR:
            {
                nRet = LoadAllAvatars(p, db);
                break;
            }
            case MSGID_DBMGR_LOAD_ENTITIES_OF_TYPE:
            {
                nRet = LoadEntitiesOfType(p, db);
                break;
            }
            case MSGID_DBMGR_SHUTDOWN_SERVER:
            {
                nRet = ShutdownServer(p);
                break;
            }
            case MSGID_DBMGR_REDIS_HASH_LOAD:
            {
                nRet = RedisHashLoad(p, db);
                break;
            }
            case MSGID_DBMGR_REDIS_HASH_SET:
            {
                nRet = RedisHashSet(p, db);
                break;
            }
            case MSGID_DBMGR_REDIS_HASH_DEL:
            {
                nRet = RedisHashDel(p, db);
                break;
            }
            case MSGID_DBMGR_DEL_ACCOUNT_CACHE:
            {
                nRet = DestroyAccountCache(p);
                break;
            }

            case MSGID_DBMGR_UPDATE_ITEMS:
            {
                nRet = UpdateArrayItemsToDb(p, db);
                break;
            }
            case MSGID_DBMGR_LOADING_ITEMS:
            {
                nRet = LoadingArrayItemsToInventory(p, db);
                break;
            }
            case MSGID_DBMGR_INCREMENTAL_UPDATE_ITEMS:
            {
                nRet = IncremantalUpdateItems(p, db);
                break;
            }

            case MSGID_DBMGR_TABLE_SELECT:
            {
                nRet = TableSelect(p, db);
                break;
            }
            case MSGID_DBMGR_UPDATE_BATCH:
            {
                nRet = TableUpdateBatch(p, db);
                break;
            }
            case MSGID_DBMGR_TABLE_INSERT:
            {
                nRet = TableInsert(p, db);
                break;
            }
            case MSGID_DBMGR_TABLE_EXCUTE:
            {
                nRet = TableExcute(p, db);
                break;
            }
            case MSGID_DBMGR_TABLE2_SELECT:
            {
                nRet = Table2Select(p, db);
                break;
            }
            case MSGID_DBMGR_TABLE2_INSERT:
            {
                nRet = Table2Insert(p, db);
                break;
            }
            case MSGID_DBMGR_TABLE2_EXCUTE:
            {
                nRet = Table2Excute(p, db);
                break;
            }
            default:
            {
                break;
            }
        }

        if(nRet != 0)
        {
            LogWarning("from_rpc_call", "rpc error.msg_id=%d;ret=%d\n", msg_id, nRet);
        }

        ClearTListObject(p);

        return 0;
    }
void ManagerMessage::on_pushButton_clicked()        //修改基本信息
{
    if(MS)
    {
        static bool tf = true;
        if(tf)
        {
            if(super)       //超级管理员
            {
                ui->no->setEnabled(true);
                ui->major->setEnabled(true);
            }
            ui->name->setEnabled(true);
            ui->email->setEnabled(true);
            ui->pushButton->setText("保存信息");

            tf = false;
        }
        else
        {
            if(ui->no->text().isEmpty() || ui->name->text().isEmpty() || ui->email->text().isEmpty())
            {
                Error("请完善信息!");
                return;
            }

            if(super)
            {
                //判断当前工号是否存在
                if(ui->no->text().trimmed() != teacherNo)
                {
                    QString sql1 = "select TName from MANAGER where TeacherNo='" + ui->no->text() + "'";
                    QString name = selectDB(sql1);
                    if(name != WRONG)
                    {
                        Error("当前工号已存在!");
                        return;
                    }
                }

                //删除原记录
                QString sql = "delete from MANAGER where TeacherNo='" + teacherNo + "'";
                QString del = selectDB(sql);
                if(del != WRONG)
                {
                    Error(WRONG);
                    return;
                }

                QString sql2 = "insert into MANAGER(TeacherNo, TPassword, TName, TEmail, TMajor, TManager, TSuperManager) values(?,?,?,?,?,?,?)";
                if(InsertDB(sql2, NULL))
                {
                    Error("保存成功!");
                }
                else
                {
                    Error(WRONG);
                    return;
                }

                ui->no->setEnabled(false);
                ui->major->setEnabled(false);
            }
            else
            {
                QString sql = tr("update MANAGER set TName='%1', TEmail='%2' where TeacherNo='%3'").arg(ui->name->text().trimmed()).arg(ui->email->text().trimmed()).arg(ui->no->text().trimmed());
                QString up = selectDB(sql);
                if(up != WRONG)
                {
                    Error(WRONG);
                    return;
                }

                Error("保存成功!");
            }

            ui->name->setEnabled(false);
            ui->email->setEnabled(false);
            ui->pushButton->setText("修改基本信息");
            tf = true;
        }
    }
    else
    {
        if(ui->no->text().isEmpty() || ui->name->text().isEmpty() || ui->email->text().isEmpty())
        {
            Error("请完善信息!");
            add = false;
            return;
        }

        QString sql2 = "insert into MANAGER(TeacherNo, TPassword, TName, TEmail, TMajor, TManager, TSuperManager) values(?,?,?,?,?,?,?)";
        if(InsertDB(sql2, "ADD"))
        {
            Error(tr("新增成功!默认密码%1").arg("csl123456"));
            add = true;
        }
        else
        {
            Error(WRONG);
            false;
            return;
        }

        this->close();
    }
}
	int CWorldOther::FromRpcCall(CPluto& u, CDbOper& db)
	{
		//printf("CWorldOther::from_rpc_call\n");
		//print_hex_pluto(u);

		pluto_msgid_t msg_id = -1;
		T_VECTOR_OBJECT* p = NULL;

		//这一段要加锁(2012/02/15改为不加锁)
		{
			//CMutexGuard _g(m_rpcMutex);

			msg_id = u.GetMsgId();
			if(!CheckClientRpc(u))
			{
				LogWarning("from_rpc_call", "invalid rpcall error.unknown msgid:%d\n", msg_id);
				return -1;
			}

			p = m_rpc.Decode(u);
			if(p == NULL)
			{
				LogWarning("from_rpc_call", "rpc Decode error.unknown msgid:%d\n", msg_id);
				return -1;
			}

			if(u.GetDecodeErrIdx() > 0)
			{
				ClearTListObject(p);
				//PrintHexPluto(u);
				LogWarning("from_rpc_call", "rpc Decode error.msgid:%d;pluto err idx=%d\n", msg_id, u.GetDecodeErrIdx());
				return -2;
			}
		}

        //这一段不用加锁
        int nRet = -1;
        switch(msg_id)
        {
            case MSGID_LOG_INSERT:
            {
                nRet = InsertDB(p, db);
                break;
            }
            case MSGID_OTHER_HTTP_REQ:
            {
                nRet = ReqUrl(p);
                break;
            }
            case MSGID_ALLAPP_SHUTDOWN_SERVER:
            {
                nRet = ShutdownServer(p);
                break;
            }
            case MSGID_OTHER_ADD_GLOBALBASE:
            {
                nRet = RegisterGlobally(p);
                break;
            }
            case MSGID_OTHER_YUNYING_API:
            {
                nRet = SupportApi(p, u.GetMailbox(), db);
                break;
            }
            case MSGID_OTHER_CLIENT_RESPONSE:
            {
                nRet = Response2Browser(p);
				PrintHexPluto(u);
                break;
            }
            //case MSGID_OTHER_LOGIN_VERIFY:
            //{
            //    //todo:verify
            //    nRet = SdkServerVerify(p, u);
            //    break;
            //}
// 			case MSGID_OTHER_PLAT_API:
// 			{
// 				nRet = PlatApi(p, u.GetMailbox(), db);
// 				break;
// 			}
            default:
            {
                LogWarning("from_rpc_call", "rpc unkown msg_id = %d\n", msg_id, nRet);
                break;
            }
        }

		if(nRet != 0)
		{
			LogWarning("from_rpc_call", "rpc error.msg_id=%d;ret=%d\n", msg_id, nRet);
		}

		ClearTListObject(p);

		return 0;
	}