## Using inline stored functions to exploit "array selects" in ## a client-server environment. . . . varchar dept[100][5]; varchar wk_dte[100][10]; double amt[100]; double discount[100]; . . . EXEC SQL select dept_code, to_date(:week_end_dte, ‘ddmmyyyy’), retail_amount into :dept, :wk_dte, :amt from weekly_sales; for (i = 0; i <= sqlca.sqlerrd[2]; i++) { if (amt[i] <= 10000) /* Get Associated Data */ { EXEC SQL select . . . into :discount[i] from discount_rates where to_date(:wk_dte[i],’ddmmyyyy’) <= sysdate and disc_amt <= :amt[i]; } else . . . . . . if (amt[i] > 10000 && strcmp(dept[i],”1000”) == 0) ) { EXEC SQL select . . . into :discount[i] from mgr_discount where disc_amt <= :amt[i]; } else discount[i] = 0; } ## This code can be rewritten utilizing an inline function call. . . . varchar dept[100][5]; varchar wk_dte[100][10]; double amt[100]; double discount[100]; . . . EXEC SQL select dept_code, to_date(:week_end_dte, ‘ddmmyyyy’), retail_amount, calc_discount(dept_code, week_end_dte, retail_amount) into :dept, :wk_dte, :amt, :discount from weekly_sales; . . .