问答题
阅读以下说明,回答问题1至问题4。
【说明】
某商场客户-商品数据库中各关系模式如下:
客户(客户号,姓名,性别,年龄)
商品(商品号,名称,型号,品牌,单价,库存)
销售(流水号,客户号,商品号,数量,日期)
采购(商品号,数量)
其中:
1)一种品牌的同一名称商品可以有多个型号,商品的库存有大于等于0约束:
2)销售表记录每一笔销售,每销售一件商品,其库存都要做相应的修改。
现假定已经建立了该数据库及上述四个基本表。
【问题3】
实现销售业务的嵌入式SQL代码段(嵌入C语言)如下,假设销售表的流水号由系统自动生成。请将空缺部分补充完箍。
…
EXEC SQL BEGIN DECLARE SECTION;
/*
销售:商品号,客户号,数量,日期*/
char pno[6]; char cno [6];
int quantity; char date [10];
EXEC SQL END DECLARE SECTION;
…
EXEC SQL CONNECT TO DEFAULT;
EXEC SQL
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
EXEC SQL INSERT INTO
销售(商品号,客户号,数量,日期)
VALUES( (i)
);
EXEC SQL UPDATE 商品 SET 库存= (i)
WHERE 商品号=:pno;
if(SQLCA.SQLCODE !=0){
printf
("商品%s库存不满足本次购买数量,交易失败!",pno);
EXEC SQL ROLLBACK
WORK;
} else{
EXEC SQL
(k) ;
}
EXEC SQL DISCONNECT
CURRENT;
…