Changes the value in a field or fields in one or more records from a relation in an open stream. Before you use a MODIFY statement, you must: o Start a READ_WRITE transaction o Establish a record stream with a FOR statement or START_STREAM statement The context variables referenced in a MODIFY statement must be the same as those defined in the FOR or START_STREAM statement.
1 – Examples
The following programs demonstrate the use of the MODIFY statement with a host variable. These programs: o Declare a host variable, badge, with the same data type and attributes as EMPLOYEES.EMPLOYEE_ID o Prompt for a value for badge o Change the status code for the employee with the specified badge The C program uses the read_string function to prompt for and receive a value for badge. For more information on read_string, see Appendix B of the "RDML Reference Manual".
1.1 – C Example
#include <stdio.h> DATABASE PERS = FILENAME "PERSONNEL"; extern void read_string(); static DECLARE_VARIABLE badge SAME AS EMPLOYEES.EMPLOYEE_ID; main() { read_string ("Employee ID: ", badge, sizeof(badge)); READY PERS; START_TRANSACTION READ_WRITE; FOR E IN EMPLOYEES WITH E.EMPLOYEE_ID = badge MODIFY E USING strcpy(E.STATUS_CODE,"1"); END_MODIFY; END_FOR; ROLLBACK; FINISH; }
1.2 – Pascal Example
program modify_with_host (input,output); DATABASE PERS = FILENAME 'PERSONNEL'; var DECLARE_VARIABLE badge SAME AS EMPLOYEES.EMPLOYEE_ID; begin write ('Employee ID: '); readln (badge); READY PERS; START_TRANSACTION READ_WRITE; FOR E IN EMPLOYEES WITH E.EMPLOYEE_ID = badge MODIFY E USING E.STATUS_CODE := '1'; END_MODIFY; END_FOR; ROLLBACK; FINISH; end.
2 – Format
(B)0[m[4mMODIFY[m qqq> context-var qqqqq> [4mUSING[m qqqqwqqqqqqqqqqqqqqwqqqqk mqq> on-error qj x x lqqqqqqqqqqqqqqqqqqqqqqqqqqqq<qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj x mqwqwqq> statement qqqqqqqqqqqqqqqqqqqqqqqqqqqwqwq> [4mEND_MODIFY[m x x x x x mqq> context-var.* qq> = qq> record-descr qqj x x x mqqqqqqqqqqqqqqqqqqqqqqqqqq<qqqqqqqqqqqqqqqqqqqqj
2.1 – Format arguments
context-var A context variable. A temporary name that you associate with a relation. You define a context variable in a relation clause. For more information see the entry on Context Variables. on-error The ON ERROR clause. Specifies host language statement(s) to be performed if an error occurs during the MODIFY operation. For more information see the entry on ON ERROR. statement Any valid RDML or host language statement to be executed within the MODIFY operation. Use a semicolon (;) at the end of each RDML, Pascal, or C statement. record-descr A valid host language record descriptor that matches all the fields of the relation. Each field of the record descriptor must match exactly the field names and data types of the fields in the Oracle Rdb relation referenced by the context variable.