⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 items.cpp

📁 Vc.Net入门与提高源码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	}

	BEGIN_REPLACEMENT_METHOD_MAP(CEditItem)
		REPLACEMENT_METHOD_ENTRY("GetError", OnGetError)
		REPLACEMENT_METHOD_ENTRY("GetShortDesc", OnGetShortDesc)
		REPLACEMENT_METHOD_ENTRY("GetLongDesc", OnGetLongDesc)
		REPLACEMENT_METHOD_ENTRY("GetItemID", OnGetItemID)
		REPLACEMENT_METHOD_ENTRY("GetLoggedOnUserID", OnGetLoggedOnUserID)
		REPLACEMENT_METHOD_ENTRY("IsLoggedOn", OnIsLoggedOn)
	END_REPLACEMENT_METHOD_MAP()
};
class CViewItem : public CRequestHandlerT<CViewItem>
{
private:
	CCommand< CAccessor<CBidInfoWithUser> > m_BidInfo;
	char m_szItemName[51];
	char m_szItemDesc[65536];
	char m_szItemUserName[51];
	char m_szItemUserID[20];
	char m_szItemID[51];
	bool m_bDisplayAll;

public:
    HTTP_CODE ValidateAndExchange()
	{
		strncpy(m_szItemID, m_HttpRequest.m_QueryParams.Lookup("itemid"), sizeof(m_szItemID) - 1);
		LPCSTR view = m_HttpRequest.m_QueryParams.Lookup("view");

        if (view == NULL || !strcmp(view, "short"))
			m_bDisplayAll = false;
		else
			m_bDisplayAll = true;

        CDataConnection DC;
        if (GetDataSource(m_spServiceProvider, DATASOURCE, CONNECTION_STRING, &DC) != S_OK)
		{
            m_HttpResponse.Redirect("dberror.htm");
			return HTTP_SUCCESS_NO_PROCESS;
		}

		CString strCommand;
		strCommand.Format("SELECT [Bids].*, [User Information].[User Name] FROM [Bids], [User Information] WHERE ([Bids].[Item ID]=%s And [User Information].[User ID]=[Bids].[User ID]) ORDER BY [Bids].[Bid Amount] DESC", m_szItemID);
			
		if (m_BidInfo.Open(DC, strCommand, NULL, NULL, DBGUID_DEFAULT, true) != S_OK)
		{
            m_HttpResponse.Redirect("dberror.htm");
			return HTTP_SUCCESS_NO_PROCESS;
		}

		CCommand< CAccessor<CItemInfo> > ItemInfo;
		strCommand.Format("SELECT * FROM [Items] WHERE [Items].[Item ID]=%s", m_szItemID);
		if (ItemInfo.Open(DC, strCommand, NULL, NULL, DBGUID_DEFAULT, true) != S_OK)
		{
            m_HttpResponse.Redirect("dberror.htm");
			return HTTP_SUCCESS_NO_PROCESS;
		}

		if (ItemInfo.MoveFirst() != S_OK)
		{
            m_HttpResponse.Redirect("dberror.htm");
			return HTTP_SUCCESS_NO_PROCESS;
		}
		strncpy(m_szItemName, ItemInfo.m_szShortDesc, sizeof(m_szItemName) - 1);
        strncpy(m_szItemDesc, ItemInfo.m_szLongDesc,sizeof(m_szItemDesc) - 1);

		CCommand< CAccessor<CUserInfo> > UserInfo;
		strCommand.Format("SELECT * FROM [User Information] WHERE [User Information].[User ID]=%d", ItemInfo.m_dwUserID);
		if (UserInfo.Open(DC, strCommand, NULL, NULL, DBGUID_DEFAULT, true) != S_OK)
		{
            m_HttpResponse.Redirect("dberror.htm");
			return HTTP_SUCCESS_NO_PROCESS;
		}

		if (UserInfo.MoveFirst() != S_OK)
		{
            m_HttpResponse.Redirect("dberror.htm");
			return HTTP_SUCCESS_NO_PROCESS;
		}
		strncpy(m_szItemUserName, UserInfo.m_szUserName, sizeof(m_szItemUserName) - 1);
		sprintf(m_szItemUserID, "%d", ItemInfo.m_dwUserID);

		return HTTP_SUCCESS;
	}

	HTTP_CODE OnItemName()
	{
		m_HttpResponse << m_szItemName;
		return HTTP_SUCCESS;
	}

	HTTP_CODE OnItemDesc()
	{
		m_HttpResponse << m_szItemDesc;
		return HTTP_SUCCESS;
	}

	HTTP_CODE OnGetItemID()
	{
		m_HttpResponse << m_szItemID;
		return HTTP_SUCCESS;
	}

	HTTP_CODE OnGetNextBid()
	{
		if (m_BidInfo.MoveNext() != S_OK)
            return HTTP_S_FALSE;
        else
            return HTTP_SUCCESS;
	}

	HTTP_CODE OnGetBidderID()
	{
        m_HttpResponse << m_BidInfo.m_dwUserID;
		return HTTP_SUCCESS;
	}

	HTTP_CODE OnGetBidderName()
	{
        m_HttpResponse << m_BidInfo.m_szUserName;
		return HTTP_SUCCESS;
	}

	HTTP_CODE OnGetBidAmount()
	{
        m_HttpResponse << m_BidInfo.m_cBidAmount;
		return HTTP_SUCCESS;
	}

	HTTP_CODE OnGetUserID()
	{
		m_HttpResponse << m_szItemUserID;
		return HTTP_SUCCESS;
	}

	HTTP_CODE OnGetUserName()
	{
		m_HttpResponse << m_szItemUserName;
		return HTTP_SUCCESS;
	}

	HTTP_CODE OnIsFullDisplay()
	{
		if (m_bDisplayAll) 
            return HTTP_SUCCESS;
		else 
            return HTTP_S_FALSE;
	}

	HTTP_CODE OnIsNotFullDisplay()
	{
		if (m_bDisplayAll) 
            return HTTP_S_FALSE;
		else 
            return HTTP_SUCCESS;
	}

	HTTP_CODE OnIsLoggedOn()
	{
		const CCookie &c = m_HttpRequest.Cookies("userid");

		if (c.IsEmpty())
			return HTTP_S_FALSE;
		else 
			return HTTP_SUCCESS;
	}


	HTTP_CODE OnGetLoggedOnUserID()
	{
		LPCSTR szUID = (LPCSTR)m_HttpRequest.Cookies("userid").m_strValue;
		m_HttpResponse << szUID;

		return HTTP_SUCCESS;
	}

	BEGIN_REPLACEMENT_METHOD_MAP(CViewItem)
		REPLACEMENT_METHOD_ENTRY("ItemName", OnItemName)
		REPLACEMENT_METHOD_ENTRY("ItemDescription", OnItemDesc)
		REPLACEMENT_METHOD_ENTRY("GetItemID", OnGetItemID)
		REPLACEMENT_METHOD_ENTRY("GetNextBid", OnGetNextBid)
		REPLACEMENT_METHOD_ENTRY("GetBidderID", OnGetBidderID)
		REPLACEMENT_METHOD_ENTRY("GetBidderName", OnGetBidderName)
		REPLACEMENT_METHOD_ENTRY("GetBidAmount", OnGetBidAmount)
		REPLACEMENT_METHOD_ENTRY("GetUserID", OnGetUserID)
		REPLACEMENT_METHOD_ENTRY("GetUserName", OnGetUserName)
		REPLACEMENT_METHOD_ENTRY("IsFullDisplay", OnIsFullDisplay)
		REPLACEMENT_METHOD_ENTRY("IsNotFullDisplay", OnIsNotFullDisplay)
		REPLACEMENT_METHOD_ENTRY("GetLoggedOnUserID", OnGetLoggedOnUserID)
		REPLACEMENT_METHOD_ENTRY("IsLoggedOn", OnIsLoggedOn)
	END_REPLACEMENT_METHOD_MAP()
};
class CBrowse : public CRequestHandlerT<CBrowse>
{
private:
	CCommand< CAccessor<CItemInfo> > m_ItemInfo;

public:
    HTTP_CODE ValidateAndExchange()
    {
        CDataConnection DC;
        if (GetDataSource(m_spServiceProvider, DATASOURCE, CONNECTION_STRING, &DC) != S_OK)
		{
            m_HttpResponse.Redirect("dberror.htm");
			return HTTP_SUCCESS_NO_PROCESS;
		}

		CString strCommand;
		strCommand.Format("SELECT * FROM [Items]");
		if (m_ItemInfo.Open(DC, strCommand, NULL, NULL, DBGUID_DEFAULT, true) != S_OK)
		{
            m_HttpResponse.Redirect("dberror.htm");
			return HTTP_SUCCESS_NO_PROCESS;
		}

		return HTTP_SUCCESS;
	}
	
	HTTP_CODE OnGetNextItem()
	{
		if (m_ItemInfo.MoveNext() != S_OK)
            return HTTP_S_FALSE;
        else
            return HTTP_SUCCESS;
	}

	HTTP_CODE OnGetItemName()
	{
		m_HttpResponse << m_ItemInfo.m_szShortDesc;

		return HTTP_SUCCESS;
	}

	HTTP_CODE OnGetItemID()
	{
        m_HttpResponse << m_ItemInfo.m_dwItemID;

		return HTTP_SUCCESS;
	}

	HTTP_CODE OnGetStartDate()
	{
		char szDate[255];
		char szTime[255];
		dbl2str(m_ItemInfo.m_dStartDate, szDate, szTime);
        m_HttpResponse << szDate << ", " << szTime;

		return HTTP_SUCCESS;
	}

	HTTP_CODE OnGetEndDate()
	{
		char szDate[255];
		char szTime[255];
		dbl2str(m_ItemInfo.m_dEndDate, szDate, szTime);
        m_HttpResponse << szDate << ", " << szTime;

		return HTTP_SUCCESS;
	}

	HTTP_CODE OnGetMaxBid()
	{
		CString strCommand;

		strCommand.Format("SELECT Max([Bids].[Bid Amount]) FROM [Bids] GROUP BY [Bids].[Item ID] HAVING [Bids].[Item ID]=%d", m_ItemInfo.m_dwItemID);
		CCommand< CAccessor<CMaxBid> > MaxBid;
        CDataConnection DC;
        if (GetDataSource(m_spServiceProvider, DATASOURCE, CONNECTION_STRING, &DC) != S_OK)
		{
            m_HttpResponse.Redirect("dberror.htm");
			return HTTP_SUCCESS_NO_PROCESS;
		}

		if (MaxBid.Open(DC, strCommand, NULL, NULL, DBGUID_DEFAULT, true) != S_OK)
		{
			return HTTP_SUCCESS;
		}

		if (MaxBid.MoveNext() == S_OK)
		{
            m_HttpResponse << MaxBid.m_cBidAmount;
		}
		else
        {
            CURRENCY c;
            c.int64 = 0;
            m_HttpResponse << c;
        }

		return HTTP_SUCCESS;
	}

	HTTP_CODE OnIsLoggedOn()
	{
		const CCookie &c = m_HttpRequest.Cookies("userid");

		if (c.IsEmpty())
			return HTTP_S_FALSE;
		else 
			return HTTP_SUCCESS;
	}

	HTTP_CODE OnGetLoggedOnUserID()
	{
		LPCSTR szUID = (LPCSTR)m_HttpRequest.Cookies("userid").m_strValue;
		m_HttpResponse << szUID;

		return HTTP_SUCCESS;
	}


	BEGIN_REPLACEMENT_METHOD_MAP(CBrowse)
		REPLACEMENT_METHOD_ENTRY("GetNextItem", OnGetNextItem)
		REPLACEMENT_METHOD_ENTRY("GetItemName", OnGetItemName)
		REPLACEMENT_METHOD_ENTRY("GetItemID", OnGetItemID)
		REPLACEMENT_METHOD_ENTRY("GetStartDate", OnGetStartDate)
		REPLACEMENT_METHOD_ENTRY("GetEndDate", OnGetEndDate)
		REPLACEMENT_METHOD_ENTRY("GetMaxBid", OnGetMaxBid)
		REPLACEMENT_METHOD_ENTRY("IsLoggedOn", OnIsLoggedOn)
		REPLACEMENT_METHOD_ENTRY("GetLoggedOnUserID", OnGetLoggedOnUserID)
	END_REPLACEMENT_METHOD_MAP()
};

BEGIN_HANDLER_MAP()
	HANDLER_ENTRY("Browse", CBrowse)
	HANDLER_ENTRY("ViewItem", CViewItem)
	HANDLER_ENTRY("AddItem", CAddItem)
	HANDLER_ENTRY("EditItem", CEditItem)
END_HANDLER_MAP()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -