📄 db.pc
字号:
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 + -