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

📄 oradb.pc

📁 福建博洋教育C/C++软件项目实战:POS收银系统
💻 PC
📖 第 1 页 / 共 2 页
字号:
#include "oradb.h"
#include <sqlca.h>
#include <string.h>
#include <stdio.h>

int update_saledetail(SALE_DETAIL *sale_detail)
{
	EXEC SQL WHENEVER SQLERROR GOTO SELECT_ERR;
	EXEC SQL WHENEVER NOT FOUND GOTO NOT_FOUND;
	EXEC SQL UPDATE sale_detail SET count=count+:sale_detail->count
	WHERE detail_id=:sale_detail->detail_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 get_saledetail_saleid(SALE_ID *sale_id)
{
	SALE_DETAIL *sale_detail=NULL;
	EXEC SQL WHENEVER SQLERROR GOTO SELECT_ERR;
	EXEC SQL WHENEVER NOT FOUND GOTO NOT_FOUND;
	EXEC SQL DECLARE my_six_cursor CURSOR FOR SELECT detail_id,bar_code 
	FROM sale_detail WHERE sale_id=:sale_id->sale_id; 
	EXEC SQL OPEN my_six_cursor;
	while(1)
	{		
		sale_detail=(SALE_DETAIL *)malloc(sizeof(SALE_DETAIL));
		if (sqlca.sqlcode==0)
		{
			EXEC SQL FETCH my_six_cursor INTO :sale_detail->detail_id,:sale_detail->bar_code;
			Trim(sale_detail->detail_id);
			Trim(sale_detail->bar_code);	
			update_salelist.insert_rear(&update_salelist,(void *)sale_detail,sizeof(SALE_DETAIL));	
		}
		else
		     break;
	}
	EXEC SQL CLOSE my_six_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 update_sale(SALE *sale_info,SALE_ID *sale_id)
{
	EXEC SQL WHENEVER SQLERROR GOTO SELECT_ERR;
	EXEC SQL WHENEVER NOT FOUND GOTO NOT_FOUND;
	EXEC SQL UPDATE sale SET given_sum=given_sum+:sale_info->given_sum,real_sum=real_sum+:sale_info->real_sum,
	sale_money=sale_money+:sale_info->sale_money 
	WHERE sale_id=:sale_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 get_sale_by_date(SEARCH_DATE *date)
{
	SALE *sale_info=NULL;
	EXEC SQL WHENEVER SQLERROR GOTO SELECT_ERR;
	EXEC SQL WHENEVER NOT FOUND GOTO NOT_FOUND;
	EXEC SQL DECLARE my_five_cursor CURSOR FOR SELECT sale_id,trans_id,staff_id,to_char(sale_date,'yyyy-mm-dd'),real_sum
	FROM sale WHERE sale_id>:date->start_date AND sale_id<:date->end_date ORDER BY trans_id; 
	EXEC SQL OPEN my_five_cursor;
	while(1)
	{	
		sale_info=(SALE *)malloc(sizeof(SALE));
		if (sqlca.sqlcode==0)
		{
			EXEC SQL FETCH my_five_cursor INTO :sale_info->sale_id, :sale_info->trans_id,:sale_info->staff_id,
			:sale_info->sale_date, :sale_info->real_sum;	
			Trim(sale_info->sale_id);
			Trim(sale_info->trans_id);
			Trim(sale_info->staff_id);
			Trim(sale_info->sale_date);	
			salelist.insert_rear(&salelist,(void *)sale_info,sizeof(SALE));	
		}
		else
		     break;
	}
	EXEC SQL CLOSE my_five_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 get_staff_all_sale(STAFF *staff_info)
{
	SALE *sale_info=NULL;
	EXEC SQL WHENEVER SQLERROR GOTO SELECT_ERR;
	EXEC SQL WHENEVER NOT FOUND GOTO NOT_FOUND;
	EXEC SQL DECLARE my_four_cursor CURSOR FOR SELECT sale_id,trans_id,staff_id,to_char(sale_date,'yyyy-mm-dd'),real_sum
	FROM sale WHERE staff_id=:staff_info->staff_id ORDER BY trans_id; 
	EXEC SQL OPEN my_four_cursor;
	while(1)
	{	
		sale_info=(SALE *)malloc(sizeof(SALE));
		if (sqlca.sqlcode==0)
		{
			EXEC SQL FETCH my_four_cursor INTO :sale_info->sale_id, :sale_info->trans_id,:sale_info->staff_id,
			:sale_info->sale_date, :sale_info->real_sum;	
			Trim(sale_info->sale_id);
			Trim(sale_info->trans_id);
			Trim(sale_info->staff_id);
			Trim(sale_info->sale_date);	
			/*strcpy(sale_info->staff_id,staff_info->staff_id);*/
			salelist.insert_rear(&salelist,(void *)sale_info,sizeof(SALE));	
		}
		else
		     break;
	}
	EXEC SQL CLOSE my_four_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 delete_staff(STAFF *staff_info)
{
	EXEC SQL WHENEVER SQLERROR GOTO SELECT_ERR;
	EXEC SQL WHENEVER NOT FOUND GOTO NOT_FOUND;
	EXEC SQL DELETE FROM staff WHERE staff_id=:staff_info->staff_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 update_staff(STAFF *staff_info)
{
	EXEC SQL WHENEVER SQLERROR GOTO SELECT_ERR;
	EXEC SQL WHENEVER NOT FOUND GOTO NOT_FOUND;
	EXEC SQL UPDATE staff SET staff_name=:staff_info->staff_name, staff_pwd=:staff_info->staff_pwd, 
	staff_type=:staff_info->staff_type, remark=:staff_info->remark WHERE staff_id=:staff_info->staff_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 get_staff(STAFF *staff_info)
{
	EXEC SQL WHENEVER SQLERROR GOTO SELECT_ERR;
	EXEC SQL WHENEVER NOT FOUND GOTO NOT_FOUND;
	EXEC SQL SELECT staff_name, staff_pwd, staff_type, remark 
	INTO :staff_info->staff_name, :staff_info->staff_pwd, :staff_info->staff_type, :staff_info->remark 
	FROM staff WHERE :staff_info->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 insert_staff(STAFF *staff_info)
{
	EXEC SQL WHENEVER SQLERROR GOTO SELECT_ERR;
	EXEC SQL WHENEVER NOT FOUND GOTO NOT_FOUND;
	EXEC SQL INSERT INTO staff(staff_id,staff_name,staff_pwd,staff_type,remark)	
	VALUES(:staff_info->staff_id,:staff_info->staff_name,:staff_info->staff_pwd,:staff_info->staff_type,:staff_info->remark);	
	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 staffid_in_staff(STAFF *staff_info)
{
	EXEC SQL WHENEVER SQLERROR GOTO SELECT_ERR;
	EXEC SQL WHENEVER NOT FOUND GOTO NOT_FOUND;
	EXEC SQL SELECT staff_id FROM staff WHERE staff_id=:staff_info->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 get_all_staff()
{
	STAFF *staff_info=NULL;
	EXEC SQL WHENEVER SQLERROR GOTO SELECT_ERR;
	EXEC SQL WHENEVER NOT FOUND GOTO NOT_FOUND;
	EXEC SQL DECLARE my_three_cursor CURSOR FOR SELECT staff_id,staff_name,staff_pwd,staff_type,remark
	FROM staff;
	EXEC SQL OPEN my_three_cursor;
	while(1)
	{	
		staff_info=(STAFF *)malloc(sizeof(STAFF));
		if (sqlca.sqlcode==0)
		{
			EXEC SQL FETCH my_three_cursor INTO :staff_info->staff_id, :staff_info->staff_name,
			:staff_info->staff_pwd, :staff_info->staff_type, :staff_info->remark;			
			Trim(staff_info->staff_id);
			Trim(staff_info->staff_name);
			Trim(staff_info->staff_pwd);
			Trim(staff_info->remark);		
			salelist.insert_rear(&salelist,(void *)staff_info,sizeof(STAFF));	
		}
		else
		     break;
	}
	EXEC SQL CLOSE my_three_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 delete_product(PRODUCT *pro_info)
{
	EXEC SQL WHENEVER SQLERROR GOTO SELECT_ERR;
	EXEC SQL WHENEVER NOT FOUND GOTO NOT_FOUND;
	EXEC SQL DELETE FROM product 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 update_product(PRODUCT *pro_info)
{
	EXEC SQL WHENEVER SQLERROR GOTO SELECT_ERR;
	EXEC SQL WHENEVER NOT FOUND GOTO NOT_FOUND;
	EXEC SQL UPDATE product SET count=:pro_info->count, product_name=:pro_info->product_name, 
	unit=:pro_info->unit, spec=:pro_info->spec, sale_price=:pro_info->sale_price,
	purchase_price=:pro_info->purchase_price, discount=:pro_info->discount
	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 insert_product(PRODUCT *pro_info)
{
	EXEC SQL WHENEVER SQLERROR GOTO SELECT_ERR;
	EXEC SQL WHENEVER NOT FOUND GOTO NOT_FOUND;
	EXEC SQL INSERT INTO product(bar_code,product_name,unit,spec,sale_price,purchase_price,count,discount)	
	VALUES(:pro_info->bar_code,:pro_info->product_name,:pro_info->unit,:pro_info->spec,
	:pro_info->sale_price,:pro_info->purchase_price,:pro_info->count,:pro_info->discount);	
	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 code_in_product(PRODUCT *pro_info)
{
	EXEC SQL WHENEVER SQLERROR GOTO SELECT_ERR;
	EXEC SQL WHENEVER NOT FOUND GOTO NOT_FOUND;
	EXEC SQL SELECT bar_code 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 code_in_saleid(SALE_ID *sale_id,PRODUCT *pro_info)
{

⌨️ 快捷键说明

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