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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? vc_oracle2.txt

?? 在vc中創(chuàng)建數(shù)據(jù)庫(kù)
?? TXT
?? 第 1 頁 / 共 5 頁
字號(hào):
		if(flag==1)
		{
			sqlUpdateSelect.append(" and ");
		}
		else
		{
			flag=1;
		}

		sqlUpdateSelect.append(fieldName);

		sqlUpdateSelect.append(" = \'");

		sqlUpdateSelect.append(fieldValue);

		sqlUpdateSelect.append("\'");
	}

	chSqlUpdateSelect = sqlUpdateSelect.c_str();
	
	cn = OCI_ConnPoolGetConnection(pool);

	if (cn)
	{
		st = OCI_StatementCreate(cn);
						
		OCI_ExecuteStmt(st,MT(chSqlUpdateSelect));

		OCI_Commit(cn);	

		rs = OCI_GetResultset(st);

		while (OCI_FetchNext(rs))
		{
		}

		n  = OCI_GetRowCount(rs);

		if(n!=0)
		{
			printf("說要修改的內(nèi)容已存在,不需要進(jìn)行修改!");

			return false;
		}
	}

	if(fkToPknum==0)                          //已經(jīng)為表鏈的最前端,即不引用其它表的字段
	{
		if(strcmp(keyName,"key")==0)                  //判斷是否存在key條件,如果存在即是對(duì)一條記錄進(jìn)行修改  ?
		{
			memset( pkColumn, '\0', sizeof(pkColumn));

			for(int i=2;i<fieldUpdateCount;i++)
			{
				fieldName = fieldUpdate_array[i].getFieldName();

				fieldValue = fieldUpdate_array[i].getFieldValue();

				for(int j=0;j<pknum;j++)
				{
					pkname = pkSign[j];

					if(strcmp(fieldName,pkname)==0)
					{
						strcpy(pkColumn[n++],pkname);

						truePknum++;
					}
				}
			}

			if(truePknum == pknum)                    //所給數(shù)據(jù)中PK鍵都給齊全了,即都要進(jìn)行修改,
			{
				for(int i=0;i<pknum;i++)                           //用于統(tǒng)計(jì)主鍵是否需要進(jìn)行修改
				{
					pkname = pkSign[i];

					pkvalue = select_value(tableName,pkname,keyName,keyValue);

					for(int i=2;i<fieldUpdateCount;i++)
					{
						fieldName = fieldUpdate_array[i].getFieldName();

						fieldValue = fieldUpdate_array[i].getFieldValue();

						if(strcmp(pkname,fieldName)==0)
						{
							if(strcmp(pkvalue,fieldValue)==0)
							{
								Unum++;                                 //Unum用于統(tǒng)計(jì)沒有修改了的主鍵數(shù)
							}
						}
					}
				}

				if(Unum!=pknum)                                         //主鍵需要修改
				{
					flag = 0;

					sqlUpdateSelect = "select key from ";               //查詢所要修改的主鍵是否已經(jīng)存在,已存在則修改失敗

					sqlUpdateSelect.append(tableName);

					sqlUpdateSelect.append(" where ");

					for(int i=2;i<fieldUpdateCount;i++)                              
					{
						fieldName = fieldUpdate_array[i].getFieldName();

						fieldValue = fieldUpdate_array[i].getFieldValue();

						for(int j=0;j<pknum;j++)
						{
							pkname = pkSign[j];

							if(strcmp(fieldName,pkname)==0)
							{				
								if(flag==1)
								{
									sqlUpdateSelect.append(" and ");
								}
								else
								{
									flag=1;
								}

								sqlUpdateSelect.append(fieldName);

								sqlUpdateSelect.append(" = \'");

								sqlUpdateSelect.append(fieldValue);

								sqlUpdateSelect.append("\'");
							}
						}
					}

					chSqlUpdateSelect = sqlUpdateSelect.c_str();
					
					cn = OCI_ConnPoolGetConnection(pool);

					if (cn)
					{
						st = OCI_StatementCreate(cn);
										
						OCI_ExecuteStmt(st,MT(chSqlUpdateSelect));

						OCI_Commit(cn);	

						rs = OCI_GetResultset(st);

						while (OCI_FetchNext(rs))
						{
							value = OCI_GetString(rs,1);  

							if(strcmp(value,keyValue)!=0)
							{
								printf("所要修改的值主鍵重復(fù),修改失敗!");

								return false;
							}
						}

						nn  = OCI_GetRowCount(rs);	

					}
					if(nn==0)                               
					{ 
						int q = 0,updnum = 0;                                                //不存在主鍵沖突

						memset( updatefeild, '\0', sizeof(updatefeild));

						if(fknum==0)                                                         //沒有他表對(duì)該表內(nèi)容進(jìn)行引用
						{
							for(int i=0;i<fieldUpdateCount;i++)                              
							{
								fieldName = fieldUpdate_array[i].getFieldName();

								fieldValue = fieldUpdate_array[i].getFieldValue();

								strcpy(updatefeild[updnum][0][q],fieldName);             //updnum表示有多少條記錄要改

								strcpy(updatefeild[updnum][1][q],fieldValue);

								q++;

							}

							updnum++;

							return true;
						}
						else                                                      //他表對(duì)該表內(nèi)容進(jìn)行了引用,將他表內(nèi)容也進(jìn)行修改             
						{
							for(int i=0;i<fieldUpdateCount;i++)                              
							{
								fieldName = fieldUpdate_array[i].getFieldName();

								fieldValue = fieldUpdate_array[i].getFieldValue();

								strcpy(updatefeild[updnum][0][q],fieldName);             //updnum表示有多少條記錄要改

								strcpy(updatefeild[updnum][1][q],fieldValue);

								q++;

							}

							updnum++;

							flag = 0;

							int p;

							memset( temp_value, '\0', sizeof(temp_value));

							for(int i=0;i<fknum;i++)
							{
								tempTableN = fkSign[i][0];

								if(strcmp(tempTableN,"")==0)
								{
									break;
								}

								strcpy(temp_value[tempNum][0],tempTableN);

								sqlUpdateSelect = "select ";

								for(int j=1,q=1;j<20;j++)
								{
									tempField = fkSign[i][j];

									if(strcmp(tempField,"")==0)
									{
										break;
									}

									if(flag==1)
									{
										sqlUpdateSelect.append(",");
									}
									else
									{
										flag=1;
									}

									sqlUpdateSelect.append(tempField);

								}

								flag = 0;

								sqlUpdateSelect.append(" from ");

								sqlUpdateSelect.append(tableName);

								sqlUpdateSelect.append(" where ");

								sqlUpdateSelect.append(keyName);

								sqlUpdateSelect.append(" = \'");

								sqlUpdateSelect.append(keyValue);

								sqlUpdateSelect.append("\'");
								
								chSqlUpdateSelect = sqlUpdateSelect.c_str();					
										
								if (cn)
								{
									st = OCI_StatementCreate(cn);
										
									OCI_ExecuteStmt(st,MT(chSqlUpdateSelect));

									OCI_Commit(cn);	

									rs = OCI_GetResultset(st);

									while (OCI_FetchNext(rs))                    //循環(huán)存儲(chǔ)表中主鍵紀(jì)錄的值
									{
										const char *value;

										p = 1;

										while(p<=pknum)
										{
											value = OCI_GetString(rs,p);                  

											strcpy(temp_value[tempNum][p],value);

											p++;
												
										}

										tempNum++;
											
									}
										//n  = OCI_GetRowCount(rs);
								}
							}

							char *fkTableName,*fkFieldName;

							flag = 0;

							memset( temp_key, '\0', sizeof(temp_key));
							
							for(int i=0;i<fknum;i++)
							{
								sqlUpdateSelect = "select key from ";

								tempTableN = temp_value[i][0];

								fkTableName = fkSign[i][0];

								if(strcmp(tempTableN,"")==0)
								{
									break;
								}

								strcpy(temp_key[i][0],tempTableN); 

								sqlUpdateSelect.append(tempTableN);

								sqlUpdateSelect.append(" where ");

								for(int j=1;j<20;j++)
								{
									tempField = temp_value[i][j];

									fkFieldName = fkSign[i][j];

									if(strcmp(tempField,"")==0)
									{
										break;
									}

									if(flag==1)
									{
										sqlUpdateSelect.append(" and ");
									}
									else
									{
										flag=1;
									}

									sqlUpdateSelect.append(fkFieldName);

									sqlUpdateSelect.append(" = \'");

									sqlUpdateSelect.append(tempField);

									sqlUpdateSelect.append("\'");

								}
								flag = 0;

								chSqlUpdateSelect = sqlUpdateSelect.c_str();

								p = 1;
										
								if (cn)
								{
									st = OCI_StatementCreate(cn);
										
									OCI_ExecuteStmt(st,MT(chSqlUpdateSelect));

									OCI_Commit(cn);	

									rs = OCI_GetResultset(st);

									while (OCI_FetchNext(rs))                    //循環(huán)存儲(chǔ)表中主鍵紀(jì)錄的值
									{
										const char *value;

										value = OCI_GetString(rs,1);                  

										strcpy(temp_key[i][p],value);

										p++;
	
									}
									//n  = OCI_GetRowCount(rs);
								}								
							}

							char *tName;
						
							for(int k=0;k<20;k++)
							{
								tName = temp_key[k][0];

								if(strcmp(tName,"")==0)
								{
									break;
								}

								for(int i=0;i<fknum;i++)
								{
									tempTableN = fkSign[i][0];

									if(strcmp(tName,tempTableN)==0)
									{
										for(int j=1;j<20;j++)
										{
											tempField  = temp_key[k][j];

											if(strcmp(tempField,"")==0)
											{
												break;
											}

											strcpy(updatefeild[updnum][0][0],"tablename"); 

											strcpy(updatefeild[updnum][1][0],tempTableN); 

											strcpy(updatefeild[updnum][0][1],"key"); 

											strcpy(updatefeild[updnum][1][1],tempField);

											q=2;

											for(int h=1;h<20;h++)
											{
												fkFieldName = fkSign[i][h];

												if(strcmp(fkFieldName,"")==0)
												{
													break;
												}

												for(int i=0;i<fieldUpdateCount;i++)                              
												{
													fieldName = fieldUpdate_array[i].getFieldName();

													fieldValue = fieldUpdate_array[i].getFieldValue();

													if(strcmp(fkFieldName,fieldName)==0)
													{
														strcpy(updatefeild[updnum][0][q],fieldName);                      //updnum表示有多少條記錄要改,此處為一

														strcpy(updatefeild[updnum][1][q],fieldValue);

														q++;

													}
												}
											}											

											updnum++;
										}
									}
								}								
							}
							return true;
						}
							
					}
				}
				else                                //主鍵信息不用修改時(shí),要看是否引用了其它表的字段,即fkToPknum是否為0,fkToPk數(shù)組
				{
					int q = 0,updnum = 0;                                                //沒有修改主鍵時(shí),返回直接進(jìn)行修改

					memset( updatefeild, '\0', sizeof(updatefeild));

					for(int i=0;i<fieldUpdateCount;i++)                              
					{
						fieldName = fieldUpdate_array[i].getFieldName();

						fieldValue = fieldUpdate_array[i].getFieldValue();

						strcpy(updatefeild[updnum][0][q],fieldName);                      //updnum表示有多少條記錄要改,此處為一

						strcpy(updatefeild[updnum][1][q],fieldValue);

						q++;

					}

					updnum++;

					return true;					

				}
			}
			
			if(truePknum<pknum)                                                 //所給數(shù)據(jù)中PK鍵未給齊全時(shí)            
			{
				if(truePknum==0)                                                //truePknum為實(shí)際包含了的PK數(shù)
				{
					int q = 0,updnum = 0;                                       //不存在主鍵沖突,沒有PK要修改

					memset( updatefeild, '\0', sizeof(updatefeild));

					for(int i=0;i<fieldUpdateCount;i++)                              
					{
						fieldName = fieldUpdate_array[i].getFieldName();

						fieldValue = fieldUpdate_array[i].getFieldValue();

						strcpy(updatefeild[updnum][0][q],fieldName);             //updnum表示有多少條記錄要改

						strcpy(updatefeild[updnum][1][q],fieldValue);

						q++;

					}

					updnum++;

					return true;

				}
				else
				{
					memset( pkColumnValue, '\0', sizeof(pkColumnValue));

					for(int i=0;i<pknum;i++)                           //用于統(tǒng)計(jì)主鍵是否需要進(jìn)行修改
					{
						pkname = pkSign[i];

						pkvalue = select_value(tableName,pkname,keyName,keyValue);

						strcpy(pkColumnValue[i],pkvalue);

					}

					for(int i=0;i<pknum;i++)   
					{						
						pkname = pkSign[i];

						tempField = pkColumnValue[i];

						for(int j=0;j<fieldUpdateCount;j++)                              
						{
							fieldName = fieldUpdate_array[j].getFieldName();

							fieldValue = fieldUpdate_array[j].getFieldValue();
				
							if(strcmp(pkname,fieldName)==0)
							{
								if(strcmp(tempField,fieldValue)!=0)
								{
									strcpy(pkColumnValue[i],fieldValue);

									Unum++;                                 //Unum用于統(tǒng)計(jì)沒有修改了的主鍵數(shù)
								}
							}
						}
					}
					if(Unum!=0)                                            //主鍵需要修改
					{
						flag = 0;

						sqlUpdateSelect = "select key from ";               //查詢所要修改的主鍵是否已經(jīng)存在,已存在則修改失敗

						sqlUpdateSelect.append(tableName);

						sqlUpdateSelect.append(" where ");

						for(int i=0;i<pknum;i++)   
						{						
							pkname = pkSign[i];

							tempField = pkColumnValue[i];
							
							if(flag==1)
							{
								sqlUpdateSelect.append(" and ");
							}
							else
							{
								flag=1;
							}

							sqlUpdateSelect.append(pkname);

							sqlUpdateSelect.append(" = \'");

							sqlUpdateSelect.append(tempField);

							sqlUpdateSelect.append("\'");
								
						}

						chSqlUpdateSelect = sqlUpdateSelect.c_str();
						
						cn = OCI_ConnPoolGetConnection(pool);

						if (cn)
						{
							st = OCI_StatementCreate(cn);
											
							OCI_ExecuteStmt(st,MT(chSqlUpdateSelect));

							OCI_Commit(cn);	

							rs = OCI_GetResultset(st);

							while (OCI_FetchNext(rs))
							{
								value = OCI_GetString(rs,1);  

								if(strcmp(value,keyValue)!=0)
								{
									printf("所要修改的值主鍵重復(fù),修改失敗!");

									return false;
								}
							}

							nn  = OCI_GetRowCount(rs);	
						}

						if(nn==0)                                //所要修改的內(nèi)容不存在,可以修改                       
						{ 
							int q = 0,updnum = 0;                                                //不存在主鍵沖突

							memset( updatefeild, '\0', sizeof(updatefeild));

							if(fknum==0)                                                         //沒有他表對(duì)該表內(nèi)容進(jìn)行引用
							{
								for(int i=0;i<fieldUpdateCount;i++)                              
								{
									fieldName = fieldUpdate_array[i].getFieldName();

									fieldValue = fieldUpdate_array[i].getFieldValue();

									strcpy(updatefeild[updnum][0][q],fieldName);             //updnum表示有多少條記錄要改

									strcpy(updatefeild[updnum][1][q],fieldValue);

									q++;

								}

								updnum++;

								return true;
							}
							else                                                      //他表對(duì)該表內(nèi)容進(jìn)行了引用,將他表內(nèi)容也進(jìn)行修改             
							{
								for(int i=0;i<fieldUpdateCount;i++)                              
								{
									fieldName = fieldUpdate_array[i].getFieldName();

									fieldValue = fieldUpdate_array[i].getFieldValue();

									strcpy(updatefeild[updnum][0][q],fieldName);             //updnum表示有多少條記錄要改

									strcpy(updatefeild[updnum][1][q],fieldValue);

									q++;

								}

								updnum++;

								flag = 0;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一级二级三级精品视频| 91免费观看视频| 亚洲成人av电影在线| 国产精品久久毛片| 国产精品国产精品国产专区不片| 久久久国产综合精品女国产盗摄| 精品国产成人系列| 久久综合久久99| 久久久久亚洲蜜桃| 国产精品麻豆网站| 亚洲欧美一区二区三区久本道91| 亚洲视频一二三区| 亚洲网友自拍偷拍| 蜜桃精品在线观看| 激情综合网激情| 国产成人免费视频网站高清观看视频 | 日韩一区在线免费观看| 中文字幕一区二区三区不卡| 亚洲欧美电影一区二区| 午夜视频在线观看一区| 日本欧美肥老太交大片| 国产一区二区不卡在线 | 国产亲近乱来精品视频| ㊣最新国产の精品bt伙计久久| 一区二区三区自拍| 美女久久久精品| 成人黄色网址在线观看| 在线免费观看日韩欧美| 日韩欧美一区二区不卡| 国产精品久久久久久久久快鸭| 一区二区三区日韩精品视频| 久久电影网电视剧免费观看| kk眼镜猥琐国模调教系列一区二区| 色狠狠综合天天综合综合| 欧美日韩电影在线| 国产精品免费观看视频| 亚洲国产成人av网| 国产精品白丝jk黑袜喷水| 日本伦理一区二区| 精品不卡在线视频| 亚洲亚洲人成综合网络| 国产九色sp调教91| 欧美精品一二三| 国产精品不卡在线观看| 亚洲成人激情综合网| 粉嫩蜜臀av国产精品网站| 欧美日本乱大交xxxxx| 国产精品高潮呻吟久久| 精品一区二区三区在线观看国产 | 中文字幕av在线一区二区三区| 亚洲一二三专区| 懂色一区二区三区免费观看 | 黑人巨大精品欧美黑白配亚洲| 成人黄色综合网站| 国产亚洲婷婷免费| 日韩va亚洲va欧美va久久| 91在线视频在线| 欧美国产精品一区二区三区| 蜜桃久久av一区| 欧美美女激情18p| 亚洲综合久久av| 91在线无精精品入口| 国产日产欧美一区二区三区 | 色老汉av一区二区三区| 国产精品久久久99| 精品写真视频在线观看| 日韩欧美国产不卡| 日韩黄色片在线观看| 在线区一区二视频| 一区二区三国产精华液| 色综合中文综合网| 精品视频在线视频| 亚洲国产精品久久久久婷婷884 | 精品一区中文字幕| 日韩欧美在线观看一区二区三区| 日韩电影在线免费看| 欧美日韩视频在线第一区| 午夜影视日本亚洲欧洲精品| 在线观看av一区二区| 亚洲精品日产精品乱码不卡| 日本久久精品电影| 丝袜亚洲另类欧美综合| 在线播放中文一区| 免费精品视频在线| 精品少妇一区二区三区在线播放 | 激情成人午夜视频| 久久久久国产精品厨房| 成人丝袜18视频在线观看| 国产无遮挡一区二区三区毛片日本| 国产精品亚洲专一区二区三区| 久久久91精品国产一区二区三区| 国产不卡视频在线观看| 亚洲美女视频在线| 欧美男男青年gay1069videost| 亚洲777理论| 欧美不卡一区二区三区四区| 国产a级毛片一区| 亚洲欧美韩国综合色| 欧美另类变人与禽xxxxx| 裸体健美xxxx欧美裸体表演| 久久欧美一区二区| 色一情一乱一乱一91av| 天堂va蜜桃一区二区三区| 欧美大度的电影原声| 不卡高清视频专区| 日韩成人免费电影| 欧美极品少妇xxxxⅹ高跟鞋 | 亚欧色一区w666天堂| 精品免费日韩av| 99精品国产99久久久久久白柏| 亚洲v中文字幕| 国产日产欧产精品推荐色| 在线观看网站黄不卡| 韩国一区二区视频| 亚洲精品国产视频| 精品少妇一区二区三区日产乱码 | 成人黄色小视频在线观看| 亚洲国产综合在线| 国产色产综合色产在线视频| 在线观看网站黄不卡| 成人永久免费视频| 国产精品网友自拍| 欧美亚洲动漫另类| 久久国产夜色精品鲁鲁99| 日本一区二区三区久久久久久久久不| 色999日韩国产欧美一区二区| 免费成人小视频| 一区二区三区精品视频| 欧美高清在线一区| 欧美成人综合网站| 欧美三区免费完整视频在线观看| 国产成人精品免费| 另类小说图片综合网| 天天综合天天综合色| 综合久久久久久久| 中文字幕精品—区二区四季| 欧美xfplay| 欧美精选在线播放| 在线观看中文字幕不卡| 99视频一区二区三区| 国产麻豆日韩欧美久久| 久久av老司机精品网站导航| 首页综合国产亚洲丝袜| 亚洲国产婷婷综合在线精品| 亚洲精品视频免费看| 综合电影一区二区三区 | 久久久蜜桃精品| 欧美v亚洲v综合ⅴ国产v| 欧美精品18+| 欧美日韩另类国产亚洲欧美一级| 91亚洲国产成人精品一区二区三| 国产精品影视网| 国产精品系列在线播放| 国产福利一区在线观看| 国产精品白丝jk黑袜喷水| 国产黄人亚洲片| 成人自拍视频在线观看| 成人性生交大片免费看视频在线 | 色哟哟亚洲精品| 91福利国产精品| 欧美精品在线一区二区三区| 欧美福利视频导航| 91精品国产色综合久久不卡电影| 欧美酷刑日本凌虐凌虐| 91精品久久久久久久99蜜桃 | 色妞www精品视频| 欧美在线你懂的| 6080亚洲精品一区二区| 欧美va日韩va| 国产日本欧美一区二区| 18成人在线视频| 天堂影院一区二区| 精品一区二区免费看| 国产大陆亚洲精品国产| 91免费看视频| 欧美日韩电影在线播放| 2020国产精品| 日韩码欧中文字| 性久久久久久久久久久久| 九色综合狠狠综合久久| av高清久久久| 欧美伦理电影网| 欧美激情一区二区三区不卡| 亚洲黄色小视频| 国产在线一区观看| 99久久99久久综合| 日韩午夜在线观看| 中文字幕在线不卡| 免费美女久久99| av资源站一区| 日韩美女主播在线视频一区二区三区 | 无码av免费一区二区三区试看| 久久精品理论片| 色综合久久久网| 2022国产精品视频| 日韩激情视频在线观看| av午夜精品一区二区三区| 日韩免费视频一区| 亚洲一区二区三区中文字幕| 国产精品99久久久久久久女警|