After you prepare a statement, you can execute it multiple times. Statements other than SELECT statements, and SELECT statements that return only a single row, are executed with the EXECUTE statement.
The following IBM Informix ESQL/C code prepares and executes a multistatement update of a bank account:
EXEC SQL BEGIN DECLARE SECTION; char bigquery[270] = "begin work;"; EXEC SQL END DECLARE SECTION; stcat ("update account set balance = balance + ? where ", bigquery); stcat ("acct_number = ?;', bigquery); stcat ("update teller set balance = balance + ? where ", bigquery); stcat ("teller_number = ?;', bigquery); stcat ("update branch set balance = balance + ? where ", bigquery); stcat ("branch_number = ?;', bigquery); stcat ("insert into history values(timestamp, values);", bigquery); EXEC SQL prepare bigq from :bigquery; EXEC SQL execute bigq using :delta, :acct_number, :delta, :teller_number, :delta, :branch_number; EXEC SQL commit work;
The USING clause of the EXECUTE statement supplies a list of host variables whose values are to take the place of the question marks in the prepared statement. If a SELECT (or EXECUTE FUNCTION) returns only one row, you can use the INTO clause of EXECUTE to specify the host variables that receive the values.
Home | [ Top of Page | Previous Page | Next Page | Contents | Index ]