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