📄 advicebussiness.c
字号:
sqlstm.sqadto[2] = (unsigned short )0;
sqlstm.sqtdso[2] = (unsigned short )0;
sqlstm.sqhstv[3] = ( void *)Quantity;
sqlstm.sqhstl[3] = (unsigned int )8;
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 == 1403) break;
}
++total_number;
if( total_number == 1 )
{
printf("\n所有的供应信息如下:");
printf("\n\n--- --------- ------------------- ---------------------------- ----------\n");
printf("%-4s%-10s%-10s%-8s%-8s\n","N","providerID","PartID","Price","Quantity");
printf("--- --------- ------------------- ---------------------------- ----------\n");
}/*if*/
printf("%-4d%-10s%-10s%-8s%-8s\n",total_number,providerID,PartID,Price,Quantity);
printf("--- --------- ------------------- ---------------------------- ----------\n");
}/*while*/
/* EXEC SQL CLOSE query_supply_cursor; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 10;
sqlstm.arrsiz = 4;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )112;
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_all_supply)There is no supply part.\t\n\n");
return -1;
}else
return 0; /*success*/
}/*query_all_supply()*/
void advice_bussiness()
{
/* EXEC SQL BEGIN DECLARE SECTION; */
char customerID[10];
char partID[10];
char Price[8];
char Quantity[8];
/* EXEC SQL END DECLARE SECTION; */
char t;
int total_number = 0;
/* EXEC SQL DECLARE advice_bussiness_cursor CURSOR FOR SELECT * FROM After; */
/* EXEC SQL OPEN advice_bussiness_cursor; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 10;
sqlstm.arrsiz = 4;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = sq0003;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )127;
sqlstm.selerr = (unsigned short)1;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int )0;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
}
puts("\t\t推荐交易\n");
/* puts("\n\n以下为所有需求信息:\n");*/
if( query_all_after() ){
printf("WARING:(advice_bussiness)There is no after part.\t\n\n");
puts("没有任何需求信息,返回上级菜单\n");
bus_Menu();
}/*if*/
/* puts("\n\n以下为所有供应信息:\n");*/
if( query_all_supply() ){
printf("WARING:(advice_bussiness)There is no supply part.\t\n\n");
puts("没有任何供应信息,返回上级菜单\n");
bus_Menu();
}/*if*/
printf("\n需要为每项需求推荐供应信息吗?(y/n)>");
t = getchar();
if( t=='n' || t=='N' ){
printf("\n不做处理,点击任意键直接返回上级菜单\n");
getchar();
}else{
while(1)
{
/* EXEC SQL WHENEVER NOT FOUND DO break; */
/* EXEC SQL FETCH advice_bussiness_cursor INTO :customerID,:partID,:Price,:Quantity; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 10;
sqlstm.arrsiz = 4;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )142;
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 *)customerID;
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 *)partID;
sqlstm.sqhstl[1] = (unsigned int )10;
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 *)Price;
sqlstm.sqhstl[2] = (unsigned int )8;
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 *)Quantity;
sqlstm.sqhstl[3] = (unsigned int )8;
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 == 1403) break;
}
++total_number;
printf("\n第%d条需求信息如下:\n",total_number);
printf("\n\n--- --------- ------------------- ---------------------------- ----------\n");
printf("%-4s%-10s%-10s%-8s%-8s\n","N","customerID","partID","Price","Quantity");
printf("--- --------- ------------------- ---------------------------- ----------\n");
printf("%-4d%-10s%-10s%-8s%-8s\n",total_number,customerID,partID,Price,Quantity);
printf("--- --------- ------------------- ---------------------------- ----------\n");
if( t = advice_supply(customerID,partID,Price,Quantity) ) {
printf("为%s对于%s的需求共推荐了%d条供应信息\n",customerID,partID,t);
delete_after(customerID,partID);
printf("点击任意键开始下一个推荐\n");
getchar();
}/*if*/
}/*while*/
printf("交易推荐完毕,点击任意键返回上一级菜单!\n");
getchar();
}/*else*/
bus_Menu();
}/*advice_bussiness()*/
int advice_supply(char* tCustomerID,char* tPartID,char* tPrice,char* tQuantity)
{/*成功,返回推荐个数,否则,0*/
/* EXEC SQL BEGIN DECLARE SECTION; */
char customerID[10];
char cPartID[10];
char cPrice[8];
char cQuantity[8];
char providerID[10];
char pPartID[10];
char pPrice[8];
char pQuantity[8];
/* EXEC SQL END DECLARE SECTION; */
int total_number = 0;
int doN = 0;
float cfPrice;
float pfPrice;
float cfQuantity;
float pfQuantity;
char t;
strcpy(customerID,tCustomerID);
strcpy(cPartID,tPartID);
strcpy(cPrice,tPrice);
strcpy(cQuantity,tQuantity);
cfPrice = (float)atof(tPrice);
cfQuantity = (float)atof(tQuantity);
/*printf("%-10s%-10s%-8s%-8s\n",tCustomerID,tPartID,tPrice,tQuantity);
printf("%-10s%-10s%-8s%-8s\n",customerID,cPartID,cPrice,cQuantity);*/
/* EXEC SQL DECLARE advice_supply_cursor CURSOR FOR SELECT * FROM Supply WHERE PartID = :cPartID; */
/* AND QUANTITY >= :fQuantity ; */
/* EXEC SQL OPEN advice_supply_cursor; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 10;
sqlstm.arrsiz = 4;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = sq0004;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )173;
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 *)cPartID;
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);
}
/*PROVIDERID,PARTID,PRICE,QUANTITY*/
while(1)
{
/* EXEC SQL WHENEVER NOT FOUND DO break; */
/* EXEC SQL FETCH advice_supply_cursor INTO :providerID,:pPartID,:pPrice,:pQuantity; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 10;
sqlstm.arrsiz = 4;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )192;
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 *)providerID;
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 *)pPartID;
sqlstm.sqhstl[1] = (unsigned int )10;
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 *)pPrice;
sqlstm.sqhstl[2] = (unsigned int )8;
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 *)pQuantity;
sqlstm.sqhstl[3] = (unsigned int )8;
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 == 1403) break;
}
pfQuantity = (float)atof(pQuantity);
if(pfQuantity >= cfQuantity ){
++total_number;
printf("\n第%d条符合零件%s需求的供应信息为:\n",total_number,tPartID);
printf("\n\n--- --------- ------------------- ---------------------------- ----------\n");
printf("%-4s%-10s%-10s%-8s%-8s\n","N","providerID","PartID","Price","Quantity");
printf("--- --------- ------------------- ---------------------------- ----------\n");
printf("%-4d%-10s%-10s%-8s%-8s\n",total_number,providerID,pPartID,pPrice,pQuantity);
printf("--- --------- ------------------- ---------------------------- ----------\n");
printf("推荐本笔交易吗?(y/n)>");
fflush(stdin);
t = getchar();
if( t=='n' || t=='N'){
puts("\n本供应信息不做推荐!\n");
}else{
if( !insert_into_agreement(customerID,providerID,cPartID,cfPrice,cfQuantity) ){
printf("本供应信息已推荐,点击任意键开始下条供应信息.\n");
getchar();
++doN;
pfPrice = (float)atof(pPrice);
update_supply(providerID,cPartID,pfPrice,pfQuantity-cfQuantity);
}else printf("ERROR:(advice_supply(...))\n");
}/*else*/
}/*if*/
}/*while*/
/* EXEC SQL CLOSE query_supply_cursor; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 10;
sqlstm.arrsiz = 4;
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(!total_number)
{
printf("WARING:(advice_supply)There is no supply part.\t\n\n");
return 0;
}else
return doN; /*success*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -