?? pro_modify.c
字號:
void menu_query_pro()
{
char t;
char ID[10];
while(1)
{
fflush(stdin);
printf("\n\n\t\t查詢供應商信息\n\n");
printf("請錄入要查詢的供應商號:\n\n");
printf("\t供應商號->");
scanf("%s",ID);
fflush(stdin);
if( query_pro( ID ) )
printf("WARING:(menu_query_pro)Provider %s does not exist.\t\n\n",ID);
printf("還要查詢嗎?(Y/N)");
t=getchar();
if(t=='N'||t=='n')break;
}/*while*/
bus_modifyMenu();
}/*menu_query_pro()*/
int query_pro(char* tID)
{
/* EXEC SQL BEGIN DECLARE SECTION; */
char ID[10];
char Name[20];
char Address[30];
char Tel[16];
char Intro[100];
char seekID[10];
/* EXEC SQL END DECLARE SECTION; */
int total_number=0;
strcpy(seekID,tID);
/* EXEC SQL WHENEVER NOT FOUND GOTO notfound; *//*error*/
/* EXEC SQL DECLARE pro_cursor CURSOR FOR SELECT * FROM Provider WHERE ID=:seekID ; */
/* EXEC SQL OPEN pro_cursor; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 10;
sqlstm.arrsiz = 5;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = sq0007;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )119;
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);
}
/* printf("\n相應的信息如下:");
printf("\n\n--- --------- ------------------- ---------------------------- ----------\n");
printf("%-4s%-10s%-20s%-30s%-16s\n","N","ID","Name","Address","Tel");
printf("--- --------- ------------------- ---------------------------- ----------\n");*/
while(1)
{
/* EXEC SQL WHENEVER NOT FOUND DO break; */
/* EXEC SQL FETCH pro_cursor INTO :ID,:Name,:Address,:Tel,: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 )138;
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 )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 == 1403) break;
}
++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("%-50s\n","Intro");
printf("-------------------------------------------------------------------------\n");
printf("%-50s\n",Intro);
printf("-------------------------------------------------------------------------\n");
printf("--- --------- ------------------- ---------------------------- ----------\n\n\n");
}
/* EXEC SQL CLOSE pro_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 )173;
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_pro)Provider %s does not exist.\t\n\n",seekID);
return -1;
}else
return 0; /*success*/
}/*query_pro()*/
void menu_update_pro()
{
char t;
char ID[10];
char Name[20];
char Address[30];
char Tel[16];
char Intro[100];
while(1)
{
fflush(stdin);
printf("\n\n\t\t更新供應商信息\n\n");
printf("請錄入要更新的供應商號:\n\n");
printf("\t供應商號->");
scanf("%s",ID);
/*fflush(stdin);*/
if( query_pro( ID ) )
printf("WARING:(menu_update_pro)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!");break;
}else{
printf("\t地址->");
scanf("%s",Address);
printf("\t電話->");
scanf("%s",Tel);
printf("\t簡介->");
scanf("%s",Intro);
printf("\n");
}/*else*/
if( update_pro( ID,Name,Address,Tel,Intro ) )
printf("WARING:(menu_update_pro)Provider %s does not exist.\t",ID);
else printf("成功更新%s的信息!",ID);
}/*else*/
fflush(stdin);
printf("還要更新其他的嗎?(Y/N)");
t=getchar();
if(t=='N'||t=='n')break;
}/*while*/
bus_modifyMenu();
}/*menu_update_pro()*/
int update_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 sqlerr; */
/* EXEC SQL WHENEVER NOT FOUND GOTO notfound; */
/* EXEC SQL UPDATE Provider SET Name=:Name,Address=:Address,Tel=:Tel,Intro=:Intro
WHERE ID=:ID; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 10;
sqlstm.arrsiz = 5;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "update Provider set Name=:b0,Address=:b1,Tel=:b2,Intro=:b3\
where ID=:b4";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )188;
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.sqhstv[3] = ( void *)Intro;
sqlstm.sqhstl[3] = (unsigned int )100;
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 *)ID;
sqlstm.sqhstl[4] = (unsigned int )10;
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) 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 )223;
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_pro)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 = 5;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )238;
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_pro( ... )*/
int query_proID_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 WHENEVER NOT FOUND GOTO notfound;*/
/* EXEC SQL DECLARE pro_proID_cursor CURSOR FOR SELECT ID FROM Provider WHERE ID=:seekID ; */
/* EXEC SQL OPEN pro_proID_cursor; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 10;
sqlstm.arrsiz = 5;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = sq0011;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )253;
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 pro_proID_cursor INTO :temp; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 10;
sqlstm.arrsiz = 5;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )272;
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 *)temp;
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) break;
}
++total_number;
}
if( total_number )
return 1;
else return 0;
/* notfound:
printf("WARING(query_proID_unique)%s does not exist!",seekID);
return 0;*/
}/*query_cusID_unique(...)*/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -