Untitled
unknown
c_cpp
a year ago
1.9 kB
5
Indexable
// Complete this function void displayOrderStatus(Connection *conn, int orderId, int customerId) { Statement *stmt = nullptr; stmt = conn->createStatement("BEGIN customer_order(:1, :2); END;"); stmt->setInt(1, customerId); stmt->registerOutParam(2, Type::OCCIINT, sizeof(orderId)); stmt->executeUpdate(); orderId = stmt->getInt(2); if (orderId == 0) { cout << "Order ID is not valid." << endl; } else { string status; stmt = conn->createStatement("BEGIN display_order_status(:1, :2); END;"); stmt->setInt(1, orderId); stmt->registerOutParam(2, Type::OCCISTRING, sizeof(status)); stmt->executeUpdate(); status = stmt->getString(2); if (status.empty()) { cout << "Order does not exist." << endl; } else { cout << "Order is " << status << endl; } } conn->terminateStatement(stmt); } // Complete this function void cancelOrder(Connection *conn, int orderId, int customerId) { Statement *stmt = nullptr; int cancelStatus; // cancel_order(orderId IN NUMBER, cancelStatus OUT NUMBER) stmt = conn->createStatement("BEGIN cancel_order(:1, :2); END;"); stmt->setInt(1, orderId); stmt->registerOutParam(2, Type::OCCIINT, sizeof(cancelStatus)); stmt->executeUpdate(); cancelStatus = stmt->getInt(2); cout << cancelStatus << endl; switch (cancelStatus) { case 0: cout << "Order ID is not valid." << endl; break; case 1: cout << "The order has been already canceled." << endl; break; case 2: cout << "The order is shipped and cannot be canceled." << endl; break; case 3: cout << "The order is canceled successfully." << endl; break; default: break; } conn->terminateStatement(stmt); }
Editor is loading...
Leave a Comment