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

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

?? ociexampledlg.cpp

?? 這是書上的代碼
?? CPP
?? 第 1 頁 / 共 3 頁
字號:

 if(InsertDlg==NULL)
 {
    
	InsertDlg=new CCInsertDlg;
	//關掉再產生,會在這里出錯,why?
	BOOL ret =InsertDlg->Create(IDD_INSERT_DLG,this);
    if(!ret)   //Create failed.
         AfxMessageBox("Error creating Dialog");
	//----------------------------------------------------------
	CWnd *pViewBox_F;
	pViewBox_F= InsertDlg->GetDlgItem(IDC_MYGRIDCTRL);
    CRect	rGridRect;			
	pViewBox_F->GetClientRect(&rGridRect);
	pViewBox_F->ClientToScreen(&rGridRect);
	pViewBox_F->ScreenToClient(&rGridRect);	
	//m_GridCtrl->	
    InsertDlg->m_GridCtrl->Create(rGridRect, pViewBox_F, 100);
    //初始化GridCtrl
    //可以編輯項使能
	InsertDlg->m_GridCtrl->SetEditable(TRUE);
	//可以拖動項使能
	InsertDlg->m_GridCtrl->EnableDragAndDrop(TRUE);
	//
	int ColoumNum;
	if(ColumnNumbers==0)
	    ColoumNum = 3;//列數
	else
       ColoumNum=ColumnNumbers+1;

	int RowNumber = 4;//行數
	try 
	{
		InsertDlg->m_GridCtrl->SetRowCount(RowNumber);
		InsertDlg->m_GridCtrl->SetColumnCount(ColoumNum);
		InsertDlg->m_GridCtrl->SetFixedRowCount(2);//兩行灰色,一行為標題,另外一行為個數
		                                //為0時,沒有灰色標題行
										//為1時,第一行成灰色標題;
										//為2時,從第一行開始生成兩行灰色標題
		InsertDlg->m_GridCtrl->SetFixedColumnCount(1);//為1時,生成左邊灰色一行
		//
		GV_ITEM GV_Item,Item;
		GV_Item.mask = GVIF_TEXT|GVIF_FORMAT;
		GV_Item.nFormat = DT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_END_ELLIPSIS|DT_NOPREFIX;
	    //
       	Item.mask = GVIF_TEXT|GVIF_FORMAT;
		Item.nFormat = DT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_END_ELLIPSIS|DT_NOPREFIX;
		int i=0,j=0;
		//列的名稱
        GV_Item.row=0;
        GV_Item.col=0;
		GV_Item.strText="ColName";		
        InsertDlg->m_GridCtrl->SetItem(&GV_Item);
		//格式
		GV_Item.row=1;
		GV_Item.strText="ColFormat";
        InsertDlg->m_GridCtrl->SetItem(&GV_Item);
		//ID
		for(i=2;i<=10;i++)
		{
			 GV_Item.row=i;
             GV_Item.col=0;
		     GV_Item.strText.Format("%d",i-1);
			 InsertDlg->m_GridCtrl->SetItem(&GV_Item);
		}
		//寫字段的名稱到列表上
		for(i=0;i<ColumnNumbers;i++)
		{
			//SetColumnWidth(int nCol, int width),列的寬度
			GV_Item.row=0;
			GV_Item.col=i+1;//從第二列開始寫標題,第一列作為ID好
            GV_Item.strText=ColName[i];
            InsertDlg->m_GridCtrl->SetItem(&GV_Item);
		}
		//寫輸入數據的格式,一方面,可以在第二行中提示,
		//另一方面,可以在輸入的時候限制
		CString strA="A",str9="9";
		CString ColFormat="";
		BOOL tempbool1=FALSE,tempbool2=FALSE;
		for(i=0;i<ColumnNumbers;i++)
		{
			//若字段類型為字符型,則以如“AAA”的
			//方式來描述表中字段可以接收的格式
            tempbool1=coltype[i]==SQLT_CHR||\
				      coltype[i]==SQLT_VCS||\
                      coltype[i]==SQLT_STR;
			  
			tempbool2=coltype[i]==SQLT_NUM||\
		              coltype[i]==SQLT_INT||\
                      coltype[i]==SQLT_FLT||\
                      coltype[i]==SQLT_LNG;
			if(tempbool1)
			{
               
				//for(j=0;j<collen[i];j++)
				   //strchar=strchar+strA;
			   //ColFormat=ColFormatstrA+;
               ColFormat.Format("%d*AOr%d*字",collen[i],collen[i]/2);
			}
			//若字段類型為數字型,則以如“99.9”的
			//方式來描述表中字段可以接收的格式
         	else if(tempbool2)
			{
		         for(j=0;j<iprecision[i]-iscale[i];j++)
				     ColFormat=ColFormat+str9;
				 if(iscale[i]!=0)
				 {
					 ColFormat+=".";
					 for(j=0;j<iscale[i];j++)
						  ColFormat+=str9;
				 }
			}
			//若為日期型,則
			else if(coltype[i]==SQLT_DAT)
			{
                ColFormat="OracleDate";
			}
			else
			{
                ColFormat="Others";
			}
			//
			GV_Item.row=1;
			GV_Item.col=i+1;//從第二列開始寫
            GV_Item.strText=ColFormat;
            InsertDlg->m_GridCtrl->SetItem(&GV_Item);
		    //清空
            ColFormat="";
	}
	}
	catch (CMemoryException* e)
	{
		e->ReportError();
		e->Delete();
		return ;
	}
	InsertDlg->m_GridCtrl->Refresh();
	//-------------------------------------------------------
 }
 InsertDlg->ShowWindow(SW_SHOW);

 //==========================================================
 //移動InsertDlg窗口
 //void MoveWindow( int x, int y, int nWidth, int nHeight, BOOL bRepaint = TRUE );
 //InsertDlg->MoveWindow(500,0,400,300,TRUE);
 //刷新變化InsertDlg對話框的開關
 //IsSizeInsertDlg=1;

 //==========================================================
}

//CCInsertDlg類中的OnButSavedate()函數來調用
//從而保存要插入的數據到數據庫端
void COCIExampleDlg::SaveInsertData(int row,int col,CString strColVal[])
{
	sword status;
	text textSQL[1024];
	CString strBindName[20];
 	CString strSQL="",strtemp="";
	//
	sb4    ColValLen[20],BindNameLen[20];
	sb4    Vlen,Blen;
	text *ptextColVal[20];
    text *ptextBindColName[20];
	//
	//循環以便插入多個記錄
	//如果插入的記錄中某條記錄都為空,則我們沒有必要執行SQL
	BOOL IsExecute=FALSE;
	for(int loop=0;loop<row;loop++)
	{
			
		    IsExecute=FALSE;
		    //-----------------------------Prepare SQL--------------------
			//在SQL加入中加入表中
			strSQL="",strtemp="";
		    strSQL.Format("INSERT INTO %s (",TableName);
			//在SQL語句中加入字段的名稱,條件-若所輸入的字符串不為空
			//這樣就需要處理逗號的問題
			col=ColumnNumbers;
			for(int k=0;k<col;k++)
			{
				if(strColVal[loop*col+k]!="")
				{
					if(k!=col-1)
					  strtemp+=ColName[k]+",";
					else
					  strtemp+=ColName[k];
				}
			}
			//在這里可以去掉strtempL的末尾的“,”
			//ReverseFind('aa')函數返回的是字符串的從頭開始的位置(從0起算),
			//這個位置是從字符串的末尾起尋找'aa';
			if(strtemp.GetLength()-1==strtemp.ReverseFind(','))
			{
				strtemp=strtemp.Left(strtemp.GetLength()-1);
			}
			//在SQL加入中 字段名稱+)+VALUES+(
			strSQL+=strtemp+") VALUES (";
			strtemp="";
			//在SQL語句中加入綁定的名稱,條件-若所輸入的字符串不為空
			for(k=0;k<col;k++)
			{
				if(strColVal[loop*col+k]!="")
				{
					strtemp.Format(":FieldVale%d",k+1);
					strBindName[k].Format(":FieldVale%d",k+1);
					//控制在沒有空字段(一個記錄中)時,使得
					//字段名稱的集合中的末尾不帶“,”
			//在SQL加入中綁定名稱
					if(k!=col-1)
					   strSQL+=strtemp+",";
					else
						strSQL+=strtemp;
				}
			}
			//當所有添加的記錄中有空字段時,使得末尾不出現“,”
			//在這里,可以去掉strSQL的末尾的“,”
			if(strSQL.GetLength()-1==strSQL.ReverseFind(','))
			{
				strSQL=strSQL.Left(strSQL.GetLength()-1);
			}
            //在SQL加入中)
			wsprintf((char*)textSQL,"%s)",strSQL);
			if(status=OCIStmtPrepare(stmthp,errhp,textSQL,strlen((char *)textSQL),OCI_NTV_SYNTAX,OCI_DEFAULT ))
			{
				ErrorProc(errhp,status);
				return;
			}
            //-----------------------------Prepare SQL--------------------

            //--------------------------bind-----------------------------
			//代碼8.3,處理SQL的第二步,綁定(binding)
			//sb2 myind[30];//指示符變量
   			//開始綁定,條件-若所輸入的字符串不為空
			for(k=0;k<col;k++)
			{
				if(strColVal[loop*col+k]!="")
				{
					//處理綁定的名稱
					BindNameLen[k]=strBindName[k].GetLength();
					Blen=strBindName[k].GetLength();
					ptextBindColName[k]=new text[Blen+1];
					wsprintf((char*)ptextBindColName[k],"%s",strBindName[k]);
					ptextBindColName[Blen]='\0';

					//綁定的數據處理
					ColValLen[k]=strColVal[k].GetLength();
					Vlen=strColVal[loop*col+k].GetLength();
					ptextColVal[k]=new text[Vlen+1];
					//loop
					wsprintf((char*)ptextColVal[k],"%s",strColVal[loop*col+k]);
					ptextColVal[Vlen]='\0';
					//按照名稱綁定
					if(status=OCIBindByName(stmthp, 
						&bidhp[k], 
						errhp, 
						(text *) ptextBindColName[k],Blen, 
						(ub1 *) ptextColVal[k], Vlen+1,
						SQLT_STR, 
						(dvoid *) 0,//&myind[k],這個對數字型數據還有影響								
						(ub2 *)0, 
						(ub2*) 0,
						 (ub4) 0, 					
						(ub4 *) 0, 
						OCI_DEFAULT))
					{
						ErrorProc(errhp,status);
						return;
					}
	                //只要我們綁定了,則一定在一個記錄中至少有一個字段
				    //有要輸入的數據,因此,我們執行INSERT語句
                    IsExecute=TRUE;
				}
			
			}
			//--------------------------bind-----------------------------

			//--------------------------Execute then commit if execute success
			//代碼8.4,處理SQL的第三步,執行
			if(IsExecute)
			{
				if(status=OCIStmtExecute(svchp,stmthp,errhp,(ub4)1,0,NULL,NULL,OCI_DEFAULT))
				{
					ErrorProc(errhp,status);
					return;
				}
				//commit;
				status=OCITransCommit(svchp, errhp, (ub4)0);
			}
			//--------------------------Execute then commit if execute success

			//刪除所分配的內存
			for(k=0;k<col;k++)
			{
				if(strColVal[loop*col+k]!="")
				{
					delete ptextBindColName[k];	
				    delete ptextColVal[k];
				}
			}
      }//循環插入
	  //刷新ListCtrl控件
	  OnBTableselectok();
	  //
	  InsertDlg->IsSize=10;
}
	/*
	//-------------------------------
	    /*
	    //由名稱來綁定所要修改的字段的占位符
        //綁定的名稱處理
        BindNameLen[k]=strBindName[k].GetLength();
        Blen=strBindName[k].GetLength();
        wsprintf((char*)textBindName[k],"%s",strBindName[k]);
        textBindName[k][(int)BindNameLen[k]]='\0';
		//綁定的數據處理
		ColValLen[k]=strColVal[k].GetLength();
        Vlen=strColVal[k].GetLength();
        wsprintf((char*)textBindVal[k],"%s",strColVal[k]);
        textBindName[k][(int)ColValLen[k]]='\0';
        
		if(status=OCIBindByName(stmthp, &bidhp[k], errhp, 
			(text *) textBindName[k][Blen],Blen, (ub1 *) &textColVal[k][Vlen], 
								 Vlen, SQLT_STR, (dvoid *) 0,
								(ub2 *)0, (ub2*) 0, (ub4) 0, 
									(ub4 *) 0, OCI_DEFAULT))
		{
			ErrorProc(errhp,status);
			return;
		}
		textConValp=new text[strlength+1];
        wsprintf((char*)textConValp,"%s",strFieldVal);
        textConValp[strlength]='\0';
		*/
		//if(strColVal[k]=="")
           // break;\0
	/*
	//由名稱來綁定作為修改時條件字段的占位符
	text   textConColVal[20];
	strlength=m_strConFVal.GetLength();
	wsprintf((char*)textConColVal,"%s",m_strConFVal);
	textConColVal[strlength]='\0';
	len=strlen((const char *)textConColVal)+1;
	if(status=OCIBindByName(stmthp, &bidhp[1], errhp, 
	  (text *) ":KeyFieldVal",-1, (ub1 *) &textConColVal, 
							 len, SQLT_STR, (dvoid *) 0,
							(ub2 *)0, (ub2*) 0, (ub4) 0, 
								(ub4 *) 0, OCI_DEFAULT))
	{
		ErrorProc(errhp,status);
		return;
	}*/

  //--------------------------
	  /*int i=0,j;
	GV_ITEM GV_Item;
	CString strColVal[20][50];
	//if(ColumnNumbers==0)
		//return;
    ColumnNumbers=3;
	//InsertDlg->m_GridCtrl->
    for(;;)
	{
		for(j=0;i<ColumnNumbers;j++)
		{
			//
			strColVal[i][j]=InsertDlg->m_GridCtrl->GetItemText(i+2,j+1);
			if(InsertDlg->m_GridCtrl->GetItemText(i+2,j+1)=="")
				break;
		}
		i=i+1;
	}
	*/

//DEL void COCIExampleDlg::OnBUTTONlab() 
//DEL {
//DEL 	// TODO: Add your control notification handler code here
//DEL 	//sword status;
//DEL 	//text textSQL[1024];
//DEL 	CString single="ID,NAME,";
//DEL 	char c=',';
//DEL 	//返回的是所尋找字符串在整個字符串中的位置
//DEL 	int shi=single.ReverseFind(',');
//DEL 	int len=single.GetLength();
//DEL 	if(single.GetLength()-1==single.ReverseFind(','))
//DEL          single=single.Left(single.GetLength()-1);
//DEL 
//DEL 	CString s( "abcabc" );
//DEL     int shi2=s.ReverseFind( 'b' );
//DEL 
//DEL 	text textBindName[20][20];
//DEL 	CString strBindName[20];
//DEL 	CString strSQL="abc",strtemp="";
//DEL 	for(int i=0;i<10;i++)
//DEL 	{
//DEL 		//
//DEL         wsprintf((char*)textBindName[i],"%s",strSQL);
//DEL         textBindName[i][strSQL.GetLength()]='\0';
//DEL 	}
//DEL 
//DEL 
//DEL }

void COCIExampleDlg::OnSize(UINT nType, int cx, int cy) 
{
	CDialog::OnSize(nType, cx, cy);
	
	// TODO: Add your message handler code here
	CRect rcClient,rcListCtrl,rcQueryCap,rcQueryEdit;
	GetClientRect(rcClient);


}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品在线一区| 日韩欧美亚洲另类制服综合在线| 美女视频黄频大全不卡视频在线播放| 综合av第一页| 中文字幕亚洲精品在线观看| 国产欧美一区二区精品性| 久久一区二区三区四区| 日韩欧美123| 国产亚洲欧美色| 国产精品视频在线看| 亚洲图片你懂的| 亚洲影视资源网| 日韩精品国产精品| 麻豆91在线播放| 高清国产午夜精品久久久久久| 国产一区二区在线看| 国产一区二区三区免费观看| 成人爱爱电影网址| 色视频成人在线观看免| 精品视频在线免费观看| 日韩欧美激情一区| 国产女人水真多18毛片18精品视频| 国产精品视频第一区| 亚洲影院免费观看| 国内外成人在线视频| 99视频一区二区三区| 欧美日韩免费观看一区三区| 欧美本精品男人aⅴ天堂| 久久久三级国产网站| 中文字幕在线一区免费| 亚洲国产视频直播| 国产在线一区二区| 色婷婷综合五月| 日韩一二三区不卡| 国产精品视频一二| 日韩激情一二三区| 成人一区二区三区中文字幕| 色94色欧美sute亚洲线路一久| 欧美日韩一区在线| 国产精品久久网站| 同产精品九九九| 成人免费毛片app| 91精品一区二区三区久久久久久| 久久九九99视频| 亚洲va中文字幕| 99久久综合色| 日韩美一区二区三区| 有坂深雪av一区二区精品| 久草在线在线精品观看| 色婷婷综合久久| 国产喂奶挤奶一区二区三区| 亚洲国产精品尤物yw在线观看| 国产盗摄一区二区三区| 欧美精品色一区二区三区| 欧美高清在线一区二区| 老司机一区二区| 8x8x8国产精品| 亚洲精品视频一区二区| 国产精品一区二区无线| 日韩欧美卡一卡二| 日韩制服丝袜av| 色婷婷av久久久久久久| 最新国产精品久久精品| 国产在线乱码一区二区三区| 欧美日韩和欧美的一区二区| 亚洲欧洲韩国日本视频| 国产精品99久久久久| 精品区一区二区| 美女视频免费一区| 日韩精品一区二区三区中文不卡 | 国产日韩精品视频一区| 三级欧美在线一区| 欧美乱妇15p| 亚洲午夜精品一区二区三区他趣| av在线不卡网| 中文字幕亚洲欧美在线不卡| 不卡的av电影| 国产精品久久久久aaaa| 丁香婷婷综合五月| 国产精品理论在线观看| 国产盗摄视频一区二区三区| 欧美一级日韩免费不卡| 日韩成人免费看| 欧美一区二区精品久久911| 蜜臂av日日欢夜夜爽一区| 欧美一级理论性理论a| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美日韩国产影片| 天堂久久一区二区三区| 欧美一级欧美一级在线播放| 奇米影视7777精品一区二区| 日韩女优视频免费观看| 国产不卡高清在线观看视频| 亚洲国产岛国毛片在线| 91亚洲国产成人精品一区二三| 亚洲天天做日日做天天谢日日欢| 北条麻妃国产九九精品视频| 樱花影视一区二区| 7777精品久久久大香线蕉| 国内成人免费视频| 成人欧美一区二区三区在线播放| 一本一道久久a久久精品| 午夜精品一区二区三区电影天堂| 7777精品伊人久久久大香线蕉| 国内精品写真在线观看| 一区二区中文字幕在线| 欧美另类一区二区三区| 福利电影一区二区三区| 亚洲国产一区二区三区| 久久综合999| 91国产成人在线| 国产精品亚洲人在线观看| 亚洲精品中文字幕乱码三区 | 成人性生交大片免费看中文网站| 亚洲欧美偷拍卡通变态| 日韩欧美亚洲国产另类| 色婷婷激情久久| 国产精品一级片| 午夜精品久久久久久久99樱桃| 精品国产一区二区三区久久影院 | 久久亚洲二区三区| 色婷婷综合久久久久中文| 国产美女在线精品| 天天色图综合网| 亚洲视频图片小说| 久久久亚洲综合| 欧美日韩国产成人在线91| aa级大片欧美| 国产suv精品一区二区三区| 午夜视黄欧洲亚洲| 亚洲欧美日韩国产综合在线| 久久网这里都是精品| 欧美人与禽zozo性伦| av福利精品导航| 国产精品中文字幕日韩精品| 婷婷国产在线综合| 一区二区激情视频| 亚洲色图欧美在线| |精品福利一区二区三区| 国产欧美精品在线观看| 日韩精品一区国产麻豆| 91麻豆精品国产无毒不卡在线观看| 91猫先生在线| 91色在线porny| 成人18视频在线播放| 福利视频网站一区二区三区| 激情另类小说区图片区视频区| 日本不卡一区二区三区高清视频| 一个色在线综合| 亚洲卡通欧美制服中文| 亚洲日本va午夜在线电影| 中文字幕一区在线观看视频| 国产日韩欧美综合一区| 中文在线资源观看网站视频免费不卡| 日韩欧美高清在线| 欧美成人一区二区三区在线观看| 欧美精品免费视频| 欧美一区二区女人| 日韩精品一区在线观看| 欧美成人女星排行榜| 日韩欧美国产午夜精品| 久久品道一品道久久精品| 国产视频一区在线观看| 国产精品视频线看| 亚洲精品成人a在线观看| 亚洲国产视频在线| 免费成人在线影院| 国产毛片精品视频| a在线欧美一区| 欧美视频完全免费看| 7777精品伊人久久久大香线蕉的| 欧美一级在线视频| 久久久精品tv| 亚洲精品久久7777| 日韩综合小视频| 国产乱码一区二区三区| jlzzjlzz国产精品久久| 欧美色涩在线第一页| 日韩三级免费观看| 欧美国产在线观看| 亚洲青青青在线视频| 五月天一区二区三区| 狂野欧美性猛交blacked| 国产精品一区二区黑丝| 日本高清不卡视频| 日韩欧美一级二级三级| 综合分类小说区另类春色亚洲小说欧美| 一区二区日韩av| 国产黄色精品视频| 欧美猛男gaygay网站| 久久久久国产精品人| 亚洲精品欧美二区三区中文字幕| 视频在线在亚洲| av在线综合网| 久久午夜电影网| 石原莉奈在线亚洲二区| 色婷婷av久久久久久久| 久久久久久免费网| 亚洲综合久久久久| av电影一区二区|