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