?? pro_meg_modify.pc
字號:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sqlca.h>
#include <conio.h>
#include <process.h>
void menu_insert_proMeg();
int insert_pro(char* tID,char* tName,char* tAddress,char* tTel,char* tIntro);
void menu_update_proMeg();
int update_pro( char* tID,char* tName,char* tAddress,char* tTel,char* tIntro );
int query_pro(char* tID);
extern void pro_Menu();
extern int query_proID_unique(char* tID);
extern char Pro_ID[10]; /*供應商登陸用戶名*/
extern char Pro_Password[10]; /*登陸密碼*/
void pro_meg_modify_menu()
{
char temp;
fflush(stdin);
/*clrscr(void); */
system("cls");
puts("\n\n供應商客戶端\n\n");
puts("\n\n供應商個人信息維護\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_insert_proMeg();break;
case '2':
menu_update_proMeg();break;
default :
pro_Menu();
}
}/*pro_meg_modify_menu()*/
void menu_insert_proMeg()
{
char Name[20];
char Address[30];
char Tel[16];
char Intro[100];
printf("\t\t添加個人信息\n\n");
printf("\n請錄入:\n");
printf("\t供應商名->");
scanf("%s",Name);
printf("\t地址->");
scanf("%s",Address);
printf("\t電話->");
scanf("%s",Tel);
printf("\t簡介->");
scanf("%s",Intro);
printf("\n");
fflush(stdin);
/*printf("(menu_insert_proMeg)%s\n",Pro_ID);*/
if(!insert_pro(Pro_ID,Name,Address,Tel,Intro)){
printf("成功添加個人信息!點擊任意鍵返回上級菜單!");
getchar();
pro_Menu();
}else{
printf("ERROR:(menu_insert_pro)");
printf("出現錯誤!添加個人信息不成功,點擊任意鍵返回上級菜單!");
getchar();
pro_Menu();
}/*else*/
}/*menu_insert_proMeg()*/
int insert_pro(char* tID,char* tName,char* tAddress,char* tTel,char* tIntro)
{
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);
/*printf("(insert_pro)%s,%s\n",ID,tID);*/
EXEC SQL WHENEVER SQLERROR GOTO error;
EXEC SQL INSERT INTO Provider
VALUES(:ID,:Name,:Address,:Tel,:Intro);
EXEC SQL COMMIT;
return 0;
error:
printf("ERROR:(insert_pro)");
EXEC SQL WHENEVER SQLERROR CONTINUE;
printf("\nORACLE error detected:\n");
printf("\n%.70s\n",sqlca.sqlerrm.sqlerrmc);
EXEC SQL ROLLBACK RELEASE;
return 1;
}/*insert_pro()*/
void menu_update_proMeg()
{
char ID[10];
char Name[20];
char Address[30];
char Tel[16];
char Intro[100];
fflush(stdin);
printf("\n\n\t\t更新供應商個人信息\n\n");
printf("請錄入:\n\n");
printf("\t供應商號->");
scanf("%s",ID);
if( query_proID_unique( ID ) )
printf("WARING:(menu_update_pro)Provider %s does not exist.\t\n\n",ID);
else{
printf("請錄入更改的信息:(0 to give up update)\n");
printf("\t供應商名->");
scanf("%s",Name);
if(!strcmp(Name,"0")){
puts("\tExit to abort menu!");
}else{
printf("\t地址->");
scanf("%s",Address);
printf("\t電話->");
scanf("%s",Tel);
printf("\t簡介->");
scanf("%s",Intro);
printf("\n");
if( update_pro( ID,Name,Address,Tel,Intro ) )
printf("WARING:(menu_update_pro)Provider %s does not exist.\t",ID);
else printf("成功更新%s的信息!點擊任意鍵返回上級菜單!",ID);
getchar();
}/*else*/
}/*else*/
pro_Menu();
}/*menu_update_proMeg()*/
int update_pro( char* tID,char* tName,char* tAddress,char* tTel,char* tIntro )
{
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 Provider SET Name=:Name,Address=:Address,Tel=:Tel,Intro=:Intro;
/* WHERE ID=:ID;*/
EXEC SQL COMMIT;
printf("%s updated.\n",ID);
return 0;
notfound:
printf("WARING:(update_pro)Provider %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_pro( ... )*/
/*
int query_pro(char* tID)
{
EXEC SQL BEGIN DECLARE SECTION;
char ID[10];
char Name[20];
char Address[30];
char Tel[16];
char Intro[100];
char seekID[10];
EXEC SQL END DECLARE SECTION;
int total_number=0;
strcpy(seekID,tID);
EXEC SQL DECLARE pro_cursor CURSOR FOR SELECT * FROM Provider WHERE ID=:seekID ;
EXEC SQL OPEN pro_cursor;
while(1)
{
EXEC SQL WHENEVER NOT FOUND DO break;
EXEC SQL FETCH pro_cursor INTO :ID,:Name,:Address,:Tel,:Intro;
++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 pro_cursor;
if(!total_number)
{
printf("WARING:(query_pro)Provider %s does not exist.\t\n\n",seekID);
return -1;
}else
return 0; /*success*/
/*}*//*query_pro()*/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -