⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 release_supply.pc

📁 pro C的一个关于零件交易系统的源码
💻 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 + -