嵌入式SQL习题答案.docVIP

  • 12
  • 0
  • 约5.38千字
  • 约 6页
  • 2018-04-03 发布于河南
  • 举报
嵌入式SQL习题答案

9.3.1 a) void closestMatchPC() { EXEC SQL BEGIN DECLARE SECTION; char manf[], SQLSTATE[6]; int targetPrice, float tempSpeed, speedOfClosest; char tempModel[4], modelOfClosest[4]; int tempPrice, priceOfClosest; EXEC SQL END DECLARE SECTION; EXEC SQL DECLARE pcCursor CURSOR FOR SELECT model, price, speed FROM PC; EXEC SQL OPEN pcCursor; EXEC SQL FETCH FROM pcCursor INTO :modelOfClosest, :priceOfClosest, :speedOfClosest; if(NOT_FOUND) /* print message and exit */ ; while(1) { EXEC SQL FETCH pcCursor INTO :tempModel, :tempPrice, :tempSpeed; if (NOT_FOUND) break; if(|tempPrice-targetPrice||priceOfClosest-targetPrice|) { modelOfClosest = tempModel; priceOfClosest = tempPrice; speedOfClosest = tempSpeed; } } EXEC SQL SELECT maker INTO :manf FROM Product WHERE model = :modelOfClosest; printf(manf=%s, model=%d, speed=%d\n, manf, modelOfClosest, speedOfClosest); EXEC SQL CLOSE CURSOR pcCursor; } void withinBudget() { EXEC SQL BEGIN DECLARE SECTION; int total_budget, rest_budget, pc_price, printer_price; char pc_model[4], printer_model[4], color[6];float min_speed; EXEC SQL END DECLARE SECTION; EXEC SQL PREPARE query1 FROM ‘SELECT model, price FROM PC WHERE speed = ? AND price = ? ORDER BY price’; EXEC SQL PREPARE query2 FROM ‘SELECT model, price FROM Printer WHERE price = ? AND color = ? ORDER BY price’; EXEC SQL DECLARE cursor1 CURSOR FOR query1; EXEC SQL DECLARE cursor2 CURSOR FOR query2; /* ask user for budget the minimum speed of pc */ /* get the cheapest PC of the minimum speed */ EXEC SQL OPEN cursor1 USING :min_speed, :total_budget; EXEC SQL FETCH cursor1 INTO :pc_model, :pc_price; if (NOT_FO

文档评论(0)

1亿VIP精品文档

相关文档