📄 partmodify.pc
字号:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sqlca.h>
#include <process.h>
int query_all_AdvicePart();
int query_part_unique(char*);
int update_part( char* tID,char* tName,char* tColor,float tWeight,char* tIntro );
//int del_advicePart();
int insert_part(char* tID,char* tName,char* tColor,float tWeight,char* tIntro);
int delete_part( char* );
int query_part(char*);
void menu_insert_part();
void menu_query_part();
void menu_delete_part();
void menu_update_part();
void part_modify_part();
void part_modify_menu();
extern bus_Menu();
extern int error();
void menu_adcicePart_disposal();
void menu_query_all_AdvicePart();
void advicePart_to_part();
int delete_advicePart(char* tID);
void part_modify_menu()
{
char temp;
fflush(stdin);
system("cls");
puts("\n\n交易中心服务器端\n\n");
puts("\n\n\n\n\n\t\t零件信息维护\n\n");
printf("\t1.推荐零件信息处理\n");
printf("\t2.查询零件信息\n");
printf("\t3.添加零件信息\n");
printf("\t4.删除零件信息\n");
printf("\t5.修改零件信息\n");
printf("\t....任意键返回上级菜单\n\n");
do {
printf("请选择(1 - 4 ,quit with any other key):");
temp=getchar();
fflush(stdin);
}while(temp==1||temp==2||temp==3||temp==4||temp==5);
switch(temp) {
case '1':
menu_adcicePart_disposal();break;
case '2':
menu_query_part();break;
case '3':
menu_insert_part(); break;
case '4':
menu_delete_part();break;
case '5':
menu_update_part();break;
default:
bus_Menu();
}
}/*part_modify_menu()*/
void menu_query_part()
{
int more=1;
char t;
char ID[10];
while(more)
{
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_query_part)Part %s does not exist.\t\n\n",ID);
printf("还要查询吗?(Y/N)");
t=getchar();
if(t=='N'||t=='n')more=0;
}/*while*/
part_modify_menu();
}/*menu_query_part()*/
int query_part(char* tID)
{
EXEC SQL BEGIN DECLARE SECTION;
char ID[10];
char Name[30];
char Color[10];
float Weight = 0.0;
char Intro[100];
char seekID[10];
EXEC SQL END DECLARE SECTION;
int total_number=0;
strcpy(seekID,tID);
EXEC SQL DECLARE Part_cursor CURSOR FOR SELECT * FROM Part WHERE ID=:seekID;
EXEC SQL OPEN Part_cursor;
while(1)
{
EXEC SQL WHENEVER NOT FOUND DO break;
EXEC SQL FETCH Part_cursor INTO :ID,:Name,:Color,:Weight,:Intro;
++total_number;
if( total_number == 1 )
{
printf("\n相应的信息如下:");
printf("\n\n--- --------- ------------------- ---------------------------- ----------\n");
printf("%-4s%-10s%-20s%-10s%-8s\n","N","ID","Name","Color","Weight");
printf("--- --------- ------------------- ---------------------------- ----------\n");
}
printf("%-4d%-10s%-20s%-30s\n",total_number,ID,Name,Color,Weight);
printf("--- --------- ------------------- ---------------------------- ----------\n");
printf("%-50s\n","Intro");
printf("-------------------------------------------------------------------------\n");
printf("%-50s\n",Intro);
printf("-------------------------------------------------------------------------\n");
printf("--- --------- ------------------- ---------------------------- ----------\n\n\n");
}
EXEC SQL CLOSE Part_cursor;
if(!total_number)
{
printf("WARING:(query_Part)Part %s does not exist.\t\n\n",tID);
return -1;
}else
return 0; /*success*/
}/*query_part(...)*/
void menu_insert_part()
{
char t,m;
char ID[10];
char Name[30];
char Color[10];
float Weight = 0.0;
char Intro[100];
while(1)
{
printf("\t\t添加零件信息\n\n");
printf("请录入零件信息:\n\n");
printf("\t零件号->");
scanf("%s",ID);
if( query_part_unique(ID) ){
printf("此零件%s已经存在,录入其他零件吗?(y/n)\n",ID);
fflush(stdin);
m=getchar();
if(m=='N'||m=='n') break;
else continue;
}/*if*/ else{
printf("\t零件名->");
scanf("%s",Name);
printf("\t颜色->");
scanf("%s",Color);
printf("\t重量(kg)->");
scanf("%f",&Weight);
printf("\t简介->");
scanf("%s",Intro);
printf("\n");
fflush(stdin);
if(!insert_part(ID,Name,Color,Weight,Intro))
printf("成功添加零件信息!");
else printf("ERROR:(menu_insert_part)");
}/*while*/
printf("继续添加?(Y/N)");
t=getchar();
if(t=='N'||t=='n')break;
}
part_modify_menu();
}/*menu_insert_part()*/
int insert_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 error;
EXEC SQL INSERT INTO Part
VALUES(:ID,:Name,:Color,:Weight,:Intro);
EXEC SQL COMMIT;
return 0;
error:
printf("ERROR:(insert_part");
EXEC SQL WHENEVER SQLERROR CONTINUE;
printf("\nORACLE error detected:\n");
printf("\n%.70s\n",sqlca.sqlerrm.sqlerrmc);
EXEC SQL ROLLBACK;/* RELEASE; */
return 1;
}/*insert_part()*/
int query_part_unique(char* tID)
{
EXEC SQL BEGIN DECLARE SECTION;
char seekID[10];
char temp[10];
EXEC SQL END DECLARE SECTION;
int total_number=0;
strcpy(seekID,tID);
EXEC SQL DECLARE query_partUnique_cursor CURSOR FOR SELECT ID FROM Part WHERE ID=:seekID ;
EXEC SQL OPEN query_partUnique_cursor;
while(1)
{
EXEC SQL WHENEVER NOT FOUND DO break;
EXEC SQL FETCH query_partUnique_cursor INTO :temp;
++total_number;
}
if( total_number )
return 1;
else return 0;
/* notfound:
printf("WARING(query_cusID_unique)%s does not exist!",seekID);
return 0;*/
EXEC SQL CLOSE query_partUnique_cursor;
}/*query_part_unique(...)*/
void menu_delete_part()
{
char t;
char ID[10];
while(1)
{
printf("\t\t删除零件信息\n\n");
printf("请录入预删除的零件号:\n\n");
printf("\t零件号号->");
scanf("%s",ID);
fflush(stdin);
if( query_part( ID ) )
printf("WARING:(menu_delete_part)Part %s does not exist.\t\n\n",ID);
else{
if( !delete_part( ID ) )
printf("成功删除零件号为%s的信息!",ID);
else printf("WARING:(menu_delete_part)Part %s does not exist.\t",ID);
}/*else*/
printf("还要删除吗?(Y/N)");
t=getchar();
if(t=='N'||t=='n')break;
}/*while*/
part_modify_menu();
}/*menu_delete_part()*/
int delete_part( 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 Part WHERE ID=:seekID;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -