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

📄 db.pc

📁 linux平台下用C开发的一个超市管理系统(结合了ORACLE数据库)
💻 PC
📖 第 1 页 / 共 2 页
字号:
	SELECT  *  FROM  T_GOODS  ORDER BY BAR_CODE;
	EXEC SQL OPEN  product_cursor;	
	while(1)
	{
		if (sqlca.sqlcode==0)
		{
				EXEC SQL FETCH product_cursor into:temp;										
				mylink->insert_rear(mylink,&temp,sizeof(temp));				
				
		}
		else
		{
			
			break;
		}
			
				
							
	}		
	EXEC SQL CLOSE product_cursor;
	return 0;
error:
	EXEC SQL WHENEVER SQLERROR CONTINUE;
	EXEC SQL ROLLBACK ;	
	return -1;
not_find:
	return 1; 		
}
/**********************************************************************
功能:插入销售表
参数:销售结构体
返回值:0成功 非0失败
***********************************************************************/
int get_hang_list(C_CLASS LINKLIST *mylink,char *id)
{
	SALE temp;
	EXEC SQL WHENEVER SQLERROR GOTO error;
	EXEC SQL WHENEVER NOT FOUND GOTO not_find;
	EXEC SQL DECLARE hsale_cursor CURSOR FOR SELECT * FROM T_SALE WHERE CASHIER_ID=:id AND SALE_STATE=1;
	EXEC SQL OPEN hsale_cursor;
	while(1)
	{
		if (sqlca.sqlcode==0)
		{
				EXEC SQL FETCH hsale_cursor into:temp;										
				mylink->insert_rear(mylink,&temp,sizeof(temp));				
				
		}
		else
		{
			
			break;
		}
			
				
							
	}
	EXEC SQL CLOSE hsale_cursor;
	return 0;
error:
	EXEC SQL WHENEVER SQLERROR CONTINUE;
	EXEC SQL ROLLBACK ;	
	return -1;
not_find:
	return 1;
}
/**********************************************************************
功能:通过ID号获取销售信息
参数:链表 ID
返回值:0成功 非0失败
***********************************************************************/
int get_sale_byID(C_CLASS LINKLIST *mylink,char *id)
{
	SALE temp;
	EXEC SQL WHENEVER SQLERROR GOTO error;
	EXEC SQL WHENEVER NOT FOUND GOTO not_find;
	EXEC SQL DECLARE sale_cursor CURSOR FOR SELECT * FROM T_SALE WHERE CASHIER_ID=:id;
	EXEC SQL OPEN sale_cursor;
	while(1)
	{
		if (sqlca.sqlcode==0)
		{
				EXEC SQL FETCH sale_cursor into:temp;										
				mylink->insert_rear(mylink,&temp,sizeof(temp));				
				
		}
		else
		{
			
			break;
		}
			
				
							
	}
	EXEC SQL CLOSE sale_cursor;
	return 0;
error:
	EXEC SQL WHENEVER SQLERROR CONTINUE;
	EXEC SQL ROLLBACK ;	
	return -1;
not_find:
	return 1;
}
/**********************************************************************
功能:通过日期号获取销售信息
参数:链表 起始日期 结束日期
返回值:0成功 非0失败
***********************************************************************/
int get_sale_byDATE(C_CLASS LINKLIST *mylink,char *beginDate,char *endDate)
{
	
	SALE temp;
	char b_date[9]="",e_date[9]="";
	strcpy(b_date,beginDate);
	strcpy(e_date,endDate);
	EXEC SQL WHENEVER SQLERROR GOTO error;
	EXEC SQL WHENEVER NOT FOUND GOTO not_find;
	EXEC SQL DECLARE sales_cursor CURSOR FOR SELECT * FROM T_SALE WHERE 
		sale_date BETWEEN TO_DATE(:b_date,'YYYYMMDD')
		AND TO_DATE(:e_date,'YYYYMMDD');
	EXEC SQL OPEN sales_cursor;
	while(1)
	{
		if (sqlca.sqlcode==0)
		{
				EXEC SQL FETCH sales_cursor into:temp;										
				mylink->insert_rear(mylink,&temp,sizeof(temp));				
				
		}
		else
		{
			
			break;
		}
			
				
							
	}
	EXEC SQL CLOSE sales_cursor;
	return 0;
error:
	EXEC SQL WHENEVER SQLERROR CONTINUE;
	EXEC SQL ROLLBACK ;	
	return -1;
not_find:
	return 1;
}
/**********************************************************************
功能:获取所有账户信息
参数:链表
返回值:0成功 非0失败
***********************************************************************/
int get_all_accounts(C_CLASS LINKLIST *mylink)
{
	STAFFS temp;
	EXEC SQL WHENEVER SQLERROR GOTO error;
	EXEC SQL WHENEVER NOT FOUND GOTO not_find;
	EXEC SQL DECLARE staffs_cursor CURSOR for SELECT *
		FROM T_EMPLOYEE;
	EXEC SQL OPEN staffs_cursor;
	while(1)
	{
		if (sqlca.sqlcode==0)
		{
				EXEC SQL FETCH staffs_cursor into:temp;										
				mylink->insert_rear(mylink,&temp,sizeof(temp));				
				
		}
		else
		{
			
			break;
		}
			
				
							
	}		
	EXEC SQL CLOSE staffs_cursor;
	return 0;
error:
	EXEC SQL WHENEVER SQLERROR CONTINUE;
	EXEC SQL ROLLBACK ;	
	return -1;
not_find:
	return 1;
}

/**********************************************************************
功能:插入账户数据
参数:账户结构体指针
返回值:0成功 非0失败
***********************************************************************/		
int Insert_Staff(STAFFS *staff)
{
	EXEC SQL WHENEVER SQLERROR GOTO error;
	EXEC SQL WHENEVER NOT FOUND GOTO not_find;
	EXEC SQL INSERT INTO t_employee
					 VALUES(:staff->staff_id,:staff->staff_name,:staff->staff_pwd,:staff->staff_type,:staff->remark);
	EXEC SQL COMMIT;
	return 0;
error:
	EXEC SQL WHENEVER SQLERROR CONTINUE;
	EXEC SQL ROLLBACK ;	
	return -1;
not_find:
	return 1; 
}
/**********************************************************************
功能:删除账户数据
参数:账户ID
返回值:0成功 非0失败
***********************************************************************/
int Delete_Staff(char *staff_id)
{
	EXEC SQL WHENEVER SQLERROR GOTO error;
	EXEC SQL WHENEVER NOT FOUND GOTO not_find;	
	EXEC SQL DELETE FROM t_employee
					 WHERE  cashier_id=:staff_id;
	EXEC SQL COMMIT;
	return 0;
error:
	EXEC SQL WHENEVER SQLERROR CONTINUE;
	EXEC SQL ROLLBACK ;	
	return -1;
not_find:
	return 1; 
}

/**********************************************************************
功能:插入商品数据
参数:商品结构体
返回值:0成功 非0失败
***********************************************************************/
int Insert_Goods(GOODS *goods)
{
	EXEC SQL WHENEVER SQLERROR GOTO error;
	EXEC SQL WHENEVER NOT FOUND GOTO not_find;
	EXEC SQL INSERT INTO t_goods
					 VALUES(:goods->bar_code,:goods->goods_name,:goods->unit,:goods->spec,
					 :goods->sale_price,:goods->purchase_price,:goods->stock,:goods->discount);
	EXEC SQL COMMIT;
	return 0;
error:
	EXEC SQL WHENEVER SQLERROR CONTINUE;
	EXEC SQL ROLLBACK ;	
	return -1;
not_find:
	return 1; 
}
/**********************************************************************
功能:删除商品数据
参数:条形码
返回值:0成功 非0失败
***********************************************************************/
int Delete_Goods(char *bar_code)
{
	EXEC SQL WHENEVER SQLERROR GOTO error;
	EXEC SQL WHENEVER NOT FOUND GOTO not_find;	
	EXEC SQL DELETE FROM t_goods
					 WHERE  bar_code=:bar_code;
	EXEC SQL COMMIT;
	return 0;
error:
	EXEC SQL WHENEVER SQLERROR CONTINUE;
	EXEC SQL ROLLBACK ;	
	return -1;
not_find:
	return 1; 
}
/**********************************************************************
功能:退货更新库存数量
参数:条形码 数量
返回值:0成功 非0失败
***********************************************************************/
int back_goods(char *barcode,int num)
{
	EXEC SQL WHENEVER SQLERROR GOTO error;
	EXEC SQL WHENEVER  NOT FOUND GOTO not_find;
	EXEC SQL UPDATE T_GOODS SET commodity_stock=commodity_stock+:num WHERE bar_code=:barcode;
	EXEC SQL COMMIT;
	return 0;
error:
	EXEC SQL WHENEVER SQLERROR CONTINUE;
	EXEC SQL ROLLBACK ;	
	return -1;
not_find:
	return 1; 
}

/**********************************************************************
功能:售出更新库存数量
参数:条形码 数量
返回值:0成功 非0失败
***********************************************************************/
int sale_goods(char *barcode,int num)
{
	EXEC SQL WHENEVER SQLERROR GOTO error;
	EXEC SQL WHENEVER  NOT FOUND GOTO not_find;
	EXEC SQL UPDATE T_GOODS SET commodity_stock=commodity_stock-:num WHERE bar_code=:barcode;
	EXEC SQL COMMIT;
	return 0;
error:
	EXEC SQL WHENEVER SQLERROR CONTINUE;
	EXEC SQL ROLLBACK ;	
	return -1;
not_find:
	return 1; 
}
/**********************************************************************
功能:删除销售信息
参数:销售ID号
返回值:0成功 非0失败
***********************************************************************/
int Delete_sale(char *sale_id)
{
	EXEC SQL WHENEVER SQLERROR GOTO error;
	EXEC SQL WHENEVER NOT FOUND GOTO not_find;	
	EXEC SQL DELETE FROM t_sale
					 WHERE  sale_id=:sale_id;
	EXEC SQL COMMIT;
	return 0;
error:
	EXEC SQL WHENEVER SQLERROR CONTINUE;
	EXEC SQL ROLLBACK ;	
	return -1;
not_find:
	return 1; 
}
/**********************************************************************
功能:插入销售明细信息
参数:销售ID
返回值:0成功 非0失败
***********************************************************************/
int Delete_sales_detail(char *sale_id)
{
	EXEC SQL WHENEVER SQLERROR GOTO error;
	EXEC SQL WHENEVER NOT FOUND GOTO not_find;	
	EXEC SQL DELETE FROM t_sales_detail
					 WHERE sale_id=:sale_id;
	EXEC SQL COMMIT;
	return 0;
error:
	EXEC SQL WHENEVER SQLERROR CONTINUE;
	EXEC SQL ROLLBACK ;	
	return -1;
not_find:
	return 1; 
}


⌨️ 快捷键说明

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