?? release_supply.pc
字號:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sqlca.h>
#include <conio.h>
#include <process.h>
int insert_into_supply(char*,char*,char*,char*);
int query_all_part();
int query_part_unique(char*);
extern void pro_Menu();
extern char Pro_ID[10]; /*供應商登陸用戶名*/
extern char Pro_Password[10]; /*登陸密碼*/
void release_supply()
{
char PartID[10];
char Price[8];
char Quantity[8];
char t;
printf("\n發布供應信息\n");
fflush(stdin);
query_all_part();
while(1){
printf("\n請錄入你要發布的零件信息:\n");
printf("零件號>");
scanf("%s",PartID);
if( !query_part_unique(PartID) ){
printf("%s的零件號不存在,請核對后重新輸入!\n",PartID);break;
}else{
printf("價格>");
scanf("%s",Price);
printf("%s\n",Price);
printf("數量>");
scanf("%s",Quantity);
printf("%s\n",Quantity);
printf("%s\n",Pro_ID);
/*insert_supply(PartID,Price,Quantity);*/
if(insert_into_supply(Pro_ID,PartID,Price,Quantity)){
printf("ERROR:(release_supply)\n");break;
}else{
printf("\n成功發布零件信息,還有信息要發布嗎?(y/n)\n");
fflush(stdin);
t = getchar();
if( t != 'n' || t != 'N' ) break;
}/*else*/
}/*else*/
}/*while*/
pro_Menu();
}/*release_supply()*/
int query_all_part()
{
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;
int total_number=0;
EXEC SQL DECLARE all_part_cursor CURSOR FOR SELECT * FROM Part ;
EXEC SQL OPEN all_part_cursor;
while(1)
{
EXEC SQL WHENEVER NOT FOUND DO break;
EXEC SQL FETCH all_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");
/*if(total_number == 2) break;*/
}
EXEC SQL CLOSE all_part_cursor;
EXEC SQL COMMIT ;/*WORK RELEASE;*/
if(!total_number)
{
printf("WARING:(query_all_part)No part in the part table.\t\n\n");
return -1;
}else
return 0; /*success*/
}/*query_all_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;
}
EXEC SQL CLOSE query_partUnique_cursor;
if( total_number )
return 1;
else return 0;
}/*query_part_unique(...)*/
int insert_into_supply(char* tProID,char* tPartID,char* tPrice,char* tQuantity)
{
EXEC SQL BEGIN DECLARE SECTION;
char ProID[10];
char PartID[10];
char Price[8];
char Quantity[8];
EXEC SQL END DECLARE SECTION;
strcpy(ProID,tProID);
strcpy(PartID,tPartID);
strcpy(Price,tPrice);
strcpy(Quantity,tQuantity);
EXEC SQL WHENEVER SQLERROR GOTO error;
EXEC SQL INSERT INTO Supply
VALUES(:ProID,:PartID,:Price,:Quantity);
EXEC SQL COMMIT;
return 0;
error:
printf("ERROR:(insert_into_supply)\n");
EXEC SQL WHENEVER SQLERROR CONTINUE;
printf("\nORACLE error detected:\n");
printf("\n%.70s\n",sqlca.sqlerrm.sqlerrmc);
EXEC SQL ROLLBACK ;/*RELEASE; */
return -1;
}/*insert_into_supply(...)*/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -