📄 partmodify.pc
字号:
EXEC SQL COMMIT;
printf("%s dropped.\n",seekID);
return 0;
notfound:
printf("WARING:(delete_part)Part %s does not exist.\t",seekID);
return -1;
sqlerr:
printf("%70s\n",sqlca.sqlerrm.sqlerrmc);
EXEC SQL WHENEVER SQLERROR CONTINUE;
EXEC SQL ROLLBACK;
return -1;
}/*delete_part(...)*/
void menu_update_part()
{
char t;
char ID[10];
char Name[30];
char Color[10];
float Weight=0.0;
char Intro[100];
while(1)
{
fflush(stdin);
printf("\n\n\t\t更新零件信息\n\n");
printf("请录入要更新的零件号:\n\n");
printf("\t零件号->");
scanf("%s",ID);
/* fflush(stdin);*/
if( query_part( ID ) )
printf("WARING:(menu_update_part)Part %s does not exist.\t\n\n",ID);
else{
printf("请录入更改的信息:(输入 0 放弃修改)\n");
printf("\t零件名->");
scanf("%s",Name);
if(!strcmp(Name,"0")){
puts("\tExit to abort menu!");break;
}else{
printf("\t颜色->");
scanf("%s",Color);
printf("\t重量->");
scanf("%f",&Weight);
printf("\t简介->");
scanf("%s",Intro);
printf("\n");
}/*else*/
if( update_part( ID,Name,Color,Weight,Intro ) )
printf("已经更新零件号为%s的信息!",ID);
else printf("成功更新%s的信息!",ID);
/*else exit(-1);*/
}/*else*/
fflush(stdin);
printf("还要更新其他的吗?(Y/N)");
t=getchar();
if(t=='N'||t=='n')break;
}/*while*/
part_modify_menu();
}/*menu_update_cus()*/
int update_part( char* tID,char* tName,char* tColor,float tWeight,char* tIntro )
{
EXEC SQL BEGIN DECLARE SECTION;
char ID[10];
char Name[30];
char Color[10];
float Weight=0.0;
char Intro[100];
EXEC SQL END DECLARE SECTION;
strcpy(ID,tID);
strcpy(Name,tName);
strcpy(Color,tColor);
Weight = tWeight;
strcpy(Intro,tIntro);
EXEC SQL WHENEVER SQLERROR GOTO sqlerr;
EXEC SQL WHENEVER NOT FOUND GOTO notfound;
EXEC SQL UPDATE Part SET Name=:Name,Color=:Color,Weight=Weight,Intro=:Intro
WHERE ID=:ID;
EXEC SQL COMMIT;
printf("%s updated.\n",ID);
return 0;
notfound:
printf("WARING:(update_part)Part %s does not exist.\t",ID);
return -1;
sqlerr:
printf("%70s\n",sqlca.sqlerrm.sqlerrmc);
EXEC SQL WHENEVER SQLERROR CONTINUE;
EXEC SQL ROLLBACK;
return -1;
}/*update_part( ... )*/
void menu_adcicePart_disposal()
{
char temp;
fflush(stdin);
puts("\n\n\n\n\n\t\t推荐零件信息处理\n\n");
printf("\t1.查看所有推荐零件信息\n");
printf("\t2.将推荐零件信息转入零件信息表\n");
printf("\t....任意键返回上级菜单\n\n");
printf("请选择(1 - 2 ,quit with any other key):");
temp=getchar();
fflush(stdin);
switch(temp) {
case '1':
menu_query_all_AdvicePart();
break;
case '2':
advicePart_to_part();break;
default:
part_modify_menu();
}
}/*menu_adcicePart_disposal()*/
void menu_query_all_AdvicePart()
{
char t;
puts("\n\n\n\n\n\t\t查看所有推荐零件信息\n\n");
if( query_all_AdvicePart() ){
printf("WARING:(menu_query_all_AdvicePart)There is no advice part.\t\n\n");
menu_adcicePart_disposal();
}else
printf("以上为新推荐零件信息,要将其加入零件表吗?(N 返回上一级菜单):");
printf(">");
fflush(stdin);
t = getchar();
if( t=='N' || t=='n')menu_adcicePart_disposal();
else advicePart_to_part();
}/*menu_query_all_AdvicePart()*/
int query_all_AdvicePart()
{
EXEC SQL BEGIN DECLARE SECTION;
char ID[10];
char Name[30];
char Color[10];
char Weight[10];
char Advicer[10]; /*推荐方ID*/
char Intro[100];
EXEC SQL END DECLARE SECTION;
int total_number = 0;
EXEC SQL DECLARE advicePart_cursor CURSOR FOR SELECT * FROM PartAdvice; /*ID,Name,Color,Weight,Advicer,Intro*/
EXEC SQL OPEN advicePart_cursor;
while(1)
{
EXEC SQL WHENEVER NOT FOUND DO break;
EXEC SQL FETCH advicePart_cursor INTO :ID,:Name,:Color,:Weight,:Intro,:Advicer;
++total_number;
if( total_number == 1 )
{
printf("\n相应的信息如下:");
printf("\n\n--- --------- ------------------- ---------------------------- ----------\n");
printf("%-4s%-10s%-20s%-10s%-8s%-10s\n","N","ID","Name","Color","Weight","Advicer");
printf("--- --------- ------------------- ---------------------------- ----------\n");
}/*if*/
printf("%-4d%-10s%-20s%-30s%-16s\n",total_number,ID,Name,Color,Weight,Advicer);
printf("--- --------- ------------------- ---------------------------- ----------\n");
printf("%-50s\n","Intro");
printf("-------------------------------------------------------------------------\n");
printf("%-50s\n",Intro);
printf("-------------------------------------------------------------------------\n");
printf("--- --------- ------------------- ---------------------------- ----------\n");
}/*while*/
EXEC SQL CLOSE advicePart_cursor;
if(!total_number)
{
printf("WARING:(query_all_AdvicePart)There is no advice part.\t\n\n");
return -1;
}else
return 0; /*success*/
}/*query_all_AdvcePart()*/
void advicePart_to_part()
{
EXEC SQL BEGIN DECLARE SECTION;
char ID[10];
char Name[30];
char Color[10];
char Weight[10];
char Advicer[10]; /*推荐方ID*/
char Intro[100];
EXEC SQL END DECLARE SECTION;
int t;
float fWeight;
int total_number = 0;
puts("\t以下操作将会把零件推荐表内的信息转入零件表\n");
EXEC SQL DECLARE advice_to_Part_cursor CURSOR FOR SELECT * FROM PartAdvice; /*ID,Name,Color,Weight,Advicer,Intro*/
EXEC SQL OPEN advice_to_Part_cursor;
while(1)
{
EXEC SQL WHENEVER NOT FOUND DO break;
EXEC SQL FETCH advice_to_Part_cursor INTO :ID,:Name,:Color,:Weight,:Intro,:Advicer;
++total_number;
printf("\n本条零件推荐信息为:\n");
printf("\n\n--- --------- ------------------- ---------------------------- ----------\n");
printf("%-4s%-10s%-20s%-10s%-8s%-10s\n","N","ID","Name","Color","Weight","Advicer");
printf("--- --------- ------------------- ---------------------------- ----------\n");
printf("%-4d%-10s%-20s%-30s%-16s\n",total_number,ID,Name,Color,Weight,Advicer);
printf("--- --------- ------------------- ---------------------------- ----------\n");
printf("%-50s\n","Intro");
printf("-------------------------------------------------------------------------\n");
printf("%-50s\n",Intro);
printf("-------------------------------------------------------------------------\n");
fWeight =(float)atof(Weight);
printf("确认要将其转入零件表吗?(y/n)>");
fflush(stdin);
t = getchar();
if( t == 'n' ||t == 'N' ) {
puts("本条信息未转入,删除,处理下条信息\n");
delete_advicePart(ID);
}else{
insert_part(ID,Name,Color,fWeight,Intro);
puts("本条信息已转入,删除");
delete_advicePart(ID);
}/*else*/
}/*while*/
EXEC SQL CLOSE advice_to_Part_cursor;
if( !total_number )
printf("WARING:(dvicePart_to_part)There is no advice part.\t\n\n");
else puts("转入结束\n"); /*success*/
menu_adcicePart_disposal();
}/*advicePart_to_part()*/
int delete_advicePart(char* tID)
{
EXEC SQL BEGIN DECLARE SECTION;
char seekID[10];
EXEC SQL END DECLARE SECTION;
strcpy(seekID,tID);
EXEC SQL WHENEVER SQLERROR GOTO sqlerr;
EXEC SQL WHENEVER NOT FOUND GOTO notfound;
EXEC SQL DELETE FROM PartAdvice WHERE ID=:seekID;
EXEC SQL COMMIT;
printf("%s dropped.\n",seekID);
return 0;
notfound:
printf("WARING:(delete_part)Part %s does not exist.\t",seekID);
return -1;
sqlerr:
printf("%70s\n",sqlca.sqlerrm.sqlerrmc);
EXEC SQL WHENEVER SQLERROR CONTINUE;
EXEC SQL ROLLBACK;
return -1;
}/*delete_advicePart(...)*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -