Figure 8: Free-format RPG integrated with SQL
h nomain d getOrderCount pr 10i 0 d inCustNumber 9b 0 const d outSqlState 5a d outSqlMsg 256a ******************************************* p getOrderCount b export ******************************************* * Returns the number of orders in the table * for the specified customer number d getOrderCount pi 10i 0 d inCustNumber 9b 0 const d outSqlState 5a d outSqlMsg 256a d ordercount s 10i 0 /free outSqlMsg = *blanks; exec sql SELECT count(*) into :orderCount FROM allOrders WHERE customer_no = :inCustNumber; outSqlState = sqlState; if %subst(sqlState:1:2) <> '00'; exec sql GET DIAGNOSTICS CONDITION 1 :outSqlMsg = MESSAGE_TEXT; orderCount = 0; endif; return orderCount; /end-free p getOrderCount e