亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? addrecord.cpp

?? 點歌系統
?? CPP
字號:
// AddRecord.cpp: implementation of the CAddRecord class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "songserver.h"
#include "AddRecord.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

//連接數據庫的指針
_ConnectionPtr CAddRecord::m_pConnectionPtr = NULL;  

CAddRecord::CAddRecord()
{
	m_pstrUserlist = NULL;
}

CAddRecord::~CAddRecord()
{
 	if( m_pstrUserlist != NULL )
	{
		delete[] m_pstrUserlist;
		m_pstrUserlist = NULL;
	}
}

//-------------------------------------------------------
//從外界得到連接到數據的指針
//-------------------------------------------------------
void CAddRecord::SetConnectionPtr(_ConnectionPtr pConnectionPtr)
{
    m_pConnectionPtr = pConnectionPtr;
}

BOOL CAddRecord::PointerIsNull()
{
	if( m_pConnectionPtr == NULL )
	{
		AfxMessageBox("連接數據庫的指針為空,請先設置指針");
		return false;
	}

	return true;
}

//--------------------------------------------------
//下面為歌曲表操作
//--------------------------------------------------
BOOL CAddRecord::SaveRecord(CString strSongname, 
							CString strNameLen, 
							CString strSpeech, 
							CString strFstalphabet, 
							CString strSinger, 
							CString strSongpath, 
							BOOL bNewrecord, 
							int nID)
{
	if( !PointerIsNull() )
		return false;

	if( strSongname.IsEmpty() || strNameLen.IsEmpty() || strSpeech.IsEmpty() 
		|| strFstalphabet.IsEmpty() || strSinger.IsEmpty() || strSongpath.IsEmpty())
	{
		AfxMessageBox("數據不能為空,請重新輸入.");
		return false;
	}

  	// 在ADO操作中建議語句中要常用try...catch()來捕獲錯誤信息,
	// 因為它有時會經常出現一些想不到的錯誤。
	try
	{
		_RecordsetPtr pSonglistPtr;
		pSonglistPtr.CreateInstance(__uuidof(Recordset));
 		if( bNewrecord )//如果是新記錄,則按ID倒序排序,得到當前最大的ID,新記錄的ID自動加1
		{
			pSonglistPtr->Open( "select * from songlist order by ID DESC", 
				m_pConnectionPtr.GetInterfacePtr(), 
				adOpenDynamic,
				adLockOptimistic,
				adCmdText );
			
			int nMaxid;
			_variant_t vtMaxid;
			if( !pSonglistPtr->BOF )//根據排序結果,得到最大ID
			{
				pSonglistPtr->MoveFirst();
				vtMaxid = pSonglistPtr->GetCollect("ID");
				nMaxid = atoi((_bstr_t)vtMaxid);
			}
			else//表為空,最大ID值為0
				nMaxid = 0;
			
			char szIndex[10];
			itoa(++nMaxid, szIndex,   10);
			
			pSonglistPtr->AddNew();//執行新增操作
			pSonglistPtr->PutCollect("ID",          (_variant_t)szIndex);//寫ID
		}
		else//如果不是新記錄,則執行重寫操作,根據nID找到需要重寫的記錄
		{
			if( nID == -1 )
			{
				AfxMessageBox("ID值錯誤");
				return false;
			}

			CString strsql;
			strsql.Format("select * from songlist where ID = %d", nID);
			pSonglistPtr->Open( (_bstr_t)strsql, 
				m_pConnectionPtr.GetInterfacePtr(), 
				adOpenDynamic,
				adLockOptimistic,
				adCmdText );
		}
		
	//	CString strNamelen;
	//	strNamelen.Format("%d", (strSpeech == "國語") ? strSongname.GetLength()/2 : strSongname.GetLength());

		pSonglistPtr->PutCollect("songname",    (_variant_t)strSongname);
		pSonglistPtr->PutCollect("namelen",     (_variant_t)strNameLen);
		pSonglistPtr->PutCollect("speech",      (_variant_t)strSpeech);
		pSonglistPtr->PutCollect("fstalphabet", (_variant_t)strFstalphabet);
		pSonglistPtr->PutCollect("singer",      (_variant_t)strSinger);
		pSonglistPtr->PutCollect("songpath",    (_variant_t)strSongpath);
		pSonglistPtr->Update();
	}
	catch(_com_error e)
	{
		AfxMessageBox((CString)"保存數據出錯: " + e.ErrorMessage());
		return false;
	}

	AfxMessageBox( bNewrecord ? "添加歌曲成功." : "修改記錄成功.", MB_OK | MB_ICONINFORMATION);
	return true;
}

//------------------------------------------------------------
//刪除記錄,nIndex為0時刪除當前記錄,不為0時刪除ID為nIndex的記錄
//------------------------------------------------------------
BOOL CAddRecord::DeleteRecord(int nIndex)
{
	if( !PointerIsNull() )
		return false;

	try
	{
		CString strsql;
		strsql.Format("delete from songlist where ID=%d", nIndex);
	
  		_variant_t RecordsAffected;
		m_pConnectionPtr->Execute((_bstr_t)strsql, &RecordsAffected, adCmdText);
	}
	catch(_com_error e)
	{
		AfxMessageBox((CString)"刪除數據出錯: " + e.ErrorMessage());
		return false;
	}
	
 	return true;
}

_RecordsetPtr CAddRecord::GetRecordsetPtr(LPCTSTR lpszsql)
{
	if( !PointerIsNull() )
		return NULL;

    _variant_t RecordsAffected;
 	return m_pConnectionPtr->Execute((_bstr_t)lpszsql, &RecordsAffected, adCmdText);
}
//-------------------------------------------------------
//上面為歌曲表操作
//-------------------------------------------------------

//-------------------------------------------------------
//下面為用戶表操作
//-------------------------------------------------------
BOOL CAddRecord::AdminLogin(CString &strUsername, CString &strPassword)
{
	if( !PointerIsNull() )
		return false;

	CString strsql;
	strsql.Format("select * from userinfo where username='%s' and password='%s' and levels=0", \
		strUsername, strPassword);

	try
	{
		_RecordsetPtr pUserinfoPtr;
		pUserinfoPtr.CreateInstance(__uuidof(Recordset));
		pUserinfoPtr->Open( (_bstr_t)strsql,
			m_pConnectionPtr.GetInterfacePtr(),
			adOpenDynamic,
			adLockOptimistic,
			adCmdText );
		
		if( pUserinfoPtr->BOF )
			return false;	
	}
	catch(_com_error e)
	{
		AfxMessageBox((CString)e.ErrorMessage() + "登錄出錯");
		return false;
	}

	return true;
}

BOOL CAddRecord::UserLogin(CString strUsername, CString strPassword)
{
	if( !PointerIsNull() )
		return false;

	CString strsql;
	strsql.Format("select * from userinfo where username='%s' and password='%s'", 
		strUsername, strPassword);

	try
	{
		_RecordsetPtr pUserinfoPtr;
		pUserinfoPtr.CreateInstance(__uuidof(Recordset));
		pUserinfoPtr->Open( (_bstr_t)strsql,
			m_pConnectionPtr.GetInterfacePtr(),
			adOpenDynamic,
			adLockOptimistic,
			adCmdText );
		
		if( pUserinfoPtr->adoEOF )
			return false;	
	}
	catch(_com_error e)
	{
		AfxMessageBox((CString)e.ErrorMessage() + "登錄出錯");
		return false;
	}

	return true;
}

BOOL CAddRecord::AddUser(CString strUsername, 
						 CString strPassword, 
						 CString strLevels)
{
	if( !PointerIsNull() )
		return false;

 	if(strUsername.IsEmpty() || strPassword.IsEmpty() || strLevels.IsEmpty())
	{
		AfxMessageBox("數據不能為空,請重新輸入.");
		return false;
	}

	try
	{
 		if(strLevels == "管理員")
			strLevels.Format("%d", 0);
		else
			strLevels.Format("%d", 1);

		_RecordsetPtr pUserinfoPtr;
		pUserinfoPtr.CreateInstance(__uuidof(Recordset));
		pUserinfoPtr->Open("select * from userinfo",
			m_pConnectionPtr.GetInterfacePtr(),
			adOpenDynamic,
			adLockOptimistic,
			adCmdText );
 
		pUserinfoPtr->AddNew();
		pUserinfoPtr->PutCollect("username", (_variant_t)(_bstr_t)strUsername);
		pUserinfoPtr->PutCollect("password", (_variant_t)(_bstr_t)strPassword);
		pUserinfoPtr->PutCollect("levels",   (_variant_t)(_bstr_t)strLevels);
		pUserinfoPtr->Update();
	}
	catch(_com_error e)
	{
 		AfxMessageBox((CString)"增加用戶出錯: " + e.ErrorMessage());
		return false;
	}

	AfxMessageBox("增加成功", MB_OK | MB_ICONINFORMATION);
	return true;
}

BOOL CAddRecord::DeleteUser(CString strUsername)
{
	if( !PointerIsNull() )
		return false;

 	if( strUsername.IsEmpty() )
	{
		AfxMessageBox("數據不能為空,請重新輸入.");
		return false;
	}

	try
	{
		_variant_t RecordsAffected;
		CString strsql;
		strsql.Format("delete from userinfo where username = '%s'", strUsername);
 		m_pConnectionPtr->Execute((_bstr_t)strsql, &RecordsAffected, adCmdText);
	}
	catch(_com_error e)
	{
 		AfxMessageBox((CString)"刪除用戶出錯: " + e.ErrorMessage());
		return false;
	}

	AfxMessageBox("刪除成功", MB_OK | MB_ICONINFORMATION);	
	return true;
}

CString* CAddRecord::GetUserlist(int *nCount)
{
	if( !PointerIsNull() )
		return NULL;

	try
	{
		int Count=0;
		_variant_t RecordsAffected;
		_bstr_t bstrsql = "select * from userinfo";

 		_RecordsetPtr pUserinfoPtr;
 		pUserinfoPtr = m_pConnectionPtr->Execute(bstrsql, &RecordsAffected, adCmdText);
		
		if( !pUserinfoPtr->BOF )
			pUserinfoPtr->MoveFirst();
		else
		{
			AfxMessageBox("表為空.");
			return NULL;
		}
			
 		while( !pUserinfoPtr->adoEOF )
		{
			Count++;
 			pUserinfoPtr->MoveNext();
		}
		*nCount = Count;

 		if( m_pstrUserlist != NULL)
		{
			delete[] m_pstrUserlist;
			m_pstrUserlist = NULL;
		}
		m_pstrUserlist = new CString[ Count ];

		int i=0;
		_variant_t username;
		pUserinfoPtr->MoveFirst();
		while(!pUserinfoPtr->adoEOF)
		{
 			username = pUserinfoPtr->GetCollect("username");
			m_pstrUserlist[ i++ ] = (LPCTSTR)(_bstr_t)username;
 			pUserinfoPtr->MoveNext();
		}
	}
	catch(_com_error e)
	{
 		AfxMessageBox( (CString)"取用戶列表出錯: " + e.ErrorMessage() );
		return NULL;
	}

	return m_pstrUserlist;
}

CString CAddRecord::GetUserLevels(CString strUsername)
{
	if( !PointerIsNull() )
		return "";

	if( strUsername.IsEmpty() )
	{
		AfxMessageBox("用戶名為空.");
		return "";
	}

 	_variant_t levels;
	try
	{
		int Count=0;
		CString strsql;
		strsql.Format("select levels from userinfo where username = '%s'", strUsername);

 		_RecordsetPtr pUserinfoPtr;
		_variant_t    RecordsAffected;
 		pUserinfoPtr = m_pConnectionPtr->Execute((_bstr_t)strsql, &RecordsAffected, adCmdText);
	
		if( !pUserinfoPtr->BOF )
			pUserinfoPtr->MoveFirst();
		else
		{
			AfxMessageBox("用戶名不存在.");
			return "";
		}

		pUserinfoPtr->MoveFirst();
		levels = pUserinfoPtr->GetCollect("levels");
	}
	catch(_com_error e)
	{
 		AfxMessageBox( (CString)"出錯: " + e.ErrorMessage() );
		return "";
	}
	
 	return (LPCTSTR)(_bstr_t)levels;
}
//-------------------------------------------------------
//上面為用戶表操作
//-------------------------------------------------------

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
天天色天天操综合| 色琪琪一区二区三区亚洲区| 色综合婷婷久久| 欧美不卡在线视频| 亚洲伊人伊色伊影伊综合网| 国产激情91久久精品导航| 欧美三级日韩三级国产三级| 日本一区二区三区视频视频| 男女男精品网站| 在线日韩国产精品| 亚洲欧洲av色图| 高清不卡在线观看| 欧美mv日韩mv亚洲| 午夜影院久久久| 在线观看国产一区二区| 中文字幕一区在线观看视频| 国产一区二区三区精品欧美日韩一区二区三区 | 亚洲第一会所有码转帖| www.日韩精品| 欧美经典一区二区三区| 国产一区欧美二区| 337p粉嫩大胆色噜噜噜噜亚洲| 亚洲国产精品一区二区www在线 | 欧美精品乱码久久久久久按摩| 日韩一区日韩二区| 北岛玲一区二区三区四区| 久久久久久久久久久久电影| 韩国成人福利片在线播放| 亚洲欧美日韩久久| 不卡的av在线| 最近中文字幕一区二区三区| 成人动漫视频在线| 综合电影一区二区三区 | 国产麻豆精品视频| 久久综合狠狠综合久久综合88 | 亚洲一区在线观看免费观看电影高清 | 6080午夜不卡| 视频一区国产视频| 日韩三级电影网址| 国产一区二区中文字幕| 国产视频一区二区三区在线观看| 国产精品1024| 亚洲人亚洲人成电影网站色| 色偷偷成人一区二区三区91| 亚洲国产中文字幕| 欧美一区二区久久久| 国产一区二区三区四区五区美女| 国产精品视频九色porn| 在线免费观看日韩欧美| 天堂va蜜桃一区二区三区漫画版| 欧美一区二区私人影院日本| 国产一区欧美日韩| 亚洲欧洲美洲综合色网| 欧美欧美午夜aⅴ在线观看| 免费高清视频精品| 中文字幕在线一区| 欧美日韩成人综合天天影院| 精品在线观看视频| 亚洲欧美色图小说| 777欧美精品| 成人永久aaa| 图片区日韩欧美亚洲| 久久久精品黄色| 欧美性做爰猛烈叫床潮| 久久国产夜色精品鲁鲁99| 国产精品色哟哟网站| 欧美日韩视频在线一区二区| 精品视频一区二区不卡| 日本一区二区三区高清不卡| 色婷婷av一区二区三区之一色屋| 日韩专区中文字幕一区二区| 国产午夜精品一区二区| 在线视频一区二区免费| 欧美精三区欧美精三区| 一区二区三区在线视频免费| 69精品人人人人| 白白色 亚洲乱淫| 日韩二区三区在线观看| 国产精品久久久久久久久搜平片| 欧美午夜不卡视频| 成人精品国产免费网站| 免费成人美女在线观看.| 亚洲色图另类专区| 久久蜜桃一区二区| 欧美视频在线一区二区三区 | 精品久久久久久无| 91成人免费在线| 国产久卡久卡久卡久卡视频精品| 亚洲第一成人在线| 亚洲欧美综合在线精品| 久久久久久久综合日本| 91精品国产入口在线| 91久久久免费一区二区| av中文字幕亚洲| 国产69精品久久99不卡| 韩国精品主播一区二区在线观看 | 亚洲成人动漫精品| 亚洲色图一区二区三区| 久久久蜜桃精品| 欧美大片一区二区| 欧美电影在哪看比较好| 欧美午夜不卡在线观看免费| 色婷婷精品大在线视频| av福利精品导航| 成人国产在线观看| 国产suv精品一区二区883| 国内精品伊人久久久久av影院| 日韩av中文字幕一区二区三区| 亚洲自拍偷拍网站| 亚洲一区二区综合| 一区二区三区中文在线| 亚洲一区二区三区小说| 亚洲美女视频一区| 一区二区三区四区国产精品| 亚洲欧洲日韩av| 最新国产成人在线观看| 亚洲理论在线观看| 一区2区3区在线看| 亚洲国产视频一区二区| 亚洲不卡av一区二区三区| 婷婷成人激情在线网| 日本美女视频一区二区| 免费看黄色91| 国产一区二区三区美女| 国产成人av一区二区| av亚洲精华国产精华| 在线观看国产精品网站| 欧美日韩一级片在线观看| 日韩一区二区视频在线观看| 精品国产在天天线2019| 欧美国产精品中文字幕| 亚洲精品免费在线播放| 日日欢夜夜爽一区| 久久99精品久久久久婷婷| 国产成人啪午夜精品网站男同| 91香蕉视频mp4| 欧美日韩一级视频| 久久综合视频网| 亚洲视频一区在线| 日韩黄色免费电影| 丁香婷婷综合色啪| 欧美视频一区在线| wwwwww.欧美系列| 亚洲日本在线天堂| 蜜芽一区二区三区| bt欧美亚洲午夜电影天堂| 欧美精品日韩精品| 国产片一区二区| 天堂精品中文字幕在线| 成人亚洲精品久久久久软件| 欧美性三三影院| 国产视频一区二区三区在线观看| 亚洲一区二区黄色| 国产一区二区三区最好精华液| 99精品热视频| 日韩欧美一级特黄在线播放| 亚洲日本在线观看| 国产剧情在线观看一区二区| 欧洲精品一区二区| 国产日韩欧美制服另类| 人妖欧美一区二区| 色综合久久综合中文综合网| 久久久久97国产精华液好用吗| 亚洲成人av一区| 91在线国产福利| 久久婷婷色综合| 日韩不卡手机在线v区| 91网站在线观看视频| 国产亚洲一本大道中文在线| 五月天中文字幕一区二区| 99久久久精品| 国产亚洲综合性久久久影院| 日韩和欧美一区二区三区| 91在线观看地址| 国产欧美精品一区二区三区四区 | 99久久国产综合色|国产精品| 欧美狂野另类xxxxoooo| 亚洲人成伊人成综合网小说| 国产a级毛片一区| 日韩欧美电影一区| 日韩制服丝袜av| 欧美午夜精品理论片a级按摩| 亚洲婷婷国产精品电影人久久| 国产精品一品视频| 精品国产3级a| 久久国产精品色婷婷| 欧美一级免费大片| 日韩av一区二区在线影视| 欧美色综合久久| 亚洲3atv精品一区二区三区| 色一情一伦一子一伦一区| 中文字幕亚洲综合久久菠萝蜜| 丰满岳乱妇一区二区三区| 国产清纯在线一区二区www| 国产精品伊人色| 国产日本亚洲高清| 国产激情精品久久久第一区二区 | 国产女人aaa级久久久级| 国产一区二区在线视频| 国产日韩一级二级三级|