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

📄 pro_modify.c

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

/* 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[68];
};
static const struct sqlcxp sqlfpn =
{
    67,
    "F:\\数据库\\课程设计\\课程设计zhu\\server1.2\\systemModify\\pro_modify.pc"
};


static unsigned long sqlctx = 1337188707;


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[5];
   unsigned int   sqhstl[5];
            int   sqhsts[5];
            void  *sqindv[5];
            int   sqinds[5];
   unsigned int   sqharm[5];
   unsigned int   *sqharc[5];
   unsigned short  sqadto[5];
   unsigned short  sqtdso[5];
} sqlstm = {10,5};

/* 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 *sq0007 = 
"select *  from Provider where ID=:b0           ";

 static const char *sq0011 = 
"select ID  from Provider where ID=:b0           ";

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,50,0,3,80,0,0,5,5,0,1,0,1,97,0,0,1,97,0,0,1,97,0,0,1,97,0,0,1,97,0,0,
40,0,0,2,0,0,29,82,0,0,0,0,0,1,0,
55,0,0,3,0,0,32,89,0,0,0,0,0,1,0,
70,0,0,4,35,0,2,137,0,0,1,1,0,1,0,1,97,0,0,
89,0,0,5,0,0,29,138,0,0,0,0,0,1,0,
104,0,0,6,0,0,31,149,0,0,0,0,0,1,0,
119,0,0,7,47,0,9,213,0,0,1,1,0,1,0,1,97,0,0,
138,0,0,7,0,0,13,224,0,0,5,0,0,1,0,2,97,0,0,2,97,0,0,2,97,0,0,2,97,0,0,2,97,0,
0,
173,0,0,7,0,0,15,241,0,0,0,0,0,1,0,
188,0,0,8,72,0,5,322,0,0,5,5,0,1,0,1,97,0,0,1,97,0,0,1,97,0,0,1,97,0,0,1,97,0,
0,
223,0,0,9,0,0,29,324,0,0,0,0,0,1,0,
238,0,0,10,0,0,31,335,0,0,0,0,0,1,0,
253,0,0,11,48,0,9,352,0,0,1,1,0,1,0,1,97,0,0,
272,0,0,11,0,0,13,356,0,0,1,0,0,1,0,2,97,0,0,
};


#include <stdio.h> 
#include <string.h>
#include <stdlib.h>
#include <sqlca.h>
#include <process.h>

 extern bus_modifyMenu();
 int insert_pro(char* tID,char* tName,char* tAddress,char* tTel,char* tIntro);
 void menu_insert_pro();
 extern int error();
 int delete_pro( char* tID );
 void menu_delete_pro();
 int query_pro(char* tID);
 void menu_query_pro();
 void menu_update_pro();
 int update_pro( char* tID,char* tName,char* tAddress,char* tTel,char* tIntro );
 void bus_Menu();
 int query_proID_unique(char* tID);
 extern int query_proID_unique(char* tID);
void menu_insert_pro()
{
	char t,m;
	char ID[10];
	char Name[20];
	char Address[30];
	char Tel[16];
	char Intro[100];

	while(1)
	{
		printf("\t\t添加供应商信息\n\n");
		printf("请录入供应商信息:\n\n");
		printf("\t供应商号->");
		scanf("%s",ID);
		if( query_proID_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("\t简介->");
		scanf("%s",Intro);
		printf("\n");
		fflush(stdin);
		if(!insert_pro(ID,Name,Address,Tel,Intro))
			printf("成功添加供应商信息!");	
		else printf("ERROR:(menu_insert_pro)");	
	}/*while*/		
		printf("继续添加?(Y/N)");	
			t=getchar();
			if(t=='N'||t=='n')break;				
		}
	bus_modifyMenu();
}/*menu_insert_pro()*/

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

	/* EXEC SQL WHENEVER SQLERROR GOTO error; */ 

	/* EXEC SQL INSERT INTO Provider
		VALUES(:ID,:Name,:Address,:Tel,:Intro); */ 

{
 struct sqlexd sqlstm;
 sqlstm.sqlvsn = 10;
 sqlstm.arrsiz = 5;
 sqlstm.sqladtp = &sqladt;
 sqlstm.sqltdsp = &sqltds;
 sqlstm.stmt = "insert into Provider  values (:b0,:b1,:b2,:b3,:b4)";
 sqlstm.iters = (unsigned int  )1;
 sqlstm.offset = (unsigned int  )5;
 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  )20;
 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  *)Address;
 sqlstm.sqhstl[2] = (unsigned int  )30;
 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  *)Tel;
 sqlstm.sqhstl[3] = (unsigned int  )16;
 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 < 0) goto error;
}


	/* EXEC SQL COMMIT; */ 

{
 struct sqlexd sqlstm;
 sqlstm.sqlvsn = 10;
 sqlstm.arrsiz = 5;
 sqlstm.sqladtp = &sqladt;
 sqlstm.sqltdsp = &sqltds;
 sqlstm.iters = (unsigned int  )1;
 sqlstm.offset = (unsigned int  )40;
 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 (sqlca.sqlcode < 0) goto error;
}

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

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

 
   	return 1; 	
}/*insert_pro()*/


void menu_delete_pro()
{
	char t;
	char ID[10];
	while(1)
		{
		printf("\t\t删除供应商信息\n\n");
		printf("请录入预删除的供应商号:\n\n");
		printf("\t供应商号->");
		scanf("%s",ID);
		fflush(stdin);
		
		if( query_pro( ID ) )		
			printf("WARING:(munu_delete_pro)Provider %s does not exist.\t\n\n",ID);
		else 
			if( !delete_pro( ID ) )
				printf("成功删除供应商号为%s的信息!",ID);	
			else	printf("WARING:(delete_pro)Provider %s does not exist.\t",ID);
/*		else continue;	*/		
		printf("还要删除吗?(Y/N)");	
			t=getchar();
			if(t=='N'||t=='n')break;				
		}
	bus_modifyMenu();
	
}/*menu_delete_pro()*/

int delete_pro( 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 Provider WHERE ID=:seekID; */ 

{
 struct sqlexd sqlstm;
 sqlstm.sqlvsn = 10;
 sqlstm.arrsiz = 5;
 sqlstm.sqladtp = &sqladt;
 sqlstm.sqltdsp = &sqltds;
 sqlstm.stmt = "delete  from Provider  where ID=:b0";
 sqlstm.iters = (unsigned int  )1;
 sqlstm.offset = (unsigned int  )70;
 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);
 if (sqlca.sqlcode == 1403) goto notfound;
 if (sqlca.sqlcode < 0) goto sqlerr;
}


	/* EXEC SQL COMMIT; */ 

{
 struct sqlexd sqlstm;
 sqlstm.sqlvsn = 10;
 sqlstm.arrsiz = 5;
 sqlstm.sqladtp = &sqladt;
 sqlstm.sqltdsp = &sqltds;
 sqlstm.iters = (unsigned int  )1;
 sqlstm.offset = (unsigned int  )89;
 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 (sqlca.sqlcode < 0) goto sqlerr;
}


	printf("%s dropped.\n",seekID);
	return 0;
	
	notfound:
		printf("WARING:999Provider %s does not exist.\t",seekID);
		return -1;
	
	sqlerr:
		printf("%70s\n",sqlca.sqlerrm.sqlerrmc);
		/* EXEC SQL WHENEVER SQLERROR CONTINUE; */ 

		/* EXEC SQL ROLLBACK; */ 

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


		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_pro(...)*/

⌨️ 快捷键说明

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