扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
foreach($cart as $pid => $quantity) { $stmt = db2_prepare($conn, "SELECT Name, Price FROM sqlproduct WHERE Pid = ?"); db2_execute($stmt, array($pid)); if($stmt) { list($prodName, $prodPrice) = db2_fetch_array($stmt); ?> | ||
Remove |
$ |
$stmt = db2_prepare($conn, "VALUES (NEXT VALUE FOR POid)"); db2_execute($stmt); list($POid) = db2_fetch_array($stmt); foreach($cart as $pid => $quantity) { $xquery = $t/product/description/price/text()'; $stmt = db2_prepare($conn, "SELECT XMLSERIALIZE(XMLQUERY($xquery' PASSING BY REF T.DESCRIPTION AS \"t\" RETURNING SEQUENCE) AS VARCHAR(8)) FROM xmlproduct AS t WHERE Pid = ?"); db2_execute($stmt, array($pid)); list($price) = db2_fetch_array($stmt); |
$PO .= " } |
$stmt = db2_prepare($conn, "INSERT INTO xmlporder (POid, POrder) VALUES (?, ?)"); db2_execute($stmt, array($POid, $PO)); |
采购订单(PO)在关系数据库中存储为 CLOB(而不分割)。完整存储的好处是任何由于采购订单的变化(如运输等其他信息)而发生的模式演化都不会有什么影响。将 PO 存储为 CLOB,则可以在应用程序代码中使用 DOM 来检索相关信息。但是,关系存储的简单和模式演化的好处会被查询性能的降低所抵消,当我们尝试创建采购历史记录报告时会发现这一点。
发票
发票在付帐时返回给客户。该发票是通过查询刚刚创建的采购订单而生成的。因为采购订单不包含详细产品信息,所以需要进行单独查询,以便从产品表中查找产品详细信息。
图 9. 发票
DB2 Viper
$xquery = for $po in $t/purchaseOrder let $sum := for $item in $po/items/item return $item/@quantity * $item/@price let $items := for $item in $po/items/item |
let $name := for $i in db2-fn:xmlcolumn("XMLPRODUCT.DESCRIPTION")/product where $i/@pid = $item/@pid return $i/description/name/text() return | ||
{$name} |
{xs:string($item/@quantity)} |
${xs:string($item/@price)} |
Total | ${sum($sum)} |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者