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

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

?? vc_oracle2.txt

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

#include "tables.h"

#include "string.h"

extern OCI_ConnPool *pool ;


static OCI_Connection *cn = NULL;
static OCI_Statement  *st = NULL;
static OCI_Resultset  *rs = NULL;


tables::tables(void)
{
	deleteNum = 0;

	trueKeyNum = 0;

	tableName = 0;

	fieldInsertCount = 0;

	fieldUpdateCount = 0;

	fieldDeleteCount = 0;
}

tables::~tables(void)
{
}

int tables::setTableName(char * tName)
{
	if(!tName || !*tName) return -1;

	if(tableName)
	{
		free(tableName);
	}

	tableName = strdup(tName);

	printf("tableName=%s\n",tableName);

	return 0;

}

char tables::getTableName()
{
	return *tableName;
}

int tables::creates()
{
	OCI_Statement  *st1 = NULL;

	OCI_Statement  *st2 = NULL;

	OCI_Statement  *st3 = NULL;

	OCI_Statement  *st4 = NULL;

	char sqlc[2048] = {0};

	char sqlpk[2048] = {0};

	char sqlfk[2048] = {0};

	char sqluk[2048] = {0};

	string sqlIndex;

	const char *chSqlIndex;

	int flag = 0,tablenum = 0,pknum = 0,fknum = 0,uniquenum = 0;

	strcat(sqlc,"begin ");

    for(int x=0;x<20;x++)                                //新建表,并給出數據類型、數據大小和是否為空的信息
	{
        if(table_array[x][0][0])
		{
			const char *table_name=table_array[x][0][0];

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

			strcat(sqlc,"execute immediate \'create table ");

			strcat(sqlc,table_name);

			strcat(sqlc,"(");

			for(int y=1;y<20;y++)
			{
				const char *table_column=table_array[x][y][0];

				if(strcmp(table_column,"") == 0)
				{
					strcat(sqlc,")");

					break;
				}
				else
				{
					if(flag==1)
					{
						strcat(sqlc,",");
					}

					strcat(sqlc,table_column);
				}

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

                for(int i=1;i<5;i++)
				{	
					if(table_array[x][y][i])
					{
						const char *table_feild=table_array[x][y][i];

						if(strcmp(table_feild," ") == 0)
						{
							continue;
						}

						if(i==2)
						{
							strcat(sqlc,"(");

							strcat(sqlc,table_feild);

							strcat(sqlc,")");

							continue;
						}

						if(strcmp(table_feild,"NOT NULL")==0)
						{
							const char *table_default=table_array[x][y][4];

							if(strcmp(table_default,"")!=0)
							{
								continue;
							}

						}

						if(strcmp(table_feild,"NULL")==0)
						{
							const char *table_default=table_array[x][y][4];

							if(strcmp(table_default,"")!=0)
							{
								printf("創建失敗,設置默認值的字段必須為非空!");

								return -1;
							}

						}

						if(i==4)
						{
							if(strcmp(table_feild,"")!=0)
							{
								strcat(sqlc," default \''");

								strcat(sqlc,table_feild);

								strcat(sqlc,"\''");

								continue;
							}
						}

						strcat(sqlc," ");

						strcat(sqlc,table_feild);
						
					}
				}
			}
		}
		strcat(sqlc,"\'; ");

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

	strcat(sqlc,"end;");

	tablenum = x;

	cn = OCI_ConnPoolGetConnection(pool);
   
	strcat(sqlpk,"begin ");

	int y;

    for(x=0;x<20;x++)                   //為表添加主鍵約束
	{
		if(table_array[x][0][0])
		{
			const char *table_name=table_array[x][0][0];

			if(strcmp(table_array[x][0][0],"") == 0)
			{
				break;
			}
			strcat(sqlpk,"execute immediate 'alter table ");

			strcat(sqlpk,table_name);

			strcat(sqlpk," ");

			for(y=1;y<20;y++)
			{
				const char *table_column=table_array[x][y][0];

				const char *table_feild=table_array[x][y][5];

				if(strcmp(table_feild,"") == 0)
				{
					continue;

				}

				if(strcmp(table_feild,"1") == 0)
				{
					strcat(sqlpk,"add constraint ");

					strcat(sqlpk,"\"PK_");

					strcat(sqlpk,table_name);

					strcat(sqlpk,"\" primary key(");

					strcat(sqlpk,table_column);

					int k;

					for(k=y+1;k<20;k++)
					{
						if(strcmp(table_array[x][k][5],"1") == 0)
						{
							strcat(sqlpk,",");

							strcat(sqlpk,table_array[x][k][0]);

						}

					}

					strcat(sqlpk,")");

					break;
				}
			}

				strcat(sqlpk,"\'; ");

		}
	}

	strcat(sqlpk,"end;");

	pknum = x;
	
	strcat(sqlfk,"begin ");

    for(x=0;x<20;x++)                 //*為表添加外鍵約束
	{
		if(table_array[x][0][0])
		{
			const char *table_name=table_array[x][0][0];

			char *pre=NULL;

			char fk[20][20];

			char *last=NULL;

			char pos[200];

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

			for(int r=1;r<=20;r++)
			{
				const char *fk_name=table_array[x][0][r];

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

				int k=0;

				strcpy(pos,fk_name);

				pre= strtok(pos,".");

				while(pre!= NULL)
				{
					strcpy(fk[k],pre);
					
					k++;

					pre = strtok( NULL, "." );

				}

				for(int j=0;j<20;j++)
				{
					int len;

					const char *t_name=table_array[j][0][0];

					len=k-1;

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

					int n;

					if(strcmp(t_name,fk[0]) == 0)       //表名相同時,對字段進行比照。
					{
						for(n=len;n>0;n--)
						{
							for(int i=1;i<20;i++)
							{
								const char *t_column=table_array[j][i][0];

								if(strcmp(t_column,fk[n]) == 0)
								{
									len--;

									break;
								}
							}
						}

						if(len==0)             //所有字段比照相同時,添加SQL語句。
						{
							strcat(sqlfk,"execute immediate \'alter table ");

							strcat(sqlfk,table_name);

							strcat(sqlfk," ");

							strcat(sqlfk,"add constraint ");

							strcat(sqlfk,"\"FK_");

							strcat(sqlfk,table_name);

							strcat(sqlfk,"_");

							strcat(sqlfk,fk[0]);

							strcat(sqlfk,"\" foreign key(");

							flag=0;

							for(n=k-1;n>0;n--)
							{
								if(flag==1)
								{
									strcat(sqlfk,",");
								}

								strcat(sqlfk,fk[n]);

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

							flag=0;

							strcat(sqlfk,")");

							strcat(sqlfk," references ");

							strcat(sqlfk,fk[0]);

							strcat(sqlfk,"(");

							for(n=k-1;n>0;n--)
							{
								if(flag==1)
								{
									strcat(sqlfk,",");
								}

								strcat(sqlfk,fk[n]);

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

							}
							strcat(sqlfk,")");            //剪切了disable——strcat(sqlfk,") disable\'; "); 

							strcat(sqlfk," on delete cascade ");                     //添加級聯刪除

							strcat(sqlfk," initially deferred deferrable ");         //添加提交延遲,用于級聯修改

							strcat(sqlfk,"\'; "); 

						}
						else 
							printf("連接表中沒有相應的列,外鍵創建失敗!");
					}
				}
			}				
		}	
	}	

	strcat(sqlfk,"end;");

	fknum = x;

	//printf("SQL->%s\n", sqlfk);

	//printf("\n");

	strcat(sqluk,"begin ");

	for(x=0;x<20;x++)                   //為表添加唯一鍵約束
	{
		if(table_array[x][0][0])
		{
			const char *table_name=table_array[x][0][0];

			if(strcmp(table_array[x][0][0],"") == 0)
			{
				break;
			}
			strcat(sqluk,"execute immediate 'alter table ");

			strcat(sqluk,table_name);

			strcat(sqluk," ");

			for(y=1;y<20;y++)
			{
				const char *table_column=table_array[x][y][0];

				const char *table_feild=table_array[x][y][5];

				if(strcmp(table_feild,"") == 0)
				{
					continue;

				}

				if(strcmp(table_feild,"3") == 0)
				{
					strcat(sqluk,"add constraint ");

					strcat(sqluk,"\"UK_");

					strcat(sqluk,table_name);

					strcat(sqluk,"\" unique (");

					strcat(sqluk,table_column);

					int k;

					for(k=y+1;k<20;k++)
					{
						if(strcmp(table_array[x][k][5],"3") == 0)
						{
							strcat(sqluk,",");

							strcat(sqluk,table_array[x][k][0]);
						}

					}

					strcat(sqluk,")");

					break;
				}
			}

				strcat(sqluk,"\'; ");

		}
	}

	strcat(sqluk,"end;");

	uniquenum = x;
	
	//printf("SQL->%s\n", sqlc);

	printf("\n");   

	if (cn)
    {
        st1 = OCI_StatementCreate(cn);

		OCI_ExecuteStmt(st1,MT(sqlc));

		OCI_Commit(cn);

		OCI_StatementFree(st1);  //釋放

		printf("有%d個表成功創建!\n",tablenum);

    }

	if (cn)
    {
        st2 = OCI_StatementCreate(cn);

		OCI_ExecuteStmt(st2,MT(sqlpk));

		OCI_Commit(cn);

		OCI_StatementFree(st2);  //釋放

		printf("有%d個主鍵成功創建!\n",pknum);
    }

	if (cn)
    {
        st3 = OCI_StatementCreate(cn);

		OCI_ExecuteStmt(st3,MT(sqlfk));

		OCI_Commit(cn);

		OCI_StatementFree(st3);  //釋放

		printf("有%d個外鍵鍵成功創建!\n",pknum);

    }

	if (cn)
    {
        st4 = OCI_StatementCreate(cn);

		OCI_ExecuteStmt(st4,MT(sqluk));

		OCI_Commit(cn);

		OCI_StatementFree(st4);  //釋放

		printf("有%d個唯一鍵鍵鍵成功創建!\n",pknum);

    }
    
	for(x=0;x<20;x++)                               //創建索引
	{
		const char *table_name=table_array[x][0][0];

		if(strcmp(table_name,"")==0)
		{
			break;
		}
		
		for(int y=1;y<20;y++)
		{
			const char *field_column=table_array[x][y][0];

			const char *field_key=table_array[x][y][5];

			const char *field_index=table_array[x][y][6];

			if(strcmp(field_column,"")==0)
			{
				break;
			}
			if((strcmp(field_index,"1")==0)||(strcmp(field_index,"0")==0))
			{
				if((strcmp(field_key,"1")==0)||(strcmp(field_key,"3")==0))
				{
					printf("%s表的%s字段索引創建失敗,該字段為主鍵或唯一鍵,索引沖突!\n",table_name,field_column); 

					dropTable();                                  //添加一個刪除所建表的函數  外鍵關系刪除

					return -1;
				}

				sqlIndex = "create index "; 

				sqlIndex.append("IDX_");

				sqlIndex.append(table_name);

				sqlIndex.append("_");

				sqlIndex.append(field_column);

				sqlIndex.append(" on ");

				sqlIndex.append(table_name);

				sqlIndex.append("(");

				sqlIndex.append(field_column);

				if(strcmp(field_index,"0")==0)
				{
					sqlIndex.append(" desc");
				}

				sqlIndex.append(")");

				chSqlIndex=sqlIndex.c_str();

				cn = OCI_ConnPoolGetConnection(pool);

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

					OCI_Commit(cn);

					OCI_StatementFree(st);  //釋放

				}
			}			
		}
	}

	printf("索引成功創建!\n");

	OCI_ConnectionFree(cn);

	return EXIT_SUCCESS;

}

int tables::insertF()     //插入操作!
{
	string sqlInsertSelect,sqlInsert;

	int num=0,pknum=0,flag=0,n=0;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合一区二区| 国产欧美日韩综合精品一区二区| 日韩欧美在线综合网| 国产欧美中文在线| 日产国产欧美视频一区精品 | 日韩精品福利网| 成人免费视频免费观看| 日韩美女一区二区三区| 亚洲香蕉伊在人在线观| caoporn国产一区二区| 久久久综合精品| 蜜桃久久精品一区二区| 欧美久久一二三四区| 伊人夜夜躁av伊人久久| jlzzjlzz欧美大全| 精品对白一区国产伦| 日本视频中文字幕一区二区三区| 91成人在线免费观看| 中文字幕一区在线观看| 国产suv精品一区二区三区| 日韩欧美亚洲另类制服综合在线| 一区二区三区日韩精品视频| 白白色 亚洲乱淫| 国产欧美日韩在线看| 国产精品一级片在线观看| 欧美tickling网站挠脚心| 国产经典欧美精品| 欧美一级二级在线观看| 日韩高清在线观看| 日韩丝袜情趣美女图片| 久久精品国产色蜜蜜麻豆| 日韩美一区二区三区| 久久99蜜桃精品| 精品少妇一区二区三区| 国内精品国产成人国产三级粉色| 日韩午夜激情电影| 免费观看在线色综合| 日韩视频一区二区| 久久精品国产第一区二区三区| 欧美成人一区二区三区片免费| 麻豆精品在线播放| 久久久亚洲高清| 成人免费观看视频| 一区二区激情视频| 制服丝袜亚洲精品中文字幕| 捆绑调教一区二区三区| 久久青草欧美一区二区三区| 大尺度一区二区| 亚洲色图在线看| 欧美日产国产精品| 国产麻豆一精品一av一免费| 国产精品五月天| 欧美在线你懂得| 理论电影国产精品| 国产精品美女一区二区| 色综合久久88色综合天天6| 亚洲成精国产精品女| 日韩欧美成人午夜| 成人综合在线观看| 午夜一区二区三区视频| 精品国产123| 91理论电影在线观看| 蜜芽一区二区三区| 国产精品久久久久影视| 51精品秘密在线观看| 国产精品综合一区二区三区| 亚洲视频图片小说| 亚洲精品一线二线三线| 在线观看三级视频欧美| 国产一区二区三区高清播放| 一区二区视频免费在线观看| 日韩免费观看高清完整版 | 青青草原综合久久大伊人精品| 久久精品人人做人人综合 | 香港成人在线视频| 中文子幕无线码一区tr| 91精品欧美综合在线观看最新| 国产成人综合亚洲网站| 视频一区二区三区在线| 国产精品国模大尺度视频| 日韩精品资源二区在线| 一本到不卡免费一区二区| 国产乱码精品一区二区三区av | 午夜精品久久久久久| 国产亚洲欧美日韩日本| 91精品国产综合久久香蕉麻豆| 成人av一区二区三区| 日本vs亚洲vs韩国一区三区二区| 亚洲色大成网站www久久九九| 精品电影一区二区| 欧美三区在线观看| 色综合久久天天| 丁香激情综合五月| 国产一区二区三区四区五区入口 | 国产精品久久久久久久久免费桃花 | 久久精品免费观看| 亚洲色图在线播放| 国产精品久久久久久久浪潮网站 | 国产一区亚洲一区| 免费不卡在线视频| 图片区小说区区亚洲影院| 亚洲女同女同女同女同女同69| 久久久久久久久久久电影| 日韩欧美不卡一区| 日韩欧美www| 日韩免费观看高清完整版| 日韩一区二区三区av| 3d动漫精品啪啪| 日韩一区二区三区视频在线观看| 欧美日韩国产一区| 欧美精选在线播放| 欧美一区二区观看视频| 在线不卡免费欧美| 日韩一区二区在线看片| 欧美不卡视频一区| 26uuu国产日韩综合| 久久久另类综合| 国产精品毛片a∨一区二区三区| 国产日韩成人精品| 中文字幕日韩av资源站| 国产精品国产a| 亚洲免费在线视频| 一区二区激情小说| 天堂av在线一区| 久久成人免费网| 国产91精品一区二区麻豆亚洲| 成人自拍视频在线| 在线视频欧美区| 91精品国产综合久久福利软件| 精品国产在天天线2019| 国产精品视频麻豆| 一区二区三区日韩精品视频| 天天色综合成人网| 国产福利精品导航| 99国产精品国产精品久久| 色综合天天视频在线观看| 3atv一区二区三区| 久久久精品天堂| 一区二区三区日韩精品视频| 视频一区二区欧美| 国产精品12区| 在线看日本不卡| 精品国产区一区| 亚洲精品高清在线| 久久99精品久久久久婷婷| 99久久精品国产网站| 777色狠狠一区二区三区| 久久久久久夜精品精品免费| 亚洲精品福利视频网站| 麻豆精品视频在线观看免费| 成人va在线观看| 日韩欧美国产精品一区| 日韩美女视频19| 免费国产亚洲视频| 99久久精品免费观看| 欧美本精品男人aⅴ天堂| 亚洲精品老司机| 国产一区高清在线| 欧美日韩aaa| 国产精品灌醉下药二区| 激情久久五月天| 欧美私人免费视频| 国产精品欧美久久久久一区二区| 日韩精品一二三区| 色哟哟一区二区三区| 久久亚洲一区二区三区明星换脸| 亚洲激情综合网| 风间由美性色一区二区三区| 9191成人精品久久| 亚洲另类春色国产| 国产98色在线|日韩| 欧美一区二区在线不卡| 亚洲午夜成aⅴ人片| 99精品欧美一区二区三区小说| 日韩欧美www| 日日夜夜精品视频免费| 色欧美片视频在线观看 | www.性欧美| 久久久精品影视| 激情av综合网| 日韩视频一区二区在线观看| 亚洲va欧美va国产va天堂影院| 99国产精品99久久久久久| 国产亚洲欧洲997久久综合| 久久aⅴ国产欧美74aaa| 日韩视频在线永久播放| 天天影视色香欲综合网老头| 欧美视频中文字幕| 一区二区三区精品视频在线| 99久久国产综合精品色伊| 欧美国产激情二区三区| 成人夜色视频网站在线观看| 久久综合精品国产一区二区三区 | 色就色 综合激情| 最近日韩中文字幕| av高清久久久| 亚洲三级电影全部在线观看高清| 成人免费毛片片v| 中文一区一区三区高中清不卡| 国产福利精品一区二区|