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

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

?? vc_oracle2.txt

?? 在vc中創建數據庫
?? TXT
?? 第 1 頁 / 共 5 頁
字號:

	int ftopNum,recordNum;

	const char *chSqlInsert,*chSqlInsertSelect;

	char *tempTableName,*keyName,*keyValue;                               //! 刪除了一個未用定義*pkName

	tableName = fieldInsert_array[0].getFieldValue();

	keyName = fieldInsert_array[1].getFieldName();

	keyValue = fieldInsert_array[1].getFieldValue();

	pknum = get_PK(tableName);                //得出表中原本該有的主鍵數,并且把主鍵字段名存入pkSign
	
	for(int j=0;j<20;j++)                       //判斷輸入數據是否允許為空,是否溢出,并統計其中具備主鍵個數
	{
		const char *table_name=table_array[j][0][0];

		if(strcmp(table_name,tableName) == 0)
		{
			for(int i=1;i<fieldInsertCount;i++)                                  
			{		
				fieldName = fieldInsert_array[i].getFieldName();

				fieldValue = fieldInsert_array[i].getFieldValue();
		
				for(int k=1;k<20;k++)
				{
					const char *field_column=table_array[j][k][0];

					const char *field_length=table_array[j][k][2];

					const char *field_null=table_array[j][k][3];

					const char *field_pk=table_array[j][k][5];

					const char *field_default=table_array[j][k][4];
					
					if(strcmp(field_column,"") == 0)
					{
						break;
					}
					
					if(strcmp(field_column,fieldName) == 0)
					{
						if((strcmp(fieldValue,"") == 0)&&(strcmp(field_null,"NOT NULL") == 0))
						{
							if(strcmp(field_default,"") == 0)
							{
								printf("%s 不能為空,插入失敗!",fieldName);
							
								return -1;
							}
						}
						
						if((int)strlen(fieldValue)>atoi(field_length))
						{
							printf("%s 長度溢出,插入失敗!",fieldValue);

							return -1;
						}
						
						if(strcmp(field_pk,"1") == 0)
						{
							num++;
						}							

					}
				}

			}

		}

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

	sqlInsertSelect = "select * from ";

	sqlInsertSelect.append(tableName);

	sqlInsertSelect.append(" where ");

	sqlInsertSelect.append(keyName);

	sqlInsertSelect.append(" = \'");

	sqlInsertSelect.append(keyValue);

	sqlInsertSelect.append("\'");

	chSqlInsertSelect=sqlInsertSelect.c_str();

	cn = OCI_ConnPoolGetConnection(pool);

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

		OCI_Commit(cn);

		rs = OCI_GetResultset(st);

		while (OCI_FetchNext(rs))
		{
		}

		n = OCI_GetRowCount(rs);

		if(n!=0)
		{
			printf("唯一鍵key重復,插入失敗!");

			return -1;
		}

		OCI_StatementFree(st);  //釋放

		OCI_ConnectionFree(cn);
	}
	
	if(pknum==num)              //主鍵數符合要求,全部給予時
	{
		flag = 0;	

		sqlInsertSelect = "select * from ";

		sqlInsertSelect.append(tableName);

		sqlInsertSelect.append(" where ");

		for(int i=1;i<fieldInsertCount;i++)
		{
			fieldName = fieldInsert_array[i].getFieldName();

			fieldValue = fieldInsert_array[i].getFieldValue();

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

			sqlInsertSelect.append(" = \'");

			sqlInsertSelect.append(fieldValue);

			sqlInsertSelect.append("\'");
		}

		chSqlInsertSelect=sqlInsertSelect.c_str();

		cn = OCI_ConnPoolGetConnection(pool);

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

			OCI_Commit(cn);

			rs = OCI_GetResultset(st);

			while (OCI_FetchNext(rs))
			{
			}

			recordNum = OCI_GetRowCount(rs);

			OCI_StatementFree(st);  //釋放

			OCI_ConnectionFree(cn);
		}

		if(recordNum!=0)
		{
			printf("數據庫中已經存在相同的值,插入失敗!");

			return -1;
		}
		else
		{
			ftopNum = get_FtoP(tableName);

			if(ftopNum==0)                                //沒有關聯表,可以直接進行插入操作
			{
				for(int i=1;i<fieldInsertCount;i++)
				{
					fieldName = fieldInsert_array[i].getFieldName();

					fieldValue = fieldInsert_array[i].getFieldValue();

					for(int j=0;j<20;j++)
					{
						const char *table_name=table_array[j][0][0];

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

						if(strcmp(table_name,tableName) == 0)
						{
							flag=0;

							sqlInsert="insert into ";

							sqlInsert.append(tableName);

							sqlInsert.append("(");

							for(int k=1;k<fieldInsertCount;k++)
							{
								fieldName = fieldInsert_array[k].getFieldName();

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

								sqlInsert.append(fieldName);

								if(flag==0)
								{
									flag=1;
								}
							}

							flag=0;

							sqlInsert.append(") values (");

							for( int k=1;k<fieldInsertCount;k++)
							{
								fieldValue = fieldInsert_array[k].getFieldValue();

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

								sqlInsert.append("\'");

								sqlInsert.append(fieldValue);

								sqlInsert.append("\'");
												
							}
							flag=0;

							sqlInsert.append(")");

							chSqlInsert=sqlInsert.c_str();

							cn = OCI_ConnPoolGetConnection(pool);

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

								OCI_Commit(cn);

								OCI_StatementFree(st);  //釋放

								fieldInsertCount = 0;

							}

							printf("成功插入一條記錄!\n");

							return 0;
						}

						OCI_ConnectionFree(cn);
					}
				}
			}			

			else
			{
				char *tempField;

				flag = 0;

				for(int q=0;q<ftopNum;q++)               //查詢主表中是否存在該記錄值,有則可以進行插入
				{
					tempTableName = fkToPk[q][0];

					sqlInsertSelect="select * from ";

					sqlInsertSelect.append(tempTableName);

					sqlInsertSelect.append(" where ");

					for(int g=1;g<20;g++)
					{
						tempField = fkToPk[q][g];

						if(strcmp(tempField,"")==0)
						{
							break;
						}
						for(int i=1;i<fieldInsertCount;i++)
						{
							fieldName = fieldInsert_array[i].getFieldName();

							fieldValue = fieldInsert_array[i].getFieldValue();

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

								sqlInsertSelect.append(" = \'");

								sqlInsertSelect.append(fieldValue);

								sqlInsertSelect.append("\'");
							}
						}
					}
					chSqlInsertSelect=sqlInsertSelect.c_str();

					cn = OCI_ConnPoolGetConnection(pool);

					flag = 0;

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

						OCI_Commit(cn);

						rs = OCI_GetResultset(st);

						while (OCI_FetchNext(rs))
						{
						}

						n = OCI_GetRowCount(rs);

						OCI_StatementFree(st);  //釋放

						OCI_ConnectionFree(cn);
					}

					if(n==0)
					{
						printf("所要插入的值在關聯表中不存在,插入失敗!");

						return -1;
					}
				}
				for(int i=1;i<fieldInsertCount;i++)
				{
					fieldName = fieldInsert_array[i].getFieldName();

					fieldValue = fieldInsert_array[i].getFieldValue();

					for(int j=0;j<20;j++)
					{
						const char *table_name=table_array[j][0][0];

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

						if(strcmp(table_name,tableName) == 0)
						{
							flag=0;

							sqlInsert="insert into ";

							sqlInsert.append(tableName);

							sqlInsert.append("(");

							for(int k=1;k<fieldInsertCount;k++)
							{
								fieldName = fieldInsert_array[k].getFieldName();

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

								sqlInsert.append(fieldName);

								if(flag==0)
								{
									flag=1;
								}
							}

							flag=0;

							sqlInsert.append(") values (");

							for( int k=1;k<fieldInsertCount;k++)
							{
								fieldValue = fieldInsert_array[k].getFieldValue();

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

								sqlInsert.append("\'");

								sqlInsert.append(fieldValue);

								sqlInsert.append("\'");
												
							}
							flag=0;

							sqlInsert.append(")");

							chSqlInsert=sqlInsert.c_str();

							cn = OCI_ConnPoolGetConnection(pool);

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

								OCI_Commit(cn);

								OCI_StatementFree(st);  //釋放

								fieldInsertCount = 0;

							}

							printf("成功插入一條記錄!\n");

							return 0;
						}

						OCI_ConnectionFree(cn);
					}
				}
			}
		}
	}
	else
	{
		printf("所要插入的信息不完整,插入失敗!");
			
		return -1;
	}
}

int tables::updateF()              //如果外鍵引用了該記錄,那么也不能進行修改
{
	bool updateReturn;

	char *tableV,*keyV,*keyN,*fieldN,*fieldV;             //! 刪除了一個未用定義*tableN

	string sqlUpdate;

	const char *chSqlUpdate;

	updateReturn = updatecheck();

	int flag = 0;

	if(updateReturn==true)
	{
		sqlUpdate = "begin ";

		for(int i=0;i<20;i++)
		{
			tableV = updatefeild[i][1][0];

			keyN = updatefeild[i][0][1];

			keyV = updatefeild[i][1][1];

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

			sqlUpdate.append("execute immediate \'update ");

			sqlUpdate.append(tableV);

			sqlUpdate.append(" set ");
											
			flag=0;

			for(int j=2;j<20;j++)
			{
				fieldN = updatefeild[i][0][j];

				fieldV = updatefeild[i][1][j];

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

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

				sqlUpdate.append("=\'\'");

				sqlUpdate.append(fieldV);

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

			sqlUpdate.append(" where ");

			sqlUpdate.append(keyN);

			sqlUpdate.append(" = \'\'");

			sqlUpdate.append(keyV);

			sqlUpdate.append("\'\'\';");

		}

		sqlUpdate.append(" end;");

		chSqlUpdate=sqlUpdate.c_str();

		//printf("%s",chSqlUpdate);

		cn = OCI_ConnPoolGetConnection(pool);

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

			OCI_Commit(cn);

			OCI_StatementFree(st);  //釋放

		}

		printf("成功修改了%d條記錄!\n",i);

		return 0;
	}
	else
	{
		return -1;
	}

	return 0;
}


bool tables::updatecheck()
{
	string sqlUpdateSelect;                //剪切  ,sqlUpdate

	const char *chSqlUpdateSelect,*value,*pkvalue;                    //剪切 *chSqlUpdate,

	char *keyName,*keyValue,*pkname,*tempTableN,*tempField,*tempFieldValue;

	int n=0,flag,nn;

	int truePknum=0,pknum=0,fknum=0,fkToPknum=0,Unum=0,tempNum=0;

	char temp_value[128][20][20];

	char temp_key[20][128][20];

	char fkField[10][20][20];        

	char pkColumn[10][20];            //存儲所有主鍵名稱

	char pkColumnValue[10][20];       //存儲所有主鍵值

	tableName = fieldUpdate_array[0].getFieldValue();

	keyName = fieldUpdate_array[1].getFieldName();

	keyValue = fieldUpdate_array[1].getFieldValue();

	pknum = get_PK(tableName);                    //得出表中原本該有的主鍵數,并且將主鍵名稱存入pkSign數組中

	fknum = get_FK(tableName);                    //得出是否有其它表引用該表主鍵為外鍵,并存入fkSign數組中     

	fkToPknum = get_FtoP(tableName);              //得出該表是否引用其它表主鍵為外鍵,并存入fkToPk數組中

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

		if(strcmp(fieldName,"key")==0)
		{
			printf("key為標識,不允許進行修改,修改失敗!");

			return false;
		}
	}

	flag = 0;

	sqlUpdateSelect = "select * from ";           //查詢所要修改的值是否已經存在,存在即不需要進行修改

	sqlUpdateSelect.append(tableName);

	sqlUpdateSelect.append(" where ");

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

		fieldValue = fieldUpdate_array[i].getFieldValue();
		

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩欧美综合一区| 欧美一级高清片在线观看| 国内国产精品久久| 久久精品国产网站| 经典三级一区二区| 国产一区二区三区不卡在线观看| 狠狠色丁香九九婷婷综合五月| 麻豆精品视频在线| 黄色日韩三级电影| 国产99久久久久久免费看农村| 成人av第一页| 欧美日韩综合在线免费观看| 69堂国产成人免费视频| 日韩一区二区三区四区五区六区| 日韩久久精品一区| 国产精品福利影院| 午夜国产精品一区| 国产裸体歌舞团一区二区| 成年人国产精品| 欧美亚洲日本一区| 欧美韩国一区二区| 亚洲欧美日韩在线不卡| 日韩精品福利网| 国产精品456| 欧美午夜影院一区| 欧美va天堂va视频va在线| 国产精品第五页| 婷婷成人激情在线网| 成人午夜激情视频| 欧美一区二区三区在线观看视频 | 激情综合亚洲精品| 91丨九色丨尤物| 日韩欧美一区二区在线视频| 中文字幕免费一区| 天天色天天操综合| 成人sese在线| 日韩免费电影网站| 一区二区三区在线观看网站| 黄页网站大全一区二区| 91国偷自产一区二区三区成为亚洲经典 | 久久99精品久久久久久国产越南 | 免费在线观看一区| 色诱亚洲精品久久久久久| 精品福利一区二区三区| 一区二区视频在线| 国产成人免费高清| 日韩欧美一区二区免费| 亚洲国产精品久久不卡毛片| 成人美女视频在线看| 欧美不卡在线视频| 午夜一区二区三区视频| 99视频国产精品| 国产欧美日韩另类视频免费观看| 日本少妇一区二区| 欧美日韩亚洲国产综合| 亚洲品质自拍视频| 成人av网站大全| 国产日产欧美一区二区视频| 日本午夜精品视频在线观看| 精品视频一区二区不卡| 亚洲欧美电影一区二区| 97久久超碰国产精品| 国产精品国产三级国产普通话蜜臀 | 国产精品欧美久久久久无广告| 青青草国产精品97视觉盛宴| 欧美日韩国产在线观看| 一区二区三区在线看| 色老汉一区二区三区| 国产精品不卡一区二区三区| 成人激情动漫在线观看| 国产精品视频在线看| 国产精品资源网| 国产日产欧产精品推荐色| 国产mv日韩mv欧美| 国产欧美一区二区三区网站| 国产精品99久久久久久宅男| 国产午夜亚洲精品理论片色戒| 国产精品77777竹菊影视小说| 久久综合色鬼综合色| 国产精品亚洲综合一区在线观看| 2023国产精品自拍| 成人妖精视频yjsp地址| 中文字幕欧美一区| 欧美三日本三级三级在线播放| 亚洲国产精品视频| 日韩一区二区在线看| 国产suv精品一区二区6| 亚洲区小说区图片区qvod| 欧美色电影在线| 精品一区二区av| 亚洲国产精品高清| 欧美色男人天堂| 久久99精品久久久久久| 日本一区二区三区高清不卡 | 另类中文字幕网| 日韩视频免费观看高清完整版| 九九精品一区二区| 中文字幕亚洲电影| 91精品一区二区三区久久久久久| 久久丁香综合五月国产三级网站| 久久精品人人做人人爽人人| av电影在线观看完整版一区二区| 亚洲成av人片在www色猫咪| 精品免费国产二区三区| 日本乱码高清不卡字幕| 久久精品久久99精品久久| 国产精品欧美极品| 日韩天堂在线观看| 97精品久久久午夜一区二区三区 | 欧美调教femdomvk| 国产老肥熟一区二区三区| 亚洲天天做日日做天天谢日日欢 | 欧美激情一区二区在线| 欧美日韩在线三区| 高清在线成人网| 亚洲国产aⅴ成人精品无吗| 国产午夜精品一区二区| 欧美日韩国产综合一区二区三区 | 7878成人国产在线观看| 99久久精品国产麻豆演员表| 久久精品国产澳门| 亚洲综合另类小说| 国产亚洲精品中文字幕| 91麻豆精品国产91久久久久| 色婷婷亚洲精品| 成人免费毛片a| 蜜桃精品视频在线观看| 亚洲国产日韩a在线播放| 国产精品久久久久久福利一牛影视| 欧美一二区视频| 欧美色综合天天久久综合精品| 成人精品电影在线观看| 国产精品一区二区在线观看不卡 | 国产欧美日产一区| 日韩免费电影网站| 欧美一区二区三区人| 欧美日本视频在线| 欧美视频精品在线| 91九色最新地址| 色欧美片视频在线观看| 91香蕉国产在线观看软件| 91在线观看污| 成人黄色软件下载| 成人黄色av电影| av一区二区久久| 99视频精品在线| 9久草视频在线视频精品| 成人免费av网站| 91首页免费视频| 91豆麻精品91久久久久久| 色哟哟在线观看一区二区三区| 成人一级片在线观看| k8久久久一区二区三区| 不卡的电视剧免费网站有什么| 成人免费的视频| 在线观看亚洲一区| 7777精品伊人久久久大香线蕉完整版| 欧美亚洲图片小说| 欧美一卡2卡三卡4卡5免费| 欧美一区二区精品久久911| 精品裸体舞一区二区三区| 久久嫩草精品久久久精品一| 欧美激情在线一区二区三区| 国产精品美女久久久久aⅴ国产馆| 成人免费在线观看入口| 亚洲成人综合网站| 另类欧美日韩国产在线| 国产v综合v亚洲欧| 91丨porny丨在线| 欧美日韩免费观看一区三区| 欧美一区欧美二区| 欧美国产欧美亚州国产日韩mv天天看完整 | 国产精品美女一区二区三区| 国产精品久久久久久久蜜臀| 亚洲一区二区在线免费看| 丝袜亚洲精品中文字幕一区| 精品综合久久久久久8888| 成人av网站在线| 91精品国产综合久久精品app| 日韩欧美国产1| 中文字幕亚洲一区二区av在线| 五月激情六月综合| 国产成人av影院| 欧美日韩一二三区| 欧美国产日本视频| 日韩极品在线观看| av电影天堂一区二区在线观看| 欧美日韩免费观看一区二区三区| 久久久久国产精品免费免费搜索| 玉米视频成人免费看| 国产精品99久久久久久宅男| 精品污污网站免费看| 国产精品久久久久久久第一福利 | 色婷婷久久久久swag精品| 日韩精品一区二| 亚洲第一综合色| 91污在线观看| 中文字幕免费不卡在线| 青娱乐精品视频| 欧美日本在线观看|