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

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

?? ociexampledlg.cpp

?? 使用OCI訪問Oracle數據庫。包含基本的數據庫連接、訪問、更新等操作。
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
	m_grid.SetColWidth(0,500);		//設置第0列寬度
	m_grid.SetColWidth(1,1000);		//設置第1列寬度
	for(int i=2;i<=4;i++)				//設置第2-4列寬度
	m_grid.SetColWidth(i,900);		//設置第5列寬度
	m_grid.SetColWidth(5,1100);		//設置第6列寬度
	
}

void COCIExampleDlg::OnDestroy() 
{
	CDialog::OnDestroy();
	
	//代碼4.5.1,//結束會話
	OCISessionEnd(svchp, errhp, authp, (ub4) 0);
	//斷開與數據庫的連接
	OCIServerDetach(srvhp, errhp, OCI_DEFAULT);
	//釋放OCI句柄
	OCIHandleFree((dvoid*)srvhp, OCI_HTYPE_SERVER);
	OCIHandleFree((dvoid*)svchp, OCI_HTYPE_SVCCTX);
	OCIHandleFree((dvoid*)errhp, OCI_HTYPE_ERROR);
	OCIHandleFree((dvoid*)authp, OCI_HTYPE_SESSION );
	OCIHandleFree((dvoid*)stmthp, OCI_HTYPE_STMT );
	OCIHandleFree((dvoid*)dschp, OCI_HTYPE_DESCRIBE);
	
}

void COCIExampleDlg::OnButtonExit() 
{
	this->EndDialog(IDOK);	
}

//初始化OCI
void COCIExampleDlg::Init_OCI()
{
	//代碼4.1.2,初始化OCI環境
	OCIEnvInit(&envhp, OCI_DEFAULT,0, 0);

	//代碼4.2.1:分配句柄與數據結構
	OCIHandleAlloc(envhp, (dvoid**)&errhp,OCI_HTYPE_ERROR, 0, 0);  	//分配錯誤句柄
	ErrorProc (errhp,OCIHandleAlloc(envhp, (dvoid**)&srvhp, OCI_HTYPE_SERVER, 0, 0)); 	//分配服務器句柄
	ErrorProc (errhp,OCIHandleAlloc(envhp, (dvoid**)&svchp, OCI_HTYPE_SVCCTX, 0, 0 )); //分配服務環境句柄
	ErrorProc (errhp,OCIHandleAlloc(envhp, (dvoid**)&authp, OCI_HTYPE_SESSION, 0, 0)); 	//分配會話句柄
	ErrorProc (errhp,OCIHandleAlloc((dvoid*)envhp,(dvoid**)&dschp, OCI_HTYPE_DESCRIBE,0,0)); //分配描述句柄
	ErrorProc (errhp,OCIHandleAlloc ((dvoid*)envhp,(dvoid**)&stmthp,OCI_HTYPE_STMT, 0, 0)); //分配語句句柄
	/*
	  說明:常量"OC_ HTYPE _STMT"等等是OCI句柄的宏定義,標明我們所分配的句柄的類型。
	  句柄的宏定義具體可以參考oci. h文件中的"Handle Types"部分。
	 */

	//代碼4.3.2,連接數據庫
	ErrorProc(errhp,OCIServerAttach(srvhp, errhp,(unsigned char*)(LPCTSTR)
		m_strServerName, (sb4)strlen(m_strServerName),OCI_DEFAULT));
	
	//	設置服務環境的服務器屬性	
	ErrorProc (errhp, OCIAttrSet ((dvoid*)svchp, (ub4) OCI_HTYPE_SVCCTX, 
		(dvoid*)srvhp, (ub4) 0,OCI_ATTR_SERVER, errhp));

	//代碼4.3.3,認證用戶并且開始會話
	//認證用戶名稱;
	ErrorProc(errhp,OCIAttrSet(authp,OCI_HTYPE_SESSION,(dvoid*)(LPCTSTR)m_strUserName,
		(ub4)strlen(m_strUserName),OCI_ATTR_USERNAME,errhp));
	//認證用戶密碼
	ErrorProc(errhp,OCIAttrSet(authp,OCI_HTYPE_SESSION,(dvoid*)(LPCTSTR)m_strPassword,
		(ub4)strlen(m_strPassword), OCI_ATTR_PASSWORD,errhp));
	//創建并開始一個用戶會話,應用程序必須在連接服務器之后才能調用該函數
	ErrorProc(errhp,OCISessionBegin (svchp, errhp, authp,OCI_CRED_RDBMS,OCI_DEFAULT));
	
	//設置服務器環境的會話屬性
	ErrorProc(errhp,OCIAttrSet(svchp, OCI_HTYPE_SVCCTX,(dvoid*)authp, 0, OCI_ATTR_SESSION, errhp));

}

BEGIN_EVENTSINK_MAP(COCIExampleDlg, CDialog)
    //{{AFX_EVENTSINK_MAP(COCIExampleDlg)
	ON_EVENT(COCIExampleDlg, IDC_MSFLEXGRID, -600 /* Click */, OnClickMsflexgrid, VTS_NONE)
	//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()

void COCIExampleDlg::OnClickMsflexgrid() 
{
    if(m_grid.GetRow()<1) return;
	
	m_name=m_grid.GetTextMatrix(m_grid.GetRow(),1);
	m_english=atoi(m_grid.GetTextMatrix(m_grid.GetRow(),2));
	m_politics=atoi(m_grid.GetTextMatrix(m_grid.GetRow(),3));
	m_speciality1=atoi(m_grid.GetTextMatrix(m_grid.GetRow(),4));
	m_speciality2=atoi(m_grid.GetTextMatrix(m_grid.GetRow(),5));
	m_totalscore=atoi(m_grid.GetTextMatrix(m_grid.GetRow(),6));
	this->UpdateData (FALSE);
	
}



//英語成績改變時,總成績也應隨著動態改變
void COCIExampleDlg::OnChangeEditEnglish() 
{
	this->UpdateData (TRUE); //更新數據
	m_totalscore=m_english+m_politics+m_speciality1+m_speciality2;
	this->UpdateData (FALSE); //更新總成績編輯框內容
}

//政治成績改變時,總成績也應隨著動態改變
void COCIExampleDlg::OnChangeEditPolitics() 
{
	this->UpdateData (TRUE); //更新數據
	m_totalscore=m_english+m_politics+m_speciality1+m_speciality2;
	this->UpdateData (FALSE); //更新總成績編輯框內容
}

//專業課1成績改變時,總成績也應隨著動態改變
void COCIExampleDlg::OnChangeEditSpeciality1() 
{
	this->UpdateData (TRUE); //更新數據
	m_totalscore=m_english+m_politics+m_speciality1+m_speciality2;
	this->UpdateData (FALSE); //更新總成績編輯框內容
}

//專業課2成績改變時,總成績也應隨著動態改變
void COCIExampleDlg::OnChangeEditSpeciality2() 
{
	this->UpdateData (TRUE); //更新數據
	m_totalscore=m_english+m_politics+m_speciality1+m_speciality2;
	this->UpdateData (FALSE); //更新總成績編輯框內容
	
}

/*增加記錄*/
void COCIExampleDlg::OnButtonAdd() 
{
	
	//準備SOL語句
	wsprintf ((char*)textSQL,"INSERT INTO Score VALUES('%s',%d,%d,%d,%d,%d)",m_name,m_english,m_politics,m_speciality1,m_speciality2,m_totalscore);
	if (status =OCIStmtPrepare(stmthp, errhp,textSQL, strlen ((char*)textSQL),OCI_NTV_SYNTAX, OCI_DEFAULT))
	{
		ErrorProc (errhp, status);	//捕捉錯誤
		return;
	}
	
	//執行SOL語句
	if (status =OCIStmtExecute(svchp, stmthp, errhp, (ub4) 1,0,NULL, NULL, OCI_DEFAULT))
	{
		ErrorProc(errhp,status);	//捕捉錯誤
		return;
	}
	
	//提交
	if (status =OCITransCommit(svchp, errhp, (ub4)0))
	{
		ErrorProc(errhp,status);	//捕捉錯誤
		return;
	}
	else
		MessageBox("增加記錄成功!");

	/*刷新表格里的數據*/
	int nRows=m_grid.GetRows();  //得到表格控件中總行數
	m_grid.SetRows(nRows+1);	//表格控件中總行數加1(因為新增加了一條記錄)
	m_grid.SetTopRow(nRows+1);	//設置表格控件的頂行,是了將光標滾動的新增記錄行
	
	CString tempstr;
    tempstr.Format("%d",nRows);	m_grid.SetTextMatrix(nRows,0,tempstr);	//寫入序號
	m_grid.SetTextMatrix(nRows,1,m_name); //寫入姓名
	tempstr.Format("%d",m_english);	m_grid.SetTextMatrix(nRows,2,tempstr);		//寫入英語成績
	tempstr.Format("%d",m_politics);	m_grid.SetTextMatrix(nRows,2,tempstr);	//寫入政治成績
	tempstr.Format("%d",m_speciality1);	m_grid.SetTextMatrix(nRows,3,tempstr);	//寫入專業課1成績	
	tempstr.Format("%d",m_speciality2);	m_grid.SetTextMatrix(nRows,4,tempstr);	//寫入專業課2成績
	tempstr.Format("%d",m_totalscore);	m_grid.SetTextMatrix(nRows,5,tempstr);	//寫入總成績
		
}

/*修改記錄*/
void COCIExampleDlg::OnButtonModify() 
{
	int nRow=m_grid.GetRow();  //得到表格控件中光標所在行(即所要修改的行)
	
	if(m_grid.GetRows()>1 && nRow<1)
	{
		MessageBox("請先選擇要修改的記錄行!");
		return;
	}

	CString	stroldname=m_grid.GetTextMatrix (m_grid.GetRow (),1);
    CString strSQL;
	
	//準備SOL語句
	 strSQL.Format ("UPDATE Score SET  姓名='%s',英語=%d,政治=%d,專業課1=%d,\
	  專業課2=%d,總成績=%d WHERE 姓名='%s'",m_name, m_english, m_politics,\
	  m_speciality1,m_speciality2,m_totalscore,stroldname);
	
	  wsprintf ((char*)textSQL,strSQL);

	//準備SQL語句
	if (status =OCIStmtPrepare(stmthp, errhp,textSQL, strlen ((char*)textSQL),OCI_NTV_SYNTAX, OCI_DEFAULT))
	{
		ErrorProc (errhp, status);	//捕捉錯誤
		return;
	}
	
	//執行SOL語句
	if (status =OCIStmtExecute(svchp, stmthp, errhp, (ub4) 1,0,NULL, NULL, OCI_DEFAULT))
	{
		ErrorProc(errhp,status);	//捕捉錯誤
		return;
	}
	
	//提交
	if (status =status =OCITransCommit(svchp, errhp, (ub4)0))
	{
		ErrorProc(errhp,status);	//捕捉錯誤
		return;
	}
	else
		MessageBox("修改記錄成功!");	// TODO: Add your control notification handler code here
	
	/*刷新表格里的數據*/
	CString tempstr;
	m_grid.SetTextMatrix(nRow,1,m_name); //寫入姓名
	tempstr.Format("%d",m_english);	m_grid.SetTextMatrix(nRow,2,tempstr);		//寫入英語成績
	tempstr.Format("%d",m_politics);	m_grid.SetTextMatrix(nRow,2,tempstr);	//寫入政治成績
	tempstr.Format("%d",m_speciality1);	m_grid.SetTextMatrix(nRow,3,tempstr);	//寫入專業課1成績	
	tempstr.Format("%d",m_speciality2);	m_grid.SetTextMatrix(nRow,4,tempstr);	//寫入專業課2成績
	tempstr.Format("%d",m_totalscore);	m_grid.SetTextMatrix(nRow,5,tempstr);	//寫入總成績
	
}

//刪除記錄
void COCIExampleDlg::OnButtonDelete() 
{
	int nRow=m_grid.GetRow();  //得到表格控件中光標所在行(即所要修改的行)
	
	if(m_grid.GetRows()>1 && nRow<1)
	{
		MessageBox("請先選擇要刪除的記錄行!");
		return;
	}
	
	CString	stroldname=m_grid.GetTextMatrix (m_grid.GetRow (),1);
    CString strSQL;
	
	//準備SOL語句
	strSQL.Format ("DELETE FROM Score WHERE  姓名='%s'",m_name);
	
	wsprintf ((char*)textSQL,strSQL);
	
	//準備SQL語句
	if (status =OCIStmtPrepare(stmthp, errhp,textSQL, strlen ((char*)textSQL),OCI_NTV_SYNTAX, OCI_DEFAULT))
	{
		ErrorProc (errhp, status);	//捕捉錯誤
		return;
	}
	
	//執行SOL語句
	if (status =OCIStmtExecute(svchp, stmthp, errhp, (ub4) 1,0,NULL, NULL, OCI_DEFAULT))
	{
		ErrorProc(errhp,status);	//捕捉錯誤
		return;
	}
	
	//提交
	if (status =status =OCITransCommit(svchp, errhp, (ub4)0))
	{
		ErrorProc(errhp,status);	//捕捉錯誤
		return;
	}
	else
		MessageBox("刪除記錄成功!");	// TODO: Add your control notification handler code here
	OnButtonConnect();  //刷新表格數據
}

//升序
void COCIExampleDlg::OnRadioAsc() 
{
	m_sortStyle=0;	
}

//降序
void COCIExampleDlg::OnRadioDesc() 
{
	m_sortStyle=1;		
}

//排序
void COCIExampleDlg::OnButtonSort() 
{
	CString sortASC_DESC,sortFiled;
   
	if(m_sortStyle==0)   //得到升序或降序
		sortASC_DESC="ASC";
	else
		sortASC_DESC="DESC";
	
	//排序的字段名
	m_CombolFieldName.GetLBText (m_CombolFieldName.GetCurSel (),sortFiled);
	
	//設置附加SQL語句
	SQL.Format("ORDER BY %s %s",sortFiled,sortASC_DESC);
	
	OnButtonConnect();  //刷新表格數據


}

//初始化查詢的符號
void COCIExampleDlg::Init_condition()
{
	m_CombolCondition.ResetContent ();
	m_CombolCondition.ResetContent ();
	m_CombolCondition.AddString (">");
	m_CombolCondition.AddString (">=");
	m_CombolCondition.AddString ("<");
	m_CombolCondition.AddString ("<=");
	m_CombolCondition.AddString ("=");
	m_CombolCondition.AddString ("!=");
	m_CombolCondition.SetCurSel(0); 
}

void COCIExampleDlg::OnButtonQuery() 
{
	CString sortFiled,sortcondition;
    this->UpdateData ();
	//排序的字段名
	m_CombolFieldName.GetLBText (m_CombolFieldName.GetCurSel (),sortFiled);
	//排序的字段名
	m_CombolCondition.GetLBText (m_CombolCondition.GetCurSel (),sortcondition);
	
	//設置附加SQL語句
	if(m_CombolFieldName.GetCurSel()==0) //姓名
		SQL.Format("WHERE %s %s '%s'",sortFiled,sortcondition,m_strFiledvalue);
    else
		SQL.Format("WHERE %s %s %d",sortFiled,sortcondition,atoi(m_strFiledvalue));
	
	OnButtonConnect();  //刷新表格數據	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产午夜精品福利| 色婷婷亚洲婷婷| 欧美丝袜丝交足nylons| 精品国产髙清在线看国产毛片| 中文字幕在线观看一区二区| 美国十次了思思久久精品导航| 色综合一区二区| 久久美女艺术照精彩视频福利播放| 亚洲伊人伊色伊影伊综合网 | 精品99一区二区三区| 亚洲一卡二卡三卡四卡五卡| 成人免费毛片嘿嘿连载视频| 欧美一级高清片| 亚洲一区视频在线观看视频| 成人做爰69片免费看网站| 欧美大度的电影原声| 午夜精品福利一区二区蜜股av | 国产麻豆日韩欧美久久| 91精品国产综合久久蜜臀| 亚洲精品videosex极品| 成人性生交大合| 久久久久国色av免费看影院| 免费在线观看不卡| 欧美精品在线一区二区| 亚洲最新在线观看| 一本一道综合狠狠老| 亚洲国产精华液网站w| 国产精品一卡二| 亚洲精品一区二区三区福利| 久久精品噜噜噜成人av农村| 欧美精品第1页| 偷窥少妇高潮呻吟av久久免费| 欧美伊人久久久久久久久影院| 亚洲桃色在线一区| 99久久99久久精品国产片果冻| 国产精品人妖ts系列视频| 国产sm精品调教视频网站| 久久久久综合网| 国产激情91久久精品导航| 日本亚洲电影天堂| 69精品人人人人| 日韩精彩视频在线观看| 欧美人伦禁忌dvd放荡欲情| 伊人色综合久久天天人手人婷| 99精品1区2区| 亚洲欧美日韩一区二区| 一本大道久久a久久精二百| 亚洲精品菠萝久久久久久久| 日本精品裸体写真集在线观看| 亚洲精选在线视频| 欧美在线你懂的| 首页国产欧美久久| 欧美一级欧美一级在线播放| 美女一区二区三区| 2024国产精品| 成人免费看的视频| 亚洲欧美一区二区视频| 一本久久精品一区二区| 亚洲一区成人在线| 日韩一区二区视频| 国产在线视频一区二区| 国产欧美日韩三级| 91毛片在线观看| 肉肉av福利一精品导航| 欧美成va人片在线观看| 国产成人av一区二区三区在线| 国产精品免费av| 欧美亚男人的天堂| 毛片不卡一区二区| 亚洲国产精品t66y| 在线免费观看日本欧美| 人人超碰91尤物精品国产| 国产午夜精品理论片a级大结局| 91欧美激情一区二区三区成人| 婷婷亚洲久悠悠色悠在线播放| 欧美草草影院在线视频| 97成人超碰视| 日韩精品免费视频人成| 国产日韩欧美精品电影三级在线| 一本大道久久精品懂色aⅴ| 图片区小说区区亚洲影院| www国产成人| 91色porny蝌蚪| 国产精品女人毛片| 欧美群妇大交群的观看方式| 久久99精品一区二区三区| 国产欧美精品国产国产专区| 91视频免费播放| 亚洲成人一二三| 精品三级av在线| 高清不卡一二三区| 一区二区三区日韩精品视频| 91精品久久久久久久久99蜜臂| 精品综合免费视频观看| 国产亚洲精品bt天堂精选| 在线免费观看日本欧美| 麻豆精品在线看| 国产精品伦一区二区三级视频| 91久久精品日日躁夜夜躁欧美| 日韩精品一级中文字幕精品视频免费观看| 日韩精品一区二区三区蜜臀| 春色校园综合激情亚洲| 亚洲图片欧美色图| 精品国产乱码久久| 色综合天天综合狠狠| 日韩激情在线观看| 欧美激情艳妇裸体舞| 欧美性色欧美a在线播放| 秋霞成人午夜伦在线观看| 中文字幕在线一区免费| 亚洲综合一区二区三区| 26uuu国产日韩综合| 99精品久久99久久久久| 青青草国产精品亚洲专区无| 国产精品毛片高清在线完整版| 欧美三级视频在线播放| 国产精品一区在线观看乱码| 一区二区三区四区中文字幕| 欧美一区二区三区在线看| 成人av电影在线网| 欧美96一区二区免费视频| 精品久久久久久无| 欧美一区二区三区影视| 成人免费视频一区二区| 偷拍一区二区三区| 国产日韩精品一区二区三区| 欧美在线观看一二区| 粉嫩欧美一区二区三区高清影视| 午夜日韩在线观看| 亚洲婷婷综合久久一本伊一区| 国产欧美日韩精品a在线观看| 欧美日本韩国一区二区三区视频| 成人免费视频视频在线观看免费| 免费观看日韩av| 亚洲综合男人的天堂| 26uuu精品一区二区| 欧美成人性福生活免费看| 欧美亚州韩日在线看免费版国语版| 成人永久aaa| 激情欧美日韩一区二区| 午夜精品福利一区二区三区蜜桃| 欧美xxxx老人做受| 欧美精品三级在线观看| 成人综合婷婷国产精品久久蜜臀| 麻豆视频观看网址久久| 亚洲国产精品视频| 国产精品美女久久久久aⅴ| 久久色在线视频| 欧美v国产在线一区二区三区| 欧美色视频在线观看| 91在线porny国产在线看| 极品少妇一区二区| 久久精品国产亚洲5555| 图片区小说区区亚洲影院| 一区二区三区 在线观看视频| 国产精品女上位| 久久九九久久九九| 久久综合久久综合九色| 日韩欧美二区三区| 日韩欧美资源站| 在线不卡一区二区| 欧美丝袜丝交足nylons| 欧美久久久久久蜜桃| 欧美探花视频资源| 色婷婷久久久亚洲一区二区三区 | 中文字幕亚洲一区二区av在线| 久久久精品一品道一区| 欧美精品一区二区高清在线观看| 欧美一二区视频| 在线播放一区二区三区| 欧美美女一区二区| 日本韩国欧美一区| 色综合久久天天| av爱爱亚洲一区| 色成人在线视频| 91福利在线观看| 精品视频在线免费观看| 欧美日韩国产在线观看| 欧美va天堂va视频va在线| 精品国产污污免费网站入口 | 一级精品视频在线观看宜春院| 国产精品国产三级国产普通话三级| 亚洲国产精品t66y| 一区二区中文字幕在线| 亚洲欧洲综合另类在线| 国产欧美日韩亚州综合 | 日韩欧美一区二区免费| 日韩欧美中文字幕一区| 精品三级av在线| 欧美一区二区三区系列电影| 久久影院午夜论| 欧美激情一区二区在线| 国产精品日韩成人| 亚洲日本va在线观看| 一区二区三区四区激情| 丝袜诱惑亚洲看片| 国产精华液一区二区三区| 99久久婷婷国产综合精品电影| 91久久精品日日躁夜夜躁欧美| 欧美日韩aaaaa|