📄 user_modify.pc
字号:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sqlca.h>
#include <process.h>
extern bus_modifyMenu();
void bus_Menu();
extern int error();
void menu_query_cus();
int query_cus(char* tID);
void menu_insert_cus();
int insert_cus(char* tID,char* tName,char* tAddress,char* tTel);
void menu_delete_cus();
int delete_cus( char* tID );
void menu_update_cus();
int update_cus( char* tID,char* tName,char* tAddress,char* tTel );
int query_cusID_unique(char* tID);
void menu_insert_cus()
{
char t,m;
char ID[10];
char Name[30];
char Address[30];
char Tel[16];
while(1)
{
printf("\t\t添加顾客信息\n\n");
printf("请录入顾客信息:\n\n");
printf("\t顾客号->");
scanf("%s",ID);
if( query_cusID_unique(ID) ){
printf("顾客号%s已经存在,请选择另外的顾客号或者输入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",Address);
printf("\t电话->");
scanf("%s",Tel);
printf("\n");
fflush(stdin);
if(!insert_cus(ID,Name,Address,Tel))
printf("成功添加顾客信息!");
else printf("ERROR:(menu_insert_cus)");
}/*while*/
printf("继续添加?(Y/N)");
t=getchar();
if(t=='N'||t=='n')break;
}
bus_modifyMenu();
}/*menu_insert_cus()*/
int insert_cus(char* tID,char* tName,char* tAddress,char* tTel)
{
EXEC SQL BEGIN DECLARE SECTION;
char ID[10];
char Name[20];
char Address[30];
char Tel[16];
EXEC SQL END DECLARE SECTION;
strcpy(ID,tID);
strcpy(Name,tName);
strcpy(Address,tAddress);
strcpy(Tel,tTel);
EXEC SQL WHENEVER SQLERROR DO error();
EXEC SQL INSERT INTO Customer
VALUES(:ID,:Name,:Address,:Tel);
EXEC SQL COMMIT;
return 0;
}/*insert_cus()*/
void menu_delete_cus()
{
char t;
char ID[10];
while(1)
{
printf("\t\t删除顾客信息\n\n");
printf("请录入预删除的顾客号:\n\n");
printf("\t顾客号->");
scanf("%s",ID);
fflush(stdin);
if( query_cus( ID ) )
printf("WARING:(menu_delete_cus)Customer %s does not exist.\t\n\n",ID);
else{
if( !delete_cus( ID ) )
printf("成功删除顾客号为%s的信息!",ID);
else printf("WARING:(menu_delete_cus)Customer %s does not exist.\t",ID);
}/*else*/
printf("还要删除吗?(Y/N)");
t=getchar();
if(t=='N'||t=='n')break;
}/*while*/
bus_modifyMenu();
}/*menu_delete_cus()*/
int delete_cus( char* tID)
{
EXEC SQL BEGIN DECLARE SECTION;
char seekID[10];
EXEC SQL END DECLARE SECTION;
/* char ID[10];
char Name[20];
char Address[30];
char Tel[16];
char Intro[100];*/
strcpy(seekID,tID);
EXEC SQL WHENEVER SQLERROR GOTO sqlerr;
EXEC SQL WHENEVER NOT FOUND GOTO notfound;
EXEC SQL DELETE FROM Customer WHERE ID=:seekID;
EXEC SQL COMMIT;
printf("%s dropped.\n",seekID);
return 0;
notfound:
printf("WARING:(delete_cus)Customer %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;
/* EXEC SQL DECLARE del_pro SCROLL CURSOR FOR
SELECT ID,Name,Address,Tel,Intro FROM Provider WHERE ID=:seekID FOR UPDATE;
EXEC SQL OPEN del_pro;
EXEC SQL WHENEVER NOT FOUND DO BREAK;
EXEC SQL FETCH FIRST del_pro INTO :ID,:Name,:Address,:Tel,:Intro;
EXEC SQL DELETE FROM Provider WHERE CURRENT OF del_pro;*/
/* EXEC SQL PREPARE stat FROM
'DELETE Provider WHERE ID=:a';
EXEC SQL EXECUTE stat USING :ID;*/
/* EXEC SQL WHENEVER SQLERROR DO error();
EXEC SQL DELETE FROM Provider
WHERE ID=:ID;*/
/* EXEC SQL COMMIT;
EXEC SQL CLOSE del_pro;
return 0; */
}/*delete_cus(...)*/
void menu_query_cus()
{
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_cus( ID ) )
printf("WARING:(menu_query_cus)Customer %s does not exist.\t\n\n",ID);
/* if( !delete_cus( ID ) )
printf("成功删除顾客号为%s的信息!",ID);
else exit(-1); */
printf("还要查询吗?(Y/N)");
t=getchar();
if(t=='N'||t=='n')more=0;
}/*while*/
bus_modifyMenu();
}/*menu_query_cus()*/
int query_cus(char* tID)
{
EXEC SQL BEGIN DECLARE SECTION;
char ID[10];
char Name[20];
char Address[30];
char Tel[16];
char seekID[10];
EXEC SQL END DECLARE SECTION;
int total_number=0;
strcpy(seekID,tID);
EXEC SQL DECLARE cus_cursor CURSOR FOR SELECT * FROM Customer WHERE ID=:seekID ;
EXEC SQL OPEN cus_cursor;
while(1)
{
EXEC SQL WHENEVER NOT FOUND DO break;
EXEC SQL FETCH cus_cursor INTO :ID,:Name,:Address,:Tel;
++total_number;
if( total_number == 1 )
{
printf("\n相应的信息如下:");
printf("\n\n--- --------- ------------------- ---------------------------- ----------\n");
printf("%-4s%-10s%-20s%-30s%-16s\n","N","ID","Name","Address","Tel");
printf("--- --------- ------------------- ---------------------------- ----------\n");
}
printf("%-4d%-10s%-20s%-30s%-16s\n",total_number,ID,Name,Address,Tel);
printf("--- --------- ------------------- ---------------------------- ----------\n");
/* printf("%-50s\n","Intro");
printf("-------------------------------------------------------------------------\n");
printf("%-50s\n",Intro);
printf("-------------------------------------------------------------------------\n");
printf("--- --------- ------------------- ---------------------------- ----------\n\n\n");*/
}
EXEC SQL CLOSE cus_cursor;
if(!total_number)
{
printf("WARING:(query_pro)Customer %s does not exist.\t\n\n",tID);
return -1;
}else
return 0; /*success*/
/* notfound:
// printf("WARING:Customer %s does not exist.\t",seekID);
return -1;*/
}/*query_cus()*/
void menu_update_cus()
{
char t;
char ID[10];
char Name[20];
char Address[30];
char Tel[16];
/* 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_cus( ID ) )
printf("WARING:(menu_update_cus)Customer %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",Address);
printf("\t电话->");
scanf("%s",Tel);
/* printf("\t简介->");
scanf("%s",Intro);*/
printf("\n");
}/*else*/
if( update_cus( ID,Name,Address,Tel ) )
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*/
bus_modifyMenu();
}/*menu_update_cus()*/
int update_cus( char* tID,char* tName,char* tAddress,char* tTel )
{
EXEC SQL BEGIN DECLARE SECTION;
char ID[10];
char Name[20];
char Address[30];
char Tel[16];
/* char Intro[100];*/
EXEC SQL END DECLARE SECTION;
strcpy(ID,tID);
strcpy(Name,tName);
strcpy(Address,tAddress);
strcpy(Tel,tTel);
/* strcpy(Intro,tIntro);*/
EXEC SQL WHENEVER SQLERROR GOTO sqlerr;
EXEC SQL WHENEVER NOT FOUND GOTO notfound;
EXEC SQL UPDATE Customer SET Name=:Name,Address=:Address,Tel=:Tel
WHERE ID=:ID;
EXEC SQL COMMIT;
printf("%s updated.\n",ID);
return 0;
notfound:
printf("WARING:(update_cus)Customer %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_cus( ... )*/
/*
void display_user(int n,char* tID,char* tName,char* tAddress,char* tTel)
{
if( n == 1 )
{
printf("\n相应的信息如下:");
printf("\n\n--- --------- ------------------- ---------------------------- ----------\n");
printf("%-4s%-10s%-20s%-30s%-16s\n","N","ID","Name","Address","Tel");
printf("--- --------- ------------------- ---------------------------- ----------\n");
}
printf("%-4d%-10s%-20s%-30s%-16s\n",total_number,ID,Name,Address,Tel);
printf("--- --------- ------------------- ---------------------------- ----------\n");*/
/* printf("%-50s\n","Intro");
printf("-------------------------------------------------------------------------\n");
printf("%-50s\n",Intro);
printf("-------------------------------------------------------------------------\n");
printf("--- --------- ------------------- ---------------------------- ----------\n\n\n");*/
/*}display(...)*/
int query_cusID_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 WHENEVER NOT FOUND GOTO notfound;*/
EXEC SQL DECLARE pro_cusID_cursor CURSOR FOR SELECT ID FROM Customer WHERE ID=:seekID ;
EXEC SQL OPEN pro_cusID_cursor;
while(1)
{
EXEC SQL WHENEVER NOT FOUND DO break;
EXEC SQL FETCH pro_cusID_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;*/
}/*query_cusID_unique(...)*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -