cus_meg_modify.c
来自「pro C的一个关于零件交易系统的源码」· C语言 代码 · 共 579 行
C
579 行
/* 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[76];
};
static const struct sqlcxp sqlfpn =
{
75,
"F:\\数据库\\课程设计\\课程设计zhu\\customer\\cusMenssageModify\\cus_meg_modify.pc"
};
static unsigned long sqlctx = 1798539619;
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[4];
unsigned int sqhstl[4];
int sqhsts[4];
void *sqindv[4];
int sqinds[4];
unsigned int sqharm[4];
unsigned int *sqharc[4];
unsigned short sqadto[4];
unsigned short sqtdso[4];
} sqlstm = {10,4};
/* 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 *);
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,46,0,3,100,0,0,4,4,0,1,0,1,97,0,0,1,97,0,0,1,97,0,0,1,97,0,0,
36,0,0,2,0,0,29,102,0,0,0,0,0,1,0,
51,0,0,3,0,0,32,109,0,0,0,0,0,1,0,
66,0,0,4,49,0,5,179,0,0,3,3,0,1,0,1,97,0,0,1,97,0,0,1,97,0,0,
93,0,0,5,0,0,29,181,0,0,0,0,0,1,0,
108,0,0,6,0,0,31,192,0,0,0,0,0,1,0,
};
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sqlca.h>
#include <conio.h>
#include <process.h>
void menu_insert_cusMeg();
int insert_cus(char* tID,char* tName,char* tAddress,char* tTel);
void menu_update_cusMeg();
int update_cus( char* tID,char* tName,char* tAddress,char* tTel );
int query_cus(char* tID);
extern void cus_Menu();
extern int query_cusID_unique(char* tID);
extern char Cus_ID[10]; /*供应商登陆用户名*/
extern char Cus_Password[10]; /*登陆密码*/
void cus_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_cusMeg();break;
case '2':
menu_update_cusMeg();break;
default :
cus_Menu();
}
}/*cus_meg_modify_menu()*/
void menu_insert_cusMeg()
{
char Name[20];
char Address[30];
char Tel[16];
printf("\t\t添加个人信息\n\n");
printf("\n请录入:\n");
printf("\t顾客名->");
scanf("%s",Name);
printf("\t地址->");
scanf("%s",Address);
printf("\t电话->");
scanf("%s",Tel);
printf("\n");
fflush(stdin);
/*printf("(menu_insert_cusMeg)%s\n",Pro_ID);*/
if( !insert_cus(Cus_ID,Name,Address,Tel )){
printf("成功添加个人信息!点击任意键返回上级菜单!");
getchar();
cus_Menu();
}else{
printf("ERROR:(menu_insert_cusMeg)");
printf("出现错误!添加个人信息不成功,点击任意键返回上级菜单!");
getchar();
cus_Menu();
}/*else*/
}/*menu_insert_cusMeg()*/
int insert_cus(char* tID,char* tName,char* tAddress,char* tTel )
{
/* EXEC SQL BEGIN DECLARE SECTION; */
char ID[10];
char Name[20];
char Address[30];
char Tel[16];
/* EXEC SQL END DECLARE SECTION; */
strcpy(ID,tID);
strcpy(Name,tName);
strcpy(Address,tAddress);
strcpy(Tel,tTel);
/*printf("(insert_cus)%s,%s\n",ID,tID);*/
/* EXEC SQL WHENEVER SQLERROR GOTO error; */
/* EXEC SQL INSERT INTO Customer
VALUES(:ID,:Name,:Address,:Tel); */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 10;
sqlstm.arrsiz = 4;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "insert into Customer values (:b0,:b1,:b2,:b3)";
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.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 = 4;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )36;
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_cus)");
/* 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 = 4;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )51;
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_cus()*/
void menu_update_cusMeg()
{
char ID[10];
char Name[20];
char Address[30];
char Tel[16];
fflush(stdin);
printf("\n\n\t\t更新顾客个人信息\n\n");
printf("请录入:\n\n");
printf("\t顾客号->");
scanf("%s",ID);
if( query_cusID_unique( ID ) )
printf("WARING:(menu_update_cus)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("\n");
if( update_cus( ID,Name,Address,Tel ) )
printf("WARING:(menu_update_cus)Provider %s does not exist.\t",ID);
else printf("成功更新%s的信息!点击任意键返回上级菜单!",ID);
getchar();
}/*else*/
}/*else*/
cus_Menu();
}/*menu_update_cusMeg()*/
int update_cus( char* tID,char* tName,char* tAddress,char* tTel )
{
/* EXEC SQL BEGIN DECLARE SECTION; */
char ID[10];
char Name[20];
char Address[30];
char Tel[16];
/* EXEC SQL END DECLARE SECTION; */
strcpy(ID,tID);
strcpy(Name,tName);
strcpy(Address,tAddress);
strcpy(Tel,tTel);
/* EXEC SQL WHENEVER SQLERROR GOTO sqlerr; */
/* EXEC SQL WHENEVER NOT FOUND GOTO notfound; */
/* EXEC SQL UPDATE Customer SET Name=:Name,Address=:Address,Tel=:Tel; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 10;
sqlstm.arrsiz = 4;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "update Customer set Name=:b0,Address=:b1,Tel=:b2";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )66;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = ( void *)Name;
sqlstm.sqhstl[0] = (unsigned int )20;
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 *)Address;
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 *)Tel;
sqlstm.sqhstl[2] = (unsigned int )16;
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.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;
}
/* WHERE ID=:ID;*/
/* EXEC SQL COMMIT; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 10;
sqlstm.arrsiz = 4;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )93;
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 updated.\n",ID);
return 0;
notfound:
printf("WARING:(update_cus)Provider %s does not exist.\t",ID);
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 = 4;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )108;
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;
}/*update_cus( ... )*/
/*
int query_cus(char* tID)
{
EXEC SQL BEGIN DECLARE SECTION;
char ID[10];
char Name[20];
char Address[30];
char Tel[16];
char seekID[10];
EXEC SQL END DECLARE SECTION;
int total_number=0;
strcpy(seekID,tID);
EXEC SQL DECLARE cus_cursor CURSOR FOR SELECT * FROM Customer WHERE ID=:seekID ;
EXEC SQL OPEN cus_cursor;
while(1)
{
EXEC SQL WHENEVER NOT FOUND DO break;
EXEC SQL FETCH cus_cursor INTO :ID,:Name,:Address,:Tel,;
++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("--- --------- ------------------- ---------------------------- ----------\n");
}
EXEC SQL CLOSE cus_cursor;
if(!total_number)
{
printf("WARING:(query_cus)Customer %s does not exist.\t\n\n",seekID);
return -1;
}else
return 0; /*success*/
/*}*//*query_cus()*/
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?