📄 stat.c
字号:
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
#include <string.h>
#include "struct.h"
//插入语句的数据检查(类型检查,值和字段的数目检查)
void mean_par(_insertstruct_type *is,struct tab_dic_type *tab,int tab_num,struct col_dic_type *col,int col_num)
{ _insertfields_type *ifs1;
_insertvalues_type *iv1;
int f_num=0;
int v_num=0;
int tab_id=0;
int ft_num=0;
int i=0;
int j=0;
char values[10][40];
int col_exist=-1;//列存在标志
struct col_dic_type fields[10],table_fields[10];
struct tab_dic_type table;
for(i=0;i<tab_num;i++)
{if(strcmp(tab[i].tab_name,is->table)==0)
{table=tab[i];
tab_id=tab[i].tab_id;
ft_num=tab[i].col_num;
break;
}
}
if (tab_id==0)
printf("table is not exist!\n");
else
{
j=0;
for (i=0;i<col_num;i++)
if (col[i].tab_id==tab_id)
{ table_fields[j]=col[i];
j=j+1;
}
j=0;
ifs1=is->ifs;
do
{
if (ifs1==NULL)
break;
else
{
col_exist=0;
for (i=0;i<col_num;i++)
{if ((strcmp(col[i].col_name,ifs1->field)==0) && (col[i].tab_id==tab_id))
{fields[j]=col[i];
j=j+1;
col_exist=1;
break;
}
}
if (col_exist==0)
break;
ifs1=ifs1->next_if;
f_num=f_num+1;
}
}while(1);
if (col_exist==0)
printf("field is not exist!\n");
else
{
iv1=is->iv;
do
{
if (iv1==NULL)
break;
strcpy(&values[v_num],iv1->value);
iv1=iv1->next_iv;
v_num=v_num+1;
}while(1);
if (f_num==0)
{j=0;
f_num=ft_num;
for (i=0;i<col_num;i++)
if (col[i].tab_id==tab_id)
{ fields[j]=col[i];
j=j+1;
}
}
if (f_num!=v_num)
printf("field_number is not equal to value_number!\n");
else
for (i=0;i<f_num;i++)
if ((fields[i].col_type==0) && (atoi(values[i])==0)){
//printf("1000 tuples have been inserted!\n");
}
}
}
insert(table,table_fields,ft_num,fields,f_num,values);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -