阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。 【说明】 某航空售票系统负责所有本地起飞航班的机票销售,并设有多个机票销售网点。以下为E一SQL编写的部分售票代码: EXEC soL SELECT balance INTO:

admin2016-09-08  16

问题 阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
    某航空售票系统负责所有本地起飞航班的机票销售,并设有多个机票销售网点。以下为E一SQL编写的部分售票代码:
    EXEC soL SELECT balance INTO:x FROM tickets WHERE flight=:flightno;
    printf(”航班%s当前剩余机票数为:%d\n请输入购票数:",  flightno,x);
    scanf("%d",  &a);
    EXEC soL UPDATE tickets SET balance =x =:a WHERE flight=:flightno;
    请根据上述描述,完成下列问题。
下面是改写的存储过程,其中flightno为航班号;a为购票数;result为执行状态:1表示成功,0表示失败;表tickets中的剩余机票数balance具有大于等于零约束。请补充完整。
    CREATE PROCEDRUE buy_ticket(char[]flightno IN,
(a),  int result OUT)
AS
    BEGIN
    UPDATE tickets SET balance=(b);
    WHERE flight=flightno;
    if csoLcode<>SUCCESS){  //soLcode为SQL语句的执行状态
(c);
    result=0;  return;
    }
    COMMIT;
(d)
END

选项

答案1.int a IN 2.balance一a 3.ROLLBACK(或ROLLBACKWORK) 4.result=1;retum。

解析 这是一个用存储过程实现购票的事务程序,存储过程参数部分给出了航班号和执行状态返回参数,应加入购票张数作为参数;修改剩余票数的UPDATE语句处需补充的是当前票数减去购票张数;SQL语句执行错误时应该进行事务回滚并退出程序,所有事务代码执行完成后提交,并返回。
转载请注明原文地址:https://jikaoti.com/ti/twN7FFFM
0

相关试题推荐
最新回复(0)