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

📄 partmodify.c

📁 pro C的一个关于零件交易系统的源码
💻 C
📖 第 1 页 / 共 3 页
字号:

/* Result Sets Interface */
#ifndef SQL_CRSR
#  define SQL_CRSR
  struct sql_cursor
  {
    unsigned int curocn;
    void *ptr1;
    void *ptr2;
    unsigned long magic;
  };
  typedef struct sql_cursor sql_cursor;
  typedef struct sql_cursor SQL_CURSOR;
#endif /* SQL_CRSR */

/* Thread Safety */
typedef void * sql_context;
typedef void * SQL_CONTEXT;

/* Object support */
struct sqltvn
{
  unsigned char *tvnvsn; 
  unsigned short tvnvsnl; 
  unsigned char *tvnnm;
  unsigned short tvnnml; 
  unsigned char *tvnsnm;
  unsigned short tvnsnml;
};
typedef struct sqltvn sqltvn;

struct sqladts
{
  unsigned int adtvsn; 
  unsigned short adtmode; 
  unsigned short adtnum;  
  sqltvn adttvn[1];       
};
typedef struct sqladts sqladts;

static struct sqladts sqladt = {
  1,1,0,
};

/* Binding to PL/SQL Records */
struct sqltdss
{
  unsigned int tdsvsn; 
  unsigned short tdsnum; 
  unsigned char *tdsval[1]; 
};
typedef struct sqltdss sqltdss;
static struct sqltdss sqltds =
{
  1,
  0,
};

/* File name & Package Name */
struct sqlcxp
{
  unsigned short fillen;
           char  filnam[66];
};
static const struct sqlcxp sqlfpn =
{
    65,
    "F:\\数据库\\课程设计\\课程设计zhu\\server1.2\\PartModify\\partModify.pc"
};


static unsigned long sqlctx = 1937551517;


static struct sqlexd {
   unsigned int   sqlvsn;
   unsigned int   arrsiz;
   unsigned int   iters;
   unsigned int   offset;
   unsigned short selerr;
   unsigned short sqlety;
   unsigned int   occurs;
      const short *cud;
   unsigned char  *sqlest;
      const char  *stmt;
   sqladts *sqladtp;
   sqltdss *sqltdsp;
            void  **sqphsv;
   unsigned int   *sqphsl;
            int   *sqphss;
            void  **sqpind;
            int   *sqpins;
   unsigned int   *sqparm;
   unsigned int   **sqparc;
   unsigned short  *sqpadto;
   unsigned short  *sqptdso;
            void  *sqhstv[6];
   unsigned int   sqhstl[6];
            int   sqhsts[6];
            void  *sqindv[6];
            int   sqinds[6];
   unsigned int   sqharm[6];
   unsigned int   *sqharc[6];
   unsigned short  sqadto[6];
   unsigned short  sqtdso[6];
} sqlstm = {10,6};

/* SQLLIB Prototypes */
extern void sqlcxt (void **, unsigned long *,
                    struct sqlexd *, const struct sqlcxp *);
extern void sqlcx2t(void **, unsigned long *,
                    struct sqlexd *, const struct sqlcxp *);
extern void sqlbuft(void **, char *);
extern void sqlgs2t(void **, char *);
extern void sqlorat(void **, unsigned long *, void *);

/* Forms Interface */
static const int IAPSUCC = 0;
static const int IAPFAIL = 1403;
static const int IAPFTL  = 535;
extern void sqliem(char *, int *);

 static const char *sq0001 = 
"select *  from Part where ID=:b0           ";

 static const char *sq0005 = 
"select ID  from Part where ID=:b0           ";

 static const char *sq0012 = 
"select *  from PartAdvice            ";

 static const char *sq0013 = 
"select *  from PartAdvice            ";

typedef struct { unsigned short len; unsigned char arr[1]; } VARCHAR;
typedef struct { unsigned short len; unsigned char arr[1]; } varchar;

/* cud (compilation unit data) array */
static const short sqlcud0[] =
{10,4130,852,0,0,
5,0,0,1,43,0,9,110,0,0,1,1,0,1,0,1,97,0,0,
24,0,0,1,0,0,13,116,0,0,5,0,0,1,0,2,97,0,0,2,97,0,0,2,97,0,0,2,4,0,0,2,97,0,0,
59,0,0,1,0,0,15,133,0,0,0,0,0,1,0,
74,0,0,2,46,0,3,202,0,0,5,5,0,1,0,1,97,0,0,1,97,0,0,1,97,0,0,1,4,0,0,1,97,0,0,
109,0,0,3,0,0,29,204,0,0,0,0,0,1,0,
124,0,0,4,0,0,31,211,0,0,0,0,0,1,0,
139,0,0,5,44,0,9,227,0,0,1,1,0,1,0,1,97,0,0,
158,0,0,5,0,0,13,231,0,0,1,0,0,1,0,2,97,0,0,
177,0,0,5,0,0,15,240,0,0,0,0,0,1,0,
192,0,0,6,31,0,2,281,0,0,1,1,0,1,0,1,97,0,0,
211,0,0,7,0,0,29,282,0,0,0,0,0,1,0,
226,0,0,8,0,0,31,293,0,0,0,0,0,1,0,
241,0,0,9,72,0,5,367,0,0,4,4,0,1,0,1,97,0,0,1,97,0,0,1,97,0,0,1,97,0,0,
272,0,0,10,0,0,29,369,0,0,0,0,0,1,0,
287,0,0,11,0,0,31,380,0,0,0,0,0,1,0,
302,0,0,12,37,0,9,448,0,0,0,0,0,1,0,
317,0,0,12,0,0,13,454,0,0,6,0,0,1,0,2,97,0,0,2,97,0,0,2,97,0,0,2,97,0,0,2,97,0,
0,2,97,0,0,
356,0,0,12,0,0,15,471,0,0,0,0,0,1,0,
371,0,0,13,37,0,9,498,0,0,0,0,0,1,0,
386,0,0,13,0,0,13,504,0,0,6,0,0,1,0,2,97,0,0,2,97,0,0,2,97,0,0,2,97,0,0,2,97,0,
0,2,97,0,0,
425,0,0,13,0,0,15,531,0,0,0,0,0,1,0,
440,0,0,14,37,0,2,547,0,0,1,1,0,1,0,1,97,0,0,
459,0,0,15,0,0,29,548,0,0,0,0,0,1,0,
474,0,0,16,0,0,31,559,0,0,0,0,0,1,0,
};


#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; */ 

{
    struct sqlexd sqlstm;
    sqlstm.sqlvsn = 10;
    sqlstm.arrsiz = 1;
    sqlstm.sqladtp = &sqladt;
    sqlstm.sqltdsp = &sqltds;
    sqlstm.stmt = sq0001;
    sqlstm.iters = (unsigned int  )1;
    sqlstm.offset = (unsigned int  )5;
    sqlstm.selerr = (unsigned short)1;
    sqlstm.cud = sqlcud0;
    sqlstm.sqlest = (unsigned char  *)&sqlca;
    sqlstm.sqlety = (unsigned short)256;
    sqlstm.occurs = (unsigned int  )0;
    sqlstm.sqhstv[0] = (         void  *)seekID;
    sqlstm.sqhstl[0] = (unsigned int  )10;
    sqlstm.sqhsts[0] = (         int  )0;
    sqlstm.sqindv[0] = (         void  *)0;
    sqlstm.sqinds[0] = (         int  )0;
    sqlstm.sqharm[0] = (unsigned int  )0;
    sqlstm.sqadto[0] = (unsigned short )0;
    sqlstm.sqtdso[0] = (unsigned short )0;
    sqlstm.sqphsv = sqlstm.sqhstv;
    sqlstm.sqphsl = sqlstm.sqhstl;
    sqlstm.sqphss = sqlstm.sqhsts;
    sqlstm.sqpind = sqlstm.sqindv;
    sqlstm.sqpins = sqlstm.sqinds;
    sqlstm.sqparm = sqlstm.sqharm;
    sqlstm.sqparc = sqlstm.sqharc;
    sqlstm.sqpadto = sqlstm.sqadto;
    sqlstm.sqptdso = sqlstm.sqtdso;
    sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
}



   	while(1)
   	{

   		/* EXEC SQL WHENEVER NOT FOUND DO break; */ 
   		
   		/* EXEC SQL FETCH Part_cursor INTO :ID,:Name,:Color,:Weight,:Intro; */ 

{
     struct sqlexd sqlstm;
     sqlstm.sqlvsn = 10;
     sqlstm.arrsiz = 5;
     sqlstm.sqladtp = &sqladt;
     sqlstm.sqltdsp = &sqltds;
     sqlstm.iters = (unsigned int  )1;
     sqlstm.offset = (unsigned int  )24;
     sqlstm.selerr = (unsigned short)1;
     sqlstm.cud = sqlcud0;
     sqlstm.sqlest = (unsigned char  *)&sqlca;
     sqlstm.sqlety = (unsigned short)256;
     sqlstm.occurs = (unsigned int  )0;
     sqlstm.sqhstv[0] = (         void  *)ID;
     sqlstm.sqhstl[0] = (unsigned int  )10;
     sqlstm.sqhsts[0] = (         int  )0;
     sqlstm.sqindv[0] = (         void  *)0;
     sqlstm.sqinds[0] = (         int  )0;
     sqlstm.sqharm[0] = (unsigned int  )0;
     sqlstm.sqadto[0] = (unsigned short )0;
     sqlstm.sqtdso[0] = (unsigned short )0;
     sqlstm.sqhstv[1] = (         void  *)Name;
     sqlstm.sqhstl[1] = (unsigned int  )30;
     sqlstm.sqhsts[1] = (         int  )0;
     sqlstm.sqindv[1] = (         void  *)0;
     sqlstm.sqinds[1] = (         int  )0;
     sqlstm.sqharm[1] = (unsigned int  )0;
     sqlstm.sqadto[1] = (unsigned short )0;
     sqlstm.sqtdso[1] = (unsigned short )0;
     sqlstm.sqhstv[2] = (         void  *)Color;
     sqlstm.sqhstl[2] = (unsigned int  )10;
     sqlstm.sqhsts[2] = (         int  )0;
     sqlstm.sqindv[2] = (         void  *)0;
     sqlstm.sqinds[2] = (         int  )0;
     sqlstm.sqharm[2] = (unsigned int  )0;
     sqlstm.sqadto[2] = (unsigned short )0;
     sqlstm.sqtdso[2] = (unsigned short )0;
     sqlstm.sqhstv[3] = (         void  *)&Weight;
     sqlstm.sqhstl[3] = (unsigned int  )sizeof(float);
     sqlstm.sqhsts[3] = (         int  )0;
     sqlstm.sqindv[3] = (         void  *)0;
     sqlstm.sqinds[3] = (         int  )0;
     sqlstm.sqharm[3] = (unsigned int  )0;
     sqlstm.sqadto[3] = (unsigned short )0;
     sqlstm.sqtdso[3] = (unsigned short )0;
     sqlstm.sqhstv[4] = (         void  *)Intro;
     sqlstm.sqhstl[4] = (unsigned int  )100;
     sqlstm.sqhsts[4] = (         int  )0;
     sqlstm.sqindv[4] = (         void  *)0;
     sqlstm.sqinds[4] = (         int  )0;
     sqlstm.sqharm[4] = (unsigned int  )0;
     sqlstm.sqadto[4] = (unsigned short )0;
     sqlstm.sqtdso[4] = (unsigned short )0;
     sqlstm.sqphsv = sqlstm.sqhstv;
     sqlstm.sqphsl = sqlstm.sqhstl;
     sqlstm.sqphss = sqlstm.sqhsts;
     sqlstm.sqpind = sqlstm.sqindv;
     sqlstm.sqpins = sqlstm.sqinds;
     sqlstm.sqparm = sqlstm.sqharm;
     sqlstm.sqparc = sqlstm.sqharc;
     sqlstm.sqpadto = sqlstm.sqadto;
     sqlstm.sqptdso = sqlstm.sqtdso;
     sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
     if (sqlca.sqlcode == 1403) break;
}


    		++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; */ 

{
    struct sqlexd sqlstm;
    sqlstm.sqlvsn = 10;
    sqlstm.arrsiz = 5;
    sqlstm.sqladtp = &sqladt;
    sqlstm.sqltdsp = &sqltds;
    sqlstm.iters = (unsigned int  )1;
    sqlstm.offset = (unsigned int  )59;
    sqlstm.cud = sqlcud0;
    sqlstm.sqlest = (unsigned char  *)&sqlca;
    sqlstm.sqlety = (unsigned short)256;
    sqlstm.occurs = (unsigned int  )0;
    sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
}


	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); */ 

{
 struct sqlexd sqlstm;
 sqlstm.sqlvsn = 10;
 sqlstm.arrsiz = 5;
 sqlstm.sqladtp = &sqladt;
 sqlstm.sqltdsp = &sqltds;
 sqlstm.stmt = "insert into Part  values (:b0,:b1,:b2,:b3,:b4)";
 sqlstm.iters = (unsigned int  )1;
 sqlstm.offset = (unsigned int  )74;
 sqlstm.cud = sqlcud0;
 sqlstm.sqlest = (unsigned char  *)&sqlca;
 sqlstm.sqlety = (unsigned short)256;
 sqlstm.occurs = (unsigned int  )0;
 sqlstm.sqhstv[0] = (         void  *)ID;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -