## Using inline stored functions to exploit "array updates" in ## a client-server environment. . . . varchar dept[5]; varchar wk_dte[10]; double amt; . . . while ( read_next_record() != EOF ) { EXEC SQL update weekly_sales set retail_amount = retail_amount,0) + :amt where dept_code = :dept and week_end_dte = to_date(:wk_dte, ‘ddmmyyyy’); if (sqlca.sqlerrd[2] == 0) /* Update Failed so Must Do an Insert */ { EXEC SQL insert into weekly_sales (:dept, to_date(:wk_dte, ‘ddmmyyyy’), :amt); } } . . . ## This code can be rewritten utilizing an inline function call. . . . varchar dept[100][5]; varchar wk_dte[100][10]; double amt[100]; . . . while ( read_next_record() != EOF ) { EXEC SQL for 100 update weekly_sales set retail_amount = retail_amount,0) + :amt where dept_code = :dept and week_end_dte = to_date(:wk_dte, ‘ddmmyyyy’); if (sqlca.sqlerrd[2] < 100) /* Not ALL Updates Succeeded */ { EXEC SQL for 100 insert into weekly_sales select :dept, to_date(:wk_dte, ‘ddmmyyyy’), :amt from dual where NOT EXISTS ( select 1 from weekly_sales where dept_code = :dept and week_end_dte = to_date(:wk_dte,‘ddmmyyyy’) ); } } . . .