?? partmodify.c
字號:
/* 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 + -