亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
91蜜桃网址入口| 久久99精品久久久久久动态图| 精品第一国产综合精品aⅴ| 欧美中文字幕一区| 欧美唯美清纯偷拍| 欧美日韩欧美一区二区| 欧美亚洲综合网| 欧美性感一区二区三区| 欧美日韩日日骚| 欧美一区二区三区系列电影| 欧美精品三级在线观看| 欧美一二三四在线| 久久这里只有精品6| 国产欧美在线观看一区| 中文字幕va一区二区三区| 亚洲日本中文字幕区| 亚洲同性gay激情无套| 亚洲一区二区av电影| 偷窥少妇高潮呻吟av久久免费| 午夜亚洲国产au精品一区二区| 日韩av中文字幕一区二区| 国产一区二区在线视频| 成人天堂资源www在线| 色狠狠桃花综合| 精品婷婷伊人一区三区三| 这里只有精品视频在线观看| 精品久久国产字幕高潮| 最新国产の精品合集bt伙计| 亚洲一二三四久久| 激情丁香综合五月| 99久久国产综合精品女不卡| 制服丝袜国产精品| 国产精品久久久久久久第一福利| 亚洲一区二区黄色| 国产一区二区三区视频在线播放| 91在线视频观看| 日韩免费一区二区三区在线播放| 中文成人综合网| 亚洲va天堂va国产va久| 成人美女视频在线观看| 91麻豆精品国产自产在线| 久久久国产精华| 三级久久三级久久| 成人av免费在线| 日韩精品最新网址| 亚洲激情网站免费观看| 国产一区在线观看麻豆| 欧美老人xxxx18| 亚洲视频免费看| 国产一区二区福利| 777a∨成人精品桃花网| 亚洲人妖av一区二区| 久久不见久久见免费视频1 | 欧美日韩综合在线免费观看| 欧美mv和日韩mv国产网站| 亚洲一区二区三区四区五区黄| 国产成人夜色高潮福利影视| 91麻豆精品国产无毒不卡在线观看| 一区在线观看免费| 国产风韵犹存在线视精品| 欧美一区二区在线不卡| 亚洲国产精品一区二区尤物区| 高清beeg欧美| 国产视频一区不卡| 精品亚洲aⅴ乱码一区二区三区| 欧美日韩一本到| 一区二区激情小说| 91一区二区在线| 亚洲视频在线一区| 91麻豆123| 亚洲色图制服丝袜| 在线亚洲高清视频| 亚洲一区二区三区四区的| 91福利社在线观看| 亚洲精品va在线观看| 在线欧美小视频| 洋洋成人永久网站入口| 在线免费观看视频一区| 一个色综合网站| 欧美亚洲图片小说| 亚洲v中文字幕| 日韩一二三区不卡| 毛片不卡一区二区| 久久香蕉国产线看观看99| 狠狠色丁香婷婷综合| 国产亚洲女人久久久久毛片| 国产精品一区二区免费不卡| 久久女同互慰一区二区三区| 成人综合日日夜夜| 亚洲欧美综合网| 欧美丝袜第三区| 日韩国产欧美一区二区三区| 欧美一区二区久久久| 国产美女娇喘av呻吟久久| 国产欧美一区二区精品婷婷| 99精品热视频| 亚洲成人免费观看| 精品久久久久久久久久久久久久久 | 亚洲国产精品视频| 欧美精品xxxxbbbb| 国内精品国产成人国产三级粉色 | 日韩1区2区3区| 精品美女在线播放| 成人精品免费网站| 亚洲成人免费观看| 久久久久久一级片| 色噜噜狠狠色综合欧洲selulu| 天使萌一区二区三区免费观看| 精品美女在线观看| 一本色道久久综合亚洲91| 丝袜美腿亚洲色图| 国产欧美久久久精品影院| 在线亚洲精品福利网址导航| 国产在线国偷精品产拍免费yy| 亚洲图片另类小说| 91精品国产色综合久久| 夫妻av一区二区| 美女mm1313爽爽久久久蜜臀| 中文字幕一区二区视频| 日韩午夜激情av| 日本久久精品电影| 国产精品自拍网站| 三级久久三级久久久| 国产精品进线69影院| 日韩一区二区免费在线电影| 91在线精品一区二区三区| 九色porny丨国产精品| 亚洲一区二区三区视频在线播放| 国产日韩精品视频一区| 日韩一级片在线观看| 欧美最新大片在线看| 成人福利在线看| 国产一区二区三区精品视频| 亚洲第四色夜色| 亚洲精品自拍动漫在线| 国产精品天干天干在观线| 精品免费一区二区三区| 欧美男男青年gay1069videost| 成人一区二区三区在线观看| 蜜臀国产一区二区三区在线播放| 亚洲最大成人网4388xx| 中文幕一区二区三区久久蜜桃| 久久这里只有精品视频网| 欧美电影免费观看高清完整版在| 欧美日韩激情一区二区| 色婷婷av一区二区三区gif| www.日韩av| 成人黄色片在线观看| 成人av在线影院| 成人免费毛片嘿嘿连载视频| 国产黄色91视频| 国产精品小仙女| 国产高清在线观看免费不卡| 国产精品99久久久久久久vr| 国产精品中文字幕日韩精品| 美女视频一区二区| 日av在线不卡| 精品一区二区三区在线播放视频| 免费不卡在线观看| 久久99在线观看| 国产一区91精品张津瑜| 国产福利精品一区二区| 成人黄色小视频在线观看| 波多野结衣中文字幕一区| 成人短视频下载| 91网址在线看| 欧美在线三级电影| 91精品麻豆日日躁夜夜躁| 精品福利一区二区三区免费视频| 久久综合成人精品亚洲另类欧美| 26uuu成人网一区二区三区| 久久色在线观看| 国产精品久久久久久户外露出 | 91精品国产欧美日韩| 日韩欧美高清一区| 欧美激情资源网| 亚洲一区免费视频| 美女视频免费一区| 国产成人久久精品77777最新版本| 99久久精品国产网站| 538在线一区二区精品国产| 久久久久久一二三区| 夜色激情一区二区| 国产一区在线观看麻豆| 99精品视频免费在线观看| 欧美放荡的少妇| 国产精品天美传媒沈樵| 午夜日韩在线电影| 国产91在线看| 欧美久久久久中文字幕| 欧美激情一区三区| 香蕉加勒比综合久久| 国产麻豆午夜三级精品| 欧美图区在线视频| 日本一区二区三区四区在线视频| 亚洲成人av资源| 91在线国产福利| 精品国产sm最大网站| 亚洲一区在线看| 99国产精品视频免费观看|