?? main.cpp
字號:
Find[1]=1;
Find[2]=10;
if(find(Find,temp[0],temp[0],all).studenthead!=NULL)
{
printf("\n該%s被%s表引用,不能刪除,請重新輸入!\n\n",row_txt[n][1],b_txt[Find[1]]);
flag=1;
}
Find[1]=7;
Find[2]=1;
if(find(Find,temp[0],temp[0],all).projecthead!=NULL)
{
printf("\n該%s被%s表引用,不能刪除,請重新輸入!\n\n",row_txt[n][1],b_txt[Find[1]]);
flag=1;
}
Find[1]=n;
delete_sys(n,find(Find,temp[0],temp[0],all),all);
break;
}
case 5:
{
Find[1]=2;
Find[2]=8;
if(find(Find,temp[0],temp[0],all).teacherhead!=NULL)
{
printf("\n該%s被%s表引用,不能刪除,請重新輸入!\n\n",row_txt[n][1],b_txt[Find[1]]);
flag=1;
}
Find[1]=3;
Find[2]=7;
if(find(Find,temp[0],temp[0],all).coursehead!=NULL)
{
printf("\n該%s被%s表引用,不能刪除,請重新輸入!\n\n",row_txt[n][1],b_txt[Find[1]]);
flag=1;
}
Find[1]=4;
Find[2]=5;
if(find(Find,temp[0],temp[0],all).specialityhead!=NULL)
{
printf("\n該%s被%s表引用,不能刪除,請重新輸入!\n\n",row_txt[n][1],b_txt[Find[1]]);
flag=1;
}
Find[1]=6;
Find[2]=7;
if(find(Find,temp[0],temp[0],all).classhead!=NULL)
{
printf("\n該%s被%s表引用,不能刪除,請重新輸入!\n\n",row_txt[n][1],b_txt[Find[1]]);
flag=1;
}
Find[1]=8;
Find[2]=2;
if(find(Find,temp[0],temp[0],all).registerhead!=NULL)
{
printf("\n該%s被%s表引用,不能刪除,請重新輸入!\n\n",row_txt[n][1],b_txt[Find[1]]);
flag=1;
}
Find[1]=n;
delete_sys(n,find(Find,temp[0],temp[0],all),all);
break;
}
case 6:
{
Find[1]=1;
Find[2]=11;
if(find(Find,temp[0],temp[0],all).studenthead!=NULL)
{
printf("\n該%s被%s表引用,不能刪除,請重新輸入!\n\n",row_txt[n][1],b_txt[Find[1]]);
flag=1;
}
Find[1]=n;
delete_sys(n,find(Find,temp[0],temp[0],all),all);
break;
}
case 7:
{
Find[1]=n;
delete_sys(n,find(Find,temp[0],temp[1],all),all);
sprintf(between," %s=%s%s%s AND ",row_num[n][1],ch1,temp[0],ch1);
sprintf(temp[0]," %s=%s%s%s",row_num[n][2],ch1,temp[1],ch1);
strcat(between,temp[0]);
break;
}
case 8:
{
Find[1]=12;
Find[2]=1;
if(find(Find,temp[0],temp[0],all).logonhead!=NULL)
{
printf("\n該%s被%s表引用,不能刪除,請重新輸入!\n\n",row_txt[n][1],b_txt[Find[1]]);
flag=1;
}
Find[1]=n;
delete_sys(n,find(Find,temp[0],temp[0],all),all);
break;
}
case 9:
{
Find[1]=n;
delete_sys(n,find(Find,temp[0],temp[1],all),all);
sprintf(between," %s=%s%s%s AND ",row_num[n][1],ch1,temp[0],ch1);
sprintf(temp[0]," %s=%s%s%s",row_num[n][2],ch1,temp[1],ch1);
strcat(between,temp[0]);
break;
}
case 10:
{
Find[1]=n;
delete_sys(n,find(Find,temp[0],temp[1],all),all);
sprintf(between," %s=%s%s%s AND ",row_num[n][1],ch1,temp[0],ch1);
sprintf(temp[0]," %s=%s%s%s",row_num[n][2],ch1,temp[1],ch1);
strcat(between,temp[0]);
break;
}
case 11:
{
Find[1]=n;
delete_sys(n,find(Find,temp[0],temp[1],all),all);
sprintf(between," %s=%s%s%s AND ",row_num[n][1],ch1,temp[0],ch1);
sprintf(temp[0]," %s=%s%s%s",row_num[n][4],ch1,temp[1],ch1);
strcat(between,temp[0]);
break;
}
case 12:
{
Find[1]=n;
delete_sys(n,find(Find,temp[0],temp[1],all),all);
sprintf(between," %s=%s%s%s AND ",row_num[n][1],ch1,temp[0],ch1);
sprintf(temp[0]," %s=%s%s%s",row_num[n][2],ch1,temp[1],ch1);
strcat(between,temp[0]);
break;
}
case 13:
{
Find[1]=11;
Find[2]=1;
if(find(Find,temp[0],temp[0],all).joinactivityhead!=NULL)
{
printf("\n該%s被%s表引用,不能刪除,請重新輸入!\n\n",row_txt[n][1],b_txt[Find[1]]);
flag=1;
}
Find[1]=n;
delete_sys(n,find(Find,temp[0],temp[0],all),all);
break;
}
case 14:
{
Find[1]=1;
Find[2]=12;
if(find(Find,temp[0],temp[0],all).studenthead!=NULL)
{
printf("\n該%s被%s表引用,不能刪除,請重新輸入!\n\n",row_txt[n][1],b_txt[Find[1]]);
flag=1;
}
Find[1]=n;
//在鏈表中刪除數據
delete_sys(n,find(Find,temp[0],temp[0],all),all);
break;
}
default:break;
}
if(flag==0)
{
printf("\n稍等……\n");
//刪除數據庫中記錄
if(n==7||n==9||n==10||n==11||n==12)
{
sprintf(cmd,"DELETE FROM %s WHERE %s",row_num[n][0],between);
}
else
{
sprintf(cmd,"DELETE FROM %s WHERE %s=%s%s%s",row_num[n][0],row_num[n][1],ch1,temp[0],ch1);
}
ExecuteSQL(cmd);
printf("成功刪除1條記錄!\n\n");
}
sprintf(between,"\0");
flag=0;
system("pause");
break;
}
case 3:
{
for(i=2;i<=m;i++)
{
//不顯示主鍵
if(n==11&&i==m)
break;
if(i==2&&(n==7||n==9||n==10||n==12))
continue;
printf("%d.%s ",i,row_txt[n][i]);
}
do
{
printf("\n\n請選擇:");
i=Force();
}while(i<2||i>m);
j[1]=n;
j[2]=2;
Find[1]=n;
Find[2]=0;
//修改鏈表
//記錄主鍵
tmp=Input(j,1,all);
strcpy(between,tmp.str1);
if(n==7||n==9||n==10||n==12)
{
sprintf(between," %s=%s%s%s AND ",row_num[n][1],ch1,tmp.str1,ch1);
sprintf(temp[1]," %s=%s%s%s",row_num[n][2],ch1,tmp.str2,ch1);
strcat(between,temp[1]);
strcpy(temp[0],tmp.str1);
strcpy(temp[1],tmp.str2);
}
if(n==11)
{
sprintf(between," %s=%s%s%s AND ",row_num[n][1],ch1,tmp.str1,ch1);
sprintf(temp[1]," %s=%s%s%s",row_num[n][4],ch1,tmp.str2,ch1);
strcat(between,temp[1]);
strcpy(temp[0],tmp.str1);
strcpy(temp[1],tmp.str2);
}
//其他屬性
tmp=Input(j,i,all);
strcpy(temp[2],tmp.str1);
//修改學生表
if(n==1)
{
receive.studenthead=find(Find,between,between,all).studenthead;
switch(i)
{
case 2:strcpy(receive.studenthead->SN,tmp.str1);break;
case 3:strcpy(receive.studenthead->S_SEX,tmp.str1);break;
case 4:strcpy(receive.studenthead->S_BIRTHDAY,tmp.str1);break;
case 5:strcpy(receive.studenthead->S_DATE,tmp.str1);break;
case 6:strcpy(receive.studenthead->S_SCHOOL,tmp.str1);break;
case 7:receive.studenthead->S_GRADE=atoi(tmp.str1);break;
case 8:strcpy(receive.studenthead->S_PHONE,tmp.str1);break;
case 9:strcpy(receive.studenthead->S_ADDRESS,tmp.str1);break;
case 10:strcpy(receive.studenthead->SP_NO,tmp.str1);break;
case 11:strcpy(receive.studenthead->CNO,tmp.str1);break;
case 12:strcpy(receive.studenthead->CH_NO,tmp.str1);break;
default:break;
}
}
//修改教師表
if(n==2)
{
receive.teacherhead=find(Find,between,between,all).teacherhead;
switch(i)
{
case 2:strcpy(receive.teacherhead->TN,tmp.str1);break;
case 3:strcpy(receive.teacherhead->T_SEX,tmp.str1);break;
case 4:strcpy(receive.teacherhead->T_PROF,tmp.str1);break;
case 5:strcpy(receive.teacherhead->T_BIRTHDAY,tmp.str1);break;
case 6:strcpy(receive.teacherhead->T_DATE,tmp.str1);break;
case 7:receive.teacherhead->T_SALARY=atoi(tmp.str1);break;
case 8:strcpy(receive.teacherhead->DNO,tmp.str1);break;
default:break;
}
}
//修改課程表
if(n==3)
{
receive.coursehead=find(Find,between,between,all).coursehead;
switch(i)
{
case 2:strcpy(receive.coursehead->CO_N,tmp.str1);break;
case 3:receive.coursehead->CO_T_TIME=atoi(tmp.str1);break;
case 4:receive.coursehead->CO_E_TIME=atoi(tmp.str1);break;
case 5:receive.coursehead->CO_S=atoi(tmp.str1);break;
case 6:strcpy(receive.coursehead->CO_BOOK,tmp.str1);break;
case 7:strcpy(receive.coursehead->DNO,tmp.str1);break;
default:break;
}
}
//修改專業表
if(n==4)
{
receive.specialityhead=find(Find,between,between,all).specialityhead;
switch(i)
{
case 2:strcpy(receive.specialityhead->SP_N,tmp.str1);break;
case 3:strcpy(receive.specialityhead->SP_DATE,tmp.str1);break;
case 4:receive.specialityhead->SP_NUM=atoi(tmp.str1);break;
case 5:strcpy(receive.specialityhead->DNO,tmp.str1);break;
default:break;
}
}
//修改院系表
if(n==5)
{
receive.departmenthead=find(Find,between,between,all).departmenthead;
switch(i)
{
case 2:strcpy(receive.departmenthead->DN,tmp.str1);break;
case 3:strcpy(receive.departmenthead->D_DATE,tmp.str1);break;
case 4:strcpy(receive.departmenthead->D_HEAD,tmp.str1);break;
case 5:strcpy(receive.departmenthead->D_ADDRESS,tmp.str1);break;
case 6:strcpy(receive.departmenthead->D_PHONE,tmp.str1);break;
default:break;
}
}
//修改班級表
if(n==6)
{
receive.classhead=find(Find,between,between,all).classhead;
switch(i)
{
case 2:strcpy(receive.classhead->CN,tmp.str1);break;
case 3:strcpy(receive.classhead->C_DATE,tmp.str1);break;
case 4:strcpy(receive.classhead->C_CLASSROOM,tmp.str1);break;
case 5:receive.classhead->C_NUM=atoi(tmp.str1);break;
case 6:strcpy(receive.classhead->TNO,tmp.str1);break;
case 7:strcpy(receive.classhead->DNO,tmp.str1);break;
default:break;
}
}
//修改教學計劃表
if(n==7)
{
receive.projecthead=find(Find,temp[0],temp[1],all).projecthead;
switch(i)
{
case 3:strcpy(receive.projecthead->CLASS,tmp.str1);break;
default:break;
}
}
//修改入校報到表
if(n==8)
{
receive.registerhead=find(Find,between,between,all).registerhead;
switch(i)
{
case 2:strcpy(receive.registerhead->DNO,tmp.str1);break;
case 3:receive.registerhead->R_COST=atoi(tmp.str1);break;
default:break;
}
}
//修改選修表
if(n==9)
{
receive.schead=find(Find,temp[0],temp[1],all).schead;
switch(i)
{
case 3:strcpy(receive.schead->SC_CLASS,tmp.str1);break;
case 4:receive.schead->SC_GRADE=atoi(tmp.str1);break;
case 5:strcpy(receive.schead->TNO,tmp.str1);break;
case 6:strcpy(receive.schead->SC_DATE,tmp.str1);break;
default:break;
}
}
//修改講授表
if(n==10)
{
receive.tchead=find(Find,temp[0],temp[1],all).tchead;
switch(i)
{
case 3:strcpy(receive.tchead->TC_T_DATETIME,tmp.str1);break;
case 4:strcpy(receive.tchead->TC_T_ADDRESS,tmp.str1);break;
case 5:strcpy(receive.tchead->TC_E_DATETIME,tmp.str1);break;
case 6:strcpy(receive.tchead->TC_E_ADDRESS,tmp.str1);break;
default:break;
}
}
//修改參加活動表
if(n==11)
{
receive.joinactivityhead=find(Find,temp[0],temp[1],all).joinactivityhead;
switch(i)
{
case 2:receive.joinactivityhead->J_GRADE=atoi(tmp.str1);break;
case 3:strcpy(receive.joinactivityhead->J_OTHER,tmp.str1);break;
default:break;
}
}
//修改登記表
if(n==12)
{
receive.logonhead=find(Find,temp[0],temp[1],all).logonhead;
switch(i)
{
case 3:strcpy(receive.logonhead->L_DATE,tmp.str1);break;
default:break;
}
}
//修改學校活動表
if(n==13)
{
receive.activityhead=find(Find,between,between,all).activityhead;
switch(i)
{
case 2:strcpy(receive.activityhead->AN,tmp.str1);break;
case 3:strcpy(receive.activityhead->A_DATE,tmp.str1);break;
default:break;
}
}
//修改寢室表
if(n==14)
{
receive.chamberhead=find(Find,between,between,all).chamberhead;
switch(i)
{
case 2:strcpy(receive.chamberhead->CH_ADDRESS,tmp.str1);break;
case 3:receive.chamberhead->CH_NUM=atoi(tmp.str1);break;
default:break;
}
}
printf("\n稍等……\n");
//修改數據庫中記錄
if(n==7||n==9||n==10||n==11||n==12)
{
sprintf(cmd,"UPDATE %s SET %s=%s%s%s WHERE %s",row_num[n][0],row_num[n][i],ch1,temp[2],ch1,between);
}
else
{
sprintf(cmd,"UPDATE %s SET %s=%s%s%s WHERE %s=%s%s%s",row_num[n][0],row_num[n][i],ch1,temp[2],ch1,row_num[n][1],ch1,between,ch1);
}
ExecuteSQL(cmd);
printf("成功修改1條記錄!\n\n");
sprintf(between,"\0");
system("pause");
break;
}
default:;
}
}while(quit!=1);
}
/*-----------------------------------------------------------------*
*函數: SelectTABLE() *
*參數: 整型,字符串,表結構指針 *
*作用: 從表中讀取數據 *
*返回: 無 *
*-----------------------------------------------------------------*/
void SelectTABLE(int choice,char select[50],sys *all)
{
int i=1;
_variant_t var;
_ConnectionPtr pConn("ADODB.Connection");
pConn->ConnectionTimeout=5;
//建立.udl文件后打開可得到
try
{
pConn->Open(db[0],"","",adConnectUnspecified);
_RecordsetPtr pRs("ADODB.Recordset");
pRs->Open(select,_variant_t(pConn,true),adOpenStatic,adLockOptimistic,adCmdText);
switch(choice)
{
//從學生表中讀取數據
case 1:
{
STUDENT *p,*q;
q=all->studenthead;
while(!pRs->EndOfFile)
{
i=1;
p=(STUDENT *)malloc(sizeof(STUDENT));
p->next=NULL;
var=pRs->GetCollect(row_num[choice][i]);
i++;
if(var.vt!=VT_NULL)//判斷表中的屬性值是否為NULL
{
sprintf(p->SNO,"%s",(char *)_bstr_t(var));
}
var=pRs->GetCollect(row_num[choice][i]);
i++;
if(var.vt!=VT_NULL)
{
sprintf(p->SN,"%s",(char *)_bstr_t(var));
}
var=pRs->GetCollect(row_num[choice][i]);
i++;
if(var.vt!=VT_NULL)
{
sprintf(p->S_SEX,"%s",(char *)_bstr_t(var));
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -