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

📄 oradb.pc

📁 福建博洋教育C/C++软件项目实战:POS收银系统
💻 PC
📖 第 1 页 / 共 2 页
字号:
	EXEC SQL WHENEVER SQLERROR GOTO SELECT_ERR;
	EXEC SQL WHENEVER NOT FOUND GOTO NOT_FOUND;
	EXEC SQL SELECT bar_code,count INTO :pro_info->bar_code,:pro_info->count FROM sale_detail 
	WHERE bar_code=:pro_info->bar_code AND sale_id=:sale_id->sale_id; 
	return 1;
NOT_FOUND:
	elog(sqlca.sqlerrm.sqlerrmc,"error.log",sizeof(sqlca.sqlerrm.sqlerrmc));
	return 0;
SELECT_ERR:
	EXEC SQL WHENEVER SQLERROR CONTINUE;
	elog(sqlca.sqlerrm.sqlerrmc,"error.log",sizeof(sqlca.sqlerrm.sqlerrmc));
	return -1;	
}
int get_saleid_product_count(SALE_ID *sale_id,PRODUCT *pro_info)
{
	PRODUCT *pro;
	EXEC SQL WHENEVER SQLERROR GOTO SELECT_ERR;
	EXEC SQL WHENEVER NOT FOUND GOTO NOT_FOUND;
	EXEC SQL DECLARE my_two_cursor CURSOR FOR SELECT count FROM SALE_DETAIL WHERE sale_id=:sale_id->sale_id;
	EXEC SQL OPEN my_two_cursor;
	while(1)
	{		
		int i=0;
		pro=(PRODUCT *)malloc(sizeof(PRODUCT));
		if (sqlca.sqlcode==0)
		{
			EXEC SQL FETCH my_two_cursor INTO :pro_info->count;
			if (pro_info->count)
			{
				return 1;
			}
			
		}
		else
		     break;
	}
	EXEC SQL CLOSE my_two_cursor;
	return 1;
NOT_FOUND:
	elog(sqlca.sqlerrm.sqlerrmc,"error.log",sizeof(sqlca.sqlerrm.sqlerrmc));
	return 0;
SELECT_ERR:
	EXEC SQL WHENEVER SQLERROR CONTINUE;
	elog(sqlca.sqlerrm.sqlerrmc,"error.log",sizeof(sqlca.sqlerrm.sqlerrmc));
	return -1;
}
int exist_saleid(SALE_ID *sale_id)
{
	EXEC SQL WHENEVER SQLERROR GOTO SELECT_ERR;
	EXEC SQL WHENEVER NOT FOUND GOTO NOT_FOUND;
	EXEC SQL SELECT sale_id FROM sale WHERE :sale_id->sale_id=sale_id AND sale_state=0;
	return 1;
NOT_FOUND:
	elog(sqlca.sqlerrm.sqlerrmc,"error.log",sizeof(sqlca.sqlerrm.sqlerrmc));
	return 0;
SELECT_ERR:
	EXEC SQL WHENEVER SQLERROR CONTINUE;
	elog(sqlca.sqlerrm.sqlerrmc,"error.log",sizeof(sqlca.sqlerrm.sqlerrmc));
	return -1;
}
int get_all_product()
{
	PRODUCT *pro_info;
	EXEC SQL WHENEVER SQLERROR GOTO SELECT_ERR;
	EXEC SQL WHENEVER NOT FOUND GOTO NOT_FOUND;
	EXEC SQL DECLARE my_cursor CURSOR FOR SELECT bar_code, product_name,spec,unit,sale_price, purchase_price, count,discount 
	FROM product;	
	EXEC SQL OPEN my_cursor;
	while(1)
	{
		int i=0;
		pro_info=(PRODUCT *)malloc(sizeof(PRODUCT));
		if(sqlca.sqlcode==0)
		{
			EXEC SQL FETCH my_cursor INTO:pro_info->bar_code,:pro_info->product_name,:pro_info->spec,
			:pro_info->unit,:pro_info->sale_price,:pro_info->purchase_price,:pro_info->count,:pro_info->discount;
			Trim(pro_info->spec);
			Trim(pro_info->unit);
			Trim(pro_info->bar_code);
			Trim(pro_info->product_name);
			salelist.insert_rear(&salelist,(void *)pro_info,sizeof(PRODUCT));	
		}
		else
			break;
	}
	EXEC SQL CLOSE my_cursor;
	return 1;
NOT_FOUND:
	elog(sqlca.sqlerrm.sqlerrmc,"error.log",sizeof(sqlca.sqlerrm.sqlerrmc));
	return 0;
SELECT_ERR:
	EXEC SQL WHENEVER SQLERROR CONTINUE;
	elog(sqlca.sqlerrm.sqlerrmc,"error.log",sizeof(sqlca.sqlerrm.sqlerrmc));
	return -1;

}
int del_sale_detail(SALE_ID *save_id)
{
	EXEC SQL WHENEVER SQLERROR GOTO SELECT_ERR;
	EXEC SQL WHENEVER NOT FOUND GOTO NOT_FOUND;
	EXEC SQL DELETE FROM sale WHERE sale_id=:save_id->sale_id;
	EXEC SQL COMMIT;
	return 1;
NOT_FOUND:
	elog(sqlca.sqlerrm.sqlerrmc,"error.log",sizeof(sqlca.sqlerrm.sqlerrmc));
	return 0;
SELECT_ERR:
	EXEC SQL WHENEVER SQLERROR CONTINUE;
	elog(sqlca.sqlerrm.sqlerrmc,"error.log",sizeof(sqlca.sqlerrm.sqlerrmc));
	return -1;		
}

int fetch_product_count(PRODUCT *pro_info)
{
	EXEC SQL WHENEVER SQLERROR GOTO SELECT_ERR;
	EXEC SQL WHENEVER NOT FOUND GOTO NOT_FOUND;
	EXEC SQL UPDATE product SET count=count+:pro_info->count WHERE bar_code=:pro_info->bar_code;	
	EXEC SQL COMMIT;
	return 1;
NOT_FOUND:
	elog(sqlca.sqlerrm.sqlerrmc,"error.log",sizeof(sqlca.sqlerrm.sqlerrmc));
	return 0;
SELECT_ERR:
	EXEC SQL WHENEVER SQLERROR CONTINUE;
	elog(sqlca.sqlerrm.sqlerrmc,"error.log",sizeof(sqlca.sqlerrm.sqlerrmc));
	return -1;	
}

int get_sale_detail(SALE_ID *save_id)
{
	PRODUCT *pro_info;
	EXEC SQL WHENEVER SQLERROR GOTO SELECT_ERR;
	EXEC SQL WHENEVER NOT FOUND GOTO NOT_FOUND;
	EXEC SQL DECLARE my_one_cursor CURSOR FOR SELECT sale_detail.bar_code,sale_detail.count,
	product.product_name,product.unit,product.spec,product.sale_price
	FROM sale_detail,product
	WHERE sale_detail.bar_code=product.bar_code AND sale_detail.sale_id=:save_id->sale_id;
	EXEC SQL OPEN my_one_cursor;
	while(1)
	{
		int i=0;
		pro_info=(PRODUCT *)malloc(sizeof(PRODUCT));
		if(sqlca.sqlcode==0)
		{
			EXEC SQL FETCH my_one_cursor INTO:pro_info->bar_code,:pro_info->count,:pro_info->product_name,
			:pro_info->unit,:pro_info->spec,:pro_info->sale_price;
			Trim(pro_info->spec);
			Trim(pro_info->unit);
			strcpy(pro_info->unit,&pro_info->unit[i]);
			Trim(pro_info->bar_code);
			Trim(pro_info->product_name);
			salelist.insert_rear(&salelist,(void *)pro_info,sizeof(PRODUCT));	
		}
		else
			break;
	}
	EXEC SQL CLOSE my_one_cursor;
	return 1;
NOT_FOUND:
	elog(sqlca.sqlerrm.sqlerrmc,"error.log",sizeof(sqlca.sqlerrm.sqlerrmc));
	return 0;
SELECT_ERR:
	EXEC SQL WHENEVER SQLERROR CONTINUE;
	elog(sqlca.sqlerrm.sqlerrmc,"error.log",sizeof(sqlca.sqlerrm.sqlerrmc));
	return -1;
}

int insert_sale_detail(SALE_DETAIL *sale_detail)
{
	EXEC SQL WHENEVER SQLERROR GOTO SELECT_ERR;
	EXEC SQL WHENEVER NOT FOUND GOTO NOT_FOUND;
	EXEC SQL INSERT INTO sale_detail(detail_id,sale_id,bar_code,count,sale_price,sale_state)  
	VALUES(:sale_detail->detail_id, :sale_detail->sale_id, :sale_detail->bar_code,
	:sale_detail->count, :sale_detail->sale_price, :sale_detail->sale_state);		
	EXEC SQL COMMIT;
	return 1;
NOT_FOUND:
	elog(sqlca.sqlerrm.sqlerrmc,"error.log",sizeof(sqlca.sqlerrm.sqlerrmc));
	return 0;
SELECT_ERR:
	EXEC SQL WHENEVER SQLERROR CONTINUE;
	elog(sqlca.sqlerrm.sqlerrmc,"error.log",sizeof(sqlca.sqlerrm.sqlerrmc));
	return -1;	
}

int update_product_count(PRODUCT *pro_info)
{
	EXEC SQL WHENEVER SQLERROR GOTO SELECT_ERR;
	EXEC SQL WHENEVER NOT FOUND GOTO NOT_FOUND;
	EXEC SQL UPDATE product SET count=count-:pro_info->count WHERE bar_code=:pro_info->bar_code;
	EXEC SQL COMMIT;
	return 1;
NOT_FOUND:
	elog(sqlca.sqlerrm.sqlerrmc,"error.log",sizeof(sqlca.sqlerrm.sqlerrmc));
	return 0;
SELECT_ERR:
	EXEC SQL WHENEVER SQLERROR CONTINUE;
	elog(sqlca.sqlerrm.sqlerrmc,"error.log",sizeof(sqlca.sqlerrm.sqlerrmc));
	return -1;	
}

int get_seq_detail_id(DETAILID *detail)
{
	EXEC SQL WHENEVER SQLERROR GOTO SELECT_ERR;
	EXEC SQL WHENEVER NOT FOUND GOTO NOT_FOUND;
	EXEC SQL SELECT seq_detail_id.nextval INTO :detail->seq_detail_id FROM dual;
	return 1;
NOT_FOUND:
	elog(sqlca.sqlerrm.sqlerrmc,"error.log",sizeof(sqlca.sqlerrm.sqlerrmc));
	return 0;
SELECT_ERR:
	EXEC SQL WHENEVER SQLERROR CONTINUE;
	elog(sqlca.sqlerrm.sqlerrmc,"error.log",sizeof(sqlca.sqlerrm.sqlerrmc));
	return -1;	
}

int insert_sale(SALE *sale_info)
{
	EXEC SQL WHENEVER SQLERROR GOTO SELECT_ERR;
	EXEC SQL WHENEVER NOT FOUND GOTO NOT_FOUND;
	EXEC SQL INSERT INTO sale(sale_id,trans_id,staff_id,sale_date,given_sum,real_sum,sale_money,change,sale_state)	
	VALUES(:sale_info->sale_id,:sale_info->trans_id,:sale_info->staff_id,to_date(:sale_info->sale_date,'yyyymmddHH24MISS'),
		:sale_info->given_sum,:sale_info->real_sum,:sale_info->sale_money,:sale_info->change,:sale_info->sale_state);	
	EXEC SQL COMMIT;
	return 1;
NOT_FOUND:
	elog(sqlca.sqlerrm.sqlerrmc,"error.log",sizeof(sqlca.sqlerrm.sqlerrmc));
	return 0;
SELECT_ERR:
	EXEC SQL WHENEVER SQLERROR CONTINUE;
	elog(sqlca.sqlerrm.sqlerrmc,"error.log",sizeof(sqlca.sqlerrm.sqlerrmc));
	return -1;	
}

int get_product_info(PRODUCT *pro_info)
{
	EXEC SQL WHENEVER SQLERROR GOTO SELECT_ERR;
	EXEC SQL WHENEVER NOT FOUND GOTO NOT_FOUND;
	EXEC SQL SELECT product_name,spec,unit,sale_price,purchase_price,count,discount
	INTO: pro_info->product_name,:pro_info->spec,:pro_info->unit,:pro_info->sale_price,:pro_info->purchase_price,:pro_info->count,:pro_info->discount
	FROM product WHERE bar_code=:pro_info->bar_code;
	return 1;
NOT_FOUND:
	elog(sqlca.sqlerrm.sqlerrmc,"error.log",sizeof(sqlca.sqlerrm.sqlerrmc));
	return 0;
SELECT_ERR:
	EXEC SQL WHENEVER SQLERROR CONTINUE;
	elog(sqlca.sqlerrm.sqlerrmc,"error.log",sizeof(sqlca.sqlerrm.sqlerrmc));
	return -1;	
}

int get_seq_trans_id(SEQID *seq_id)
{
	EXEC SQL WHENEVER SQLERROR GOTO SELECT_ERR;
	EXEC SQL WHENEVER NOT FOUND GOTO NOT_FOUND;
	EXEC SQL SELECT seq_trans_id.nextval INTO :seq_id->seq_trans_id FROM dual;
	return 1;
NOT_FOUND:
	elog(sqlca.sqlerrm.sqlerrmc,"error.log",sizeof(sqlca.sqlerrm.sqlerrmc));
	return 0;
SELECT_ERR:
	EXEC SQL WHENEVER SQLERROR CONTINUE;
	elog(sqlca.sqlerrm.sqlerrmc,"error.log",sizeof(sqlca.sqlerrm.sqlerrmc));
	return -1;	
}

int get_staffinfo(STAFF *staff_info,char *usr)
{
	EXEC SQL WHENEVER SQLERROR GOTO SELECT_ERR;
	EXEC SQL WHENEVER NOT FOUND GOTO NOT_FOUND;
	EXEC SQL SELECT staff_name,staff_type INTO: staff_info->staff_name,:staff_info->staff_type 
	FROM staff WHERE staff_id=:usr;
	return 1;
NOT_FOUND:
	elog(sqlca.sqlerrm.sqlerrmc,"error.log",sizeof(sqlca.sqlerrm.sqlerrmc));
	return 0;
SELECT_ERR:
	EXEC SQL WHENEVER SQLERROR CONTINUE;
	elog(sqlca.sqlerrm.sqlerrmc,"error.log",sizeof(sqlca.sqlerrm.sqlerrmc));
	return -1;
}

int check_admin_other(char *staff_id,int res)
{
	EXEC SQL WHENEVER SQLERROR GOTO SELECT_ERR;
	EXEC SQL WHENEVER NOT FOUND GOTO NOT_FOUND;
	EXEC SQL SELECT staff_type INTO :res FROM staff WHERE staff_id=:staff_id;
	return res;
NOT_FOUND:
	elog(sqlca.sqlerrm.sqlerrmc,"error.log",sizeof(sqlca.sqlerrm.sqlerrmc));
	return 0;
SELECT_ERR:
	EXEC SQL WHENEVER SQLERROR CONTINUE;
	elog(sqlca.sqlerrm.sqlerrmc,"error.log",sizeof(sqlca.sqlerrm.sqlerrmc));
	return -1;
}

int check_staff(STAFF *staff)
{
	EXEC SQL WHENEVER SQLERROR GOTO SELECT_ERR;
	EXEC SQL WHENEVER NOT FOUND GOTO NOT_FOUND;
	EXEC SQL SELECT NVL(staff_name,chr(0)),NVL(staff_pwd,chr(0)),NVL(staff_type,2),NVL(remark,chr(0))
	INTO :staff->staff_name,:staff->staff_pwd,:staff->staff_type,:staff->remark
	FROM staff WHERE :staff->staff_id = staff_id;
	return 1;
NOT_FOUND:
	elog(sqlca.sqlerrm.sqlerrmc,"error.log",sizeof(sqlca.sqlerrm.sqlerrmc));
	return 0;
SELECT_ERR:
	EXEC SQL WHENEVER SQLERROR CONTINUE;
	elog(sqlca.sqlerrm.sqlerrmc,"error.log",sizeof(sqlca.sqlerrm.sqlerrmc));
	return -1;
}

int check_login(char *user,char *pass)
{
	EXEC SQL WHENEVER SQLERROR GOTO SELECT_ERR;
	EXEC SQL WHENEVER NOT FOUND GOTO NOT_FOUND;
	EXEC SQL SELECT * FROM staff WHERE staff_id=:user and staff_pwd=:pass;
	return 1;
NOT_FOUND:
	elog(sqlca.sqlerrm.sqlerrmc,"error.log",sizeof(sqlca.sqlerrm.sqlerrmc));
	return 0;
SELECT_ERR:
	EXEC SQL WHENEVER SQLERROR CONTINUE;
	elog(sqlca.sqlerrm.sqlerrmc,"error.log",sizeof(sqlca.sqlerrm.sqlerrmc));
	return -1;
}

int connect_db(char *usr,char *pass)
{
	EXEC SQL WHENEVER SQLERROR GOTO CONN_ERR;
	EXEC SQL CONNECT :usr IDENTIFIED BY:pass;
	return 1;
CONN_ERR:
	EXEC SQL WHENEVER SQLERROR CONTINUE;
	elog(sqlca.sqlerrm.sqlerrmc,"error.log",sizeof(sqlca.sqlerrm.sqlerrmc));
	return -1;
}

⌨️ 快捷键说明

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