| 
									FORM BLOCK and TRANSACTIONAL TRIGGERS   
									Introduction 
									Your 
									organization wants to use the �managers_pkg� 
									package that you created to insert, delete, 
									update, lock, and count a record. 
									You have been 
									assigned to develop an application form to 
									manipulate the managers table using 
									transactional triggers. 
									  
									Database 
									Objects 
									Open the FORMS 
									builder. In the FORMS builder window, click 
									on the "+" sign next to "Database objects" 
									to see its entire object. If the database is 
									not open, you will be prompted a login 
									window to log in to the database. 
									After 
									successful login, you will see a �+� sign 
									next to the Database Objects. Click on the 
									�+� sign to expand it. All the schemas in 
									the database will be listed.
 
									Check your 
									created packageExpand the ORACLE schema. Then, expand the 
									"Stored Program Units" item. You should at 
									least see the last package (MANAGERS_PKG) 
									that you created. There must be two items. 
									One for package specification and the other 
									for package body. There should not be any 
									�*� next to them. An �*� indicates that your 
									package was not compile successfully.
 
 Open the "Managers_PKG" package body. Browse 
									through the package body that had been 
									created during the previous hands-on 
									exercise. We are going to use the delete, 
									update, and insert procedures to manipulate 
									the "FORM BLOCK" object. Then close 
									"WINDOWS."
 
 Browse through the package specification and 
									then close the window.
 
 
									Save a ModuleIn 
									the Object Navigator, change the "MODULEnn" 
									name to "MANAGERS_INFORMATION."
 
 Create a Data Block
 
									In the �Object 
									Navigator� window, highlight "Data Blocks,� 
									and click on the "create� icon. 
									  
									Data Block 
									Wizard 
									In the �New 
									Data Block� window, choose the default 
									option �Data Block Wizard� and click "OK." 
									  
									Welcome Data 
									Block 
									In the 
									�Welcome Data Block Wizard� window click 
									�NEXT.� 
									  
									Type of Data 
									Block 
									Select the 
									type of data block you would like to create 
									by clicking on a radio button. Select the 
									default option �Table or View� and then 
									click �NEXT� again. 
									  
									Select Table 
									Click on 
									�browse.� In the �Tables� window, highlight 
									the "MANAGERS� table; then click "OK." 
									  
									Select columns 
									for the Data Block Wizard 
									To choose all 
									columns, click on the two arrow signs in the 
									�Data Block Wizard� window. To choose 
									selected columns, click on the one arrow 
									sign. For this hands-on exercise select all 
									columns, and click �next.� 
									  
									Layout Wizard 
									End of the 
									Data Block Wizard and beginning of the 
									Layout Wizard 
									In the 
									�Congratulations� screen, select the "Just 
									Create the data block" option and click 
									"FINISH." You can also use the Data Block 
									Wizard to modify your existing data block. 
									Simply select the data block in the Object 
									Navigator and click the Data Block Wizard 
									toolbar button, or choose �Data Block 
									wizard� from the �Tools� menu. 
									  
									Open and 
									change a property palette sheet 
									In the Object 
									Navigator, right click on the �MANAGERS" 
									data block item to open its Property 
									Palette.
 
									In the its 
									property palette, change the "Query Data 
									Source Type" item to "Procedure," change the 
									"Source Name" item to "MANAGERS_PKG.MANAGERS_REFCUR,� 
									change the "Source Arguments" item, in the 
									�Query Data Source Arguments� window, type "MANAGERS_DATA� 
									in the �Argument Name� box, change the Type 
									item to "REFCURSOR,� type "MANAGERS_PKG.C_MANAGERS� 
									in the Type Name box, set the "Mode" to "IN 
									OUT,� and click �OK� to close the window. 
									Back to property palette (Data Block: 
									MANAGERS), change the "DML Data Target Type" 
									item to "Transactional Triggers." Then close 
									the window.
 
									Create a 
									triggerIn 
									the Object Navigator, highlight "Triggers" 
									for the MANAGERS data block and click on the 
									"Create" icon.
 
 
									ON-INSERT 
									triggerIn 
									the Trigger window, type the letter "O," 
									then "I," to select the ON-INSERT trigger, 
									and click "OK."
 
 
									PL/SQL EditorIn 
									the PL/SQL window, write a stored procedure 
									to insert a record into the "MANAGERS" 
									table.
 
									(PL/SQL 
									Editor) 
									DECLARE 
									r 
									managers_pkg.managers_rec; 
									BEGIN 
									r.empno := :managers.empno; 
									r.ename := :managers.ename; 
									
									managers_pkg.managers_insert ( r ); 
									END; 
									Notice that the "MANAGERS_INSERT" procedure 
									was already created during the previous 
									Hands-On.
 
 
									Compile 
									ON-INSERTCompile the trigger.
 
 
									Create ON-LOCK 
									triggerIn 
									the PL/SQL Editor, click on "New" and in the 
									Trigger window, type the letter "O" and "L� 
									to get the ON-LOCK trigger. Then click on 
									"OK."
 
 
									PL/SQL for 
									ON-LOCK triggerIn 
									the PL/SQL Editor, write a stored procedure 
									to lock a record. Use "MANAGERS_LOCK" that 
									was created from the previous Hands-On.
 
 
									(PL/SQL 
									Editor) 
									managers_pkg.managers_lock 
									(:managers.empno); 
									  
									Compile ON-LOCK trigger
 
									Compile the 
									trigger.
 
									Create 
									ON-UPDATE triggerIn 
									the PL/SQL Editor, click on "New" and in the 
									Trigger window, type the letter "O" and "U" 
									to get the ON-UPDATE trigger. Then click 
									"OK."
 
 In the PL/SQL Editor, write a stored 
									procedure to update a record. Use the 
									"UPDATE" procedure from your created 
									package.
 
									(PL/SQL 
									Editor) 
									DECLARE 
									r 
									managers_pkg.managers_rec; 
									BEGIN 
									r.empno := 
									:managers.empno; 
									r.ename := 
									:managers.ename; 
									
									managers_pkg.managers_update ( r ); 
									END; 
									Compile then 
									trigger. 
									  
									Create 
									ON-DELETE trigger 
									In the PL/SQL 
									Editor, click on "New" and in the Trigger 
									window, type the letter "O" and "D," select 
									the ON-DELETE trigger. Then click "OK."
 In the PL/SQL Editor, write a stored 
									procedure to update a record. Use the 
									"Delete" procedure from your created 
									package.
 
									(PL/SQL 
									Editor) 
									DECLARE 
									r 
									managers_pkg.managers_rec; 
									BEGIN 
									r.empno := 
									:managers.empno; 
									r.ename := 
									:managers.ename; 
									
									managers_pkg.managers_delete ( r ); 
									END; 
									Compile it. 
									  
									Create 
									ON-COUNT trigger 
									In the PL/SQL 
									Editor, click on "New" and in the Trigger 
									window, type the letter "O" and "C," select 
									the ON-COUNT trigger. Then click "OK."
 In the PL/SQL Editor, write a stored 
									procedure to update a record. Use the "COUNT_QUERY_" 
									procedure from your created package.
 
									(PL/SQL 
									Editor) 
									DECLARE 
									r NUMBER; 
									BEGIN 
									r := 
									managers_pkg.count_query_; 
									
									SET_BLOCK_PROPERTY (�managers�, query_hits, 
									r); 
									END; 
									Compile the 
									trigger and close the window.
 Open 
									Layout Wizard
 
									Go to the Main 
									menu, choose "Tools" sub-menu and select the 
									"Layout Wizard" option.
 In the Welcome window, click on "next" to 
									continue.
 
 
									Select canvas 
									In the �Layout 
									Wizard� window, select the "new canvas" 
									option. Select "content," then click �Next.� 
									  
									Select Columns 
									for the Layout Wizard 
									In the �Layout 
									Wizard� window, select all the columns. 
									These are the columns that you want to 
									display them on the canvas. Then click 
									�Next.� 
									  
									Change your 
									objects appearances 
									Change size or 
									prompt if needed. In this window, you can 
									enter a prompt, width, and height for each 
									item on the canvas. You can change the 
									measurement units. As a default the default 
									units for item width and height are points. 
									When you change size, click �Next.� 
									Select a layout style
 
									Select a 
									layout style for your frame by clicking a 
									radio button. Select "Form," if you want one 
									record at a time to be displayed. Select 
									�Tabular,� if you want more than one record 
									at a time to be displayed. Select "Forms," 
									and then click �next.� 
									  
									Record layout 
									Type the Frame 
									Title (Managers Name), Records Displayed, 
									Distance Between Records values and 
									checkmark the �Display Scrollbar� box, when 
									you use multiple records or the �Tabular� 
									option. Then click �Next.� 
									  
									Congratulation 
									Screen 
									In the 
									�Congratulations� window, click "Finish." 
									Now, run the program to test it. Insert 
									records into the Managers table. Delete 
									and/or update a record. Then save the 
									transactions.
 
 Close the application and save the FORM.
 
									  
									Questions: 
									Q: What is a 
									transactional trigger? 
									Q: How do you 
									use a stored procedure in stead of tables to 
									create a form? 
									Q: When do you 
									use a transactional trigger? 
									   |