Module custquery.4gl (function insert_cust)

A new function, insert_cust, in the custquery.4gl module, contains the logic to add the new row to the customer table.

Function insert_cust:
01 FUNCTION insert_cust()
02
03   WHENEVER ERROR CONTINUE
04   INSERT INTO customer (
05     store_num, 
06     store_name, 
07     addr, 
08     addr2, 
09     city, 
10     state, 
11     zip_code, 
12     contact_name, 
13     phone 
14     )VALUES (mr_custrec.*)
15   WHENEVER ERROR STOP
16
17   IF (SQLCA.SQLCODE = 0) THEN
18     MESSAGE "Row added"
19   ELSE
20     ERROR SQLERRMESSAGE
21   END IF
22
23 END FUNCTION
Note:
  • Lines 04 thru 14 contain an embedded SQL statement to insert the values in the program record mr_custrec into the customer table. This syntax can be used when the order in which the members of the program record were defined matches the order of the columns listed in the SELECT statement. Otherwise, the individual members of the program record must be listed separately. Since there is no BEGIN WORK / COMMIT WORK syntax used here, this statement will be treated as a singleton transaction and the database driver will automatically send the appropriate COMMIT statement. The INSERT statement is surrounded by WHENEVER ERROR statements.
  • Lines 17 thru 21 test the SQLCA.SQLCODE that was returned from the INSERT statement. If the INSERT was not successful, the corresponding error message is displayed to the user.