Você está na página 1de 19

FORMS-6i

++++++++++++++ FORMS +++++++++++++++++++++++++++++++++++++++++++++++++++++++


1) What are the Back ground processes in Oracle and what are they.
There are basically 9 Processes but in a general system we need to mention the first five background processes. They
do the house keeping activities for the Oracle and are common in any system.

2) The various background processes in oracle are

Data Base Writer (DBWR):


Data Base Writer Writes Modified blocks from Database buffer cache to Data Files. This are required since the data is
not written whenever a transaction is committed.

Log Writer (LGWR):


Log Writer writes the redo log entries to disk. Redo Log data is generated in redo log buffer of SGA. As transaction
commits and log buffer fills, LGWR writes log entries into a online redo log file.

System Monitor (SMON):


The System Monitor performs instance recovery at instance startup. This is useful for recovery from system failure

Process Monitor (PMON):


The Process Monitor performs process recovery when user Process fails. Pmon Clears and Frees resources that
process was using.

Check Point (CKPT):


At Specified times, all modified database buffers in SGA are written to data files by DBWR at Checkpoints and
Updating all data files and control files of database to indicate the most recent checkpoint

Archieves(ARCH):
The Archiver copies online redo log files to archival store when they are busy.

Recoveror(RECO):
The Recoveror is used to resolve the distributed transaction in network.

Dispatcher (Dnnn):
The Dispatcher is useful in Multi Threaded Architecture

Lckn:
We can have up to 10 lock processes for inter instance locking in parallel sql.

3) What is meant by Developer 2000, what are the developer 2000 tools?

Oracle co-operative Development Environment (CDE) application development tools are called Developer 2000. It
maximize developer Productivity since these tools share an integrate development Environment.

Developer 2000 tools are


1) Oracle * Forms 4.5 3) Oracle * Graphics 2.5
2) Oracle * Report 2.5 4) Oracle * Book.

4) What is Oracle Forms?

Oracle forms are a powerful application-development tool for building client-server applications that are portable to a
variety of GUI & character mode platforms. It is a part of Developer 2000.

5) What are the components of oracle forms?

Oracle forms Designer: It is an application development environment where you work with three types of Oracle forms
modules. Forms, menus & libraries. The Designer includes a set of visual tools that allow you to create objects, set their
properties and write code for your applications.

Oracle forms Generate: It is used to generate application files to create executable run files for
runtime deployment. Generating a form module compiles all of its code objects and creates an .FMX run file.

Oracle forms run form: The run form component is the runtime engine that form operates use
to run a finished Oracle forms application.

6) What are the three types of Oracle form modules?


By Satish Gonare 1
FORMS-6i
2

The three types of Oracle forms Modules are


Forms: Forms are collections of objects and code, including windows, text items, check
boxes, buttons, trigger and procedures. A form can include any number of separate windows.
Menus: Menus are collections of menu objects (Main menu, pull-down menu, menu items)
and menu command code.
Libraries: Libraries are collections of PL/SQL procedures, functions, and Packages that can
be called from other modules. You can integrate form, menu & library modules as
needed to build complete application.

7) What are the different objects in forms?


Forms-Blocks-Record-Items
Form- composed of a group of related blocks
Block-stores info about a single table
Base table block-contains items from a single table
Control block-contains items not related to a table (ie. buttons, etc.)
Record -a row from the database
-single record (display one record at a time)
-multi record (display more than one record at a time)
Item in a block - a field in the database or other field
Other fields may be buttons, check boxes, etc. (from toolbar)

8) When you create a form module, you work with various objects specific to form modules, including:
A window is, by itself, an empty frame. Windows have a title bar and handles for
interaction, allowing end users to scroll, move, and resize the window.
Canvases are background objects on which you place the interface objects and graphic
elements that end users interact with when they use a Form Builder application.
Blocks are logical containers for Form Builder items, and are the basic unit of
information in a form module. A form module typically contains multiple blocks.
Items are interface objects that display information to end users and allow them to interact with the application.

9) Introducing Blocks
Blocks provide a mechanism for grouping related items into a functional unit. Just as database tables consist of
related columns and rows, blocks contain related items that allow end users to store, display, and manipulate data records.

There are two types of blocks:


A data block is associated with or bound to - a database table or view, or a set of stored procedures. Most often, data
blocks are based on a single database table. When you create a data block, you link table or view columns with Form
Builder interface objects. At runtime, end users manipulate interface items in the data block to query, insert, update, and
delete data records in the database. A data block automatically includes functionality to support these interactions with the
table or view to which the block corresponds.
A control block has no association with a database table or view; its objects do not relate to database columns.

10) Using the Data Block Wizard


The Data Block Wizard is a powerful tool that enables you to quickly and easily create data blocks for use in your
application. When you use the wizard to create a data block, it can automatically generate code to enforce integrity
constraints. The Data Block Wizard can be re-entered after initial creation of the data block, enabling you to modify an
existing data block, even if it was not originally created with the wizard.

11) What is meant by Oracle forms items? what are the different types of oracle forms items?
Items are interface objects that display information to users and allow them to interact with your application.

12) Oracle forms support 10 types of interface items

(1) Push buttons (2) Check boxes


(3) Radio buttons (4) List items
(5) Text items (6) Display items
(7) OLE items (8) Chart items (Oracle graphics chart items)
(9) VBX controls (10) Image items

13) How to start the Oracle forms designer through operating system prompt?
Syntax:-
f45des [module] [user-id/password] [parameters]
Ex:-
f45des c:\accounts.fmb Scott\tiger module-access=database\file
By Satish Gonare 2
FORMS-6i
3

Module-type=forms\forms\menu\library
Or
c:\ > F45des accounts Scott/tiger module-access = database module type=form

14) What is the object Navigator? What are the operations, you can perform in the object Navigator?
The object Navigator provides a hierarchical display of the objects in all open
Modules. Objects are grouped under the appropriate node. For example, all of the windows defined in a form module
appear under the Windows node. The Windows node, in turn, appears under the appropriate form module object. The top-
level nodes in the navigator include forms, Menus, Libraries, Build-in packages and Database objects.

You can perform the following operations in the object Navigator.

a) Expand and collapse entries to locate objects quickly.


b) Select objects.
c) Create and delete objects.
d) Copy and move objects with in and between modules.
e) Switch between views to display the objects you want to work with.
f) Locate objects quickly by searching with fast search.
g) Quickly display the code associated with objects such as triggers and program units.

15) Define the term Layout Editor?


The Layout Editor is a graphical design facility for creating and arranging
Interface items and boilerplate text and graphics in a form. In the Layout Editor, you work on a single Canvas-view.
Canvas-views are displayed in windows at runtime. You specify the window a Canvas-view will be displayed in by setting
the Canvas-view's window property.

16) What are the difference between the Items and the Boilerplate graphics?
Items
Items are the interface controls (text items, check boxes, radio graphs, etc.) that operators interact within your
forms. Every item belongs to a block, and is listed under the block in the object Navigator hierarchy. You can create items
in the object Navigator and in the new block window, or by drawing them with the item tools in the Layout Editor.

Boilerplates
Boilerplate graphics are the lines, circles, text and images that you draw or import onto a canvas-view. Boilerplate
graphics are associated with the canvas-view on which you place them. Deleting a canvas view deletes all of its boiler
graphics objects.
Boilerplate objects are not named objects. Boilerplate objects do not appear in the object Navigator and their properties
are not displayed in the properties window.
We can create boilerplate graphics on the desired canvas-view in the Layout Editor. We cannot create boilerplate objects
in the object Navigator.

17) What is meant by PL/SQL Editor? What are the PL/SQL Editor commands?

PL/SQL Editor:
The PL/SQL Editor is where you enter and compile code objects. Code objects in oracle forms Including event
triggers, subprograms (functions and procedures), menu item commands, menu startup Code and packages.

PL/SQL Editor commands


Compile: Compiles the code in the source code field. The compiler detects syntax errors, semantic errors, and
references to non-existent objects, procedures and functions.
Revert: Restores the program unit to its state at the last apply or revert operation. If no apply or revert operations have
occurred, the program unit is returned to its original state.
New: Displays the New Program Unit dialog, where you can specify the type and name of the program unit you wish to
create.
Delete: Deletes the displayed program unit, with confirmation.
Close: Closes the current PL/SQL Editor.
Source pane: Used to enter and edit PL/SQL program unit source text.
Compilation Messages pane: Displays error messages, if any, generated as a result of compilation. Clicking on an error
message highlights it, scrolls the Source pane to the offending source statement, and positions the text cursor at the
location of the error.
Status Bar: Displays status information about the current code object,
By Satish Gonare 3
FORMS-6i
4

For ex: <Not modified/modified>


<Not compiled/successfully compiled/ compiled with errors>

18) About module file formats


Form, menu, and library modules created in Form Builder are stored in binary format, can be saved to files or to
the database, and are portable across platforms.
When you compile a binary module, Form Builder creates a platform-specific run file. You can also use the Forms
Compiler to create a human-readable text file that is portable across platforms.

The following table shows the file extensions for each type of module & storage format.

Module Binary (Design) Text Executable Run file


Form .FMB .FMT .FMX
Menu .MMB .MMT .MMX
PL/SQL Library .PLL .PLD .PLX, .PLL
Object Library .OLB .OLT NA

The default file extensions indicate the module type and storage format:
.FMB Form Module Binary
.FMT Form Module Text
.FMX Form Module Executable
.MMB Menu Module Binary
.MMT Menu Module Text
.MMX Menu Module Executable
.PLL PL/SQL Library Module Binary
.PLD PL/SQL Library Module Text
.PLX PL/SQL Library Module Executable
.OLB Object Library Module Binary
.OLT Object Library Module Text

19) What is lov?


Lov represents an internal Form Builder data structure that has a column/row framework similar to a database table.
An LOV object is a scrollable popup window that provides the end user with either a single or multi-column selection list.
End users cannot work in other windows when an LOV is displayed. End users can move and resize LOVs if the runtime
window manager supports doing so.

LOVs provide the following functionality:


LOVs can be displayed by end user request (when an LOV is available), when the end user navigates to a text
item with an associated LOV, or programmatically, Independent of any specific text item.
LOV auto-reduction and search features allow end users to locate specific values.
LOV values that are selected by the end user can be assigned to form items according to the return items you
designate.
At design time, an LOV can be attached to one or more text items in the form.
LOV values are derived from record groups.

20) Which Oracle forms object associate with LOV? Or From which oracle forms LOV values will be derived?
LOV is always associated with a named record group. LOV values are derived from record group.

21) What is meant by LOV Return Items? What are the different types of LOV Return Items?
When the operator selects a choice from the LOV, oracle forms assigns the values from the columns in the selected
record to the items called return items.
The return item can be
i) An item ii) A global variable iii) A form parameter
For ex: An item Customer.name; Global Variable Global.my-global and Form parameter
Parameter.my-parameter

22) What is LOV hidden Column?


A hidden column of an LOV is any column whose values are not displayed in the LOV window. The display width
property is zero for hidden column. We can designate a return item for a hidden column.

23) What are the built-in- subprograms associated with an LOV object?
1) FIND-LOV 2) SHOW-LOV
3) LIST-VALUES 4) GET-LOV-PROEPRTY
5) SET-LOV-PROPERTY

By Satish Gonare 4
FORMS-6i
5

24) Can we display the same LOV at more than one place in an application? how?
Yes, we can display the same LOV at more than one place in an application; you can accomplish this by using global
variable or form parameters as return items in conjunction with the SHOW_LOV built-in subprogram.
For ex, you might define an LOV based on 4 column record group that returns values into 4 global variables, named global.
One through global. Four Trigger texts:

Declare
LOV-id Boolean;
Begin
If show-lov ('my-lov') then
: Block1. item1:=: global. One;
: Block1. item2:=: global. Two;
: Block1. item3:=: global. Three;
: Block1. item4:=: global. Four:
End;

25) Is it possible to replace an LOV's record group with a different record group?
We can replace an LOV's record group with a user record group. The new record group must * exist in the form when
SET_LOV_PROPERTY is called.
* have column names & types that match the column names and types in the record group being replaced.
SET_LOV_PROPERTY ('my-lov', Group-Name, 'new-group');

26) What is the difference between static and dynamic lov


The static lov contains the predetermined values while the dynamic lov contains values that come at run time.

27) What are Record Groups?


A record Group is an internal oracle forms data structure that has a column/row framework similar to a database table,
record groups are separate objects that belong to the form module in which they are defined.
A record group can have an unlimited number of column of type CHAR, LONG,NUMBER or DATE provided that the total
number of columns does not exceed 64k.Record group column names cannot exceed 30 characters.
A record group built from a query can store records from database tables much like a database view; with the added
advantage that record group is local to the form builder rather than existing in the database. Also the select statement used
to create and populate a query record group can be constructed dynamically at runtime.

28) How many types of record groups are there and what are they?
There are three types of record groups they are
1) Query Record Group
2) Non-query Record Group
3) Static Record Group

29) What is Query Record Group?


A query record group is a record group that has an associated SELECT statement. The columns in a query record
group derive their default names, data types and lengths from the database columns referenced in the SELECT statement.
The records in a query record group are the rows retrieved by the query associated with that record group. Query record
group can be created and modified at design time or at runtime.
We can create query record group first and then associate LOV to it or when LOV is created, automatically record group
gets created.

30) What is Non-query Record Group?


A Non-query record group is a group that does not have an associated query, but whose structure and values can be
modified programmatically at runtime. Non-query record groups can be created and modified only during run time.

31) What is Static Record Group?


A static record group is not associated with a query, instead we define its structure and row values at design time, and
they remain fixed at runtime. Static record groups can be created only at design time.

32) What are the record groups, we can create at design time?

* Query Record Group


* Static Record Group

33) What are the record groups, we can create at runtime?

* Query Record Group


* Non-Query Record Group
By Satish Gonare 5
FORMS-6i
6

34) If you create a record group programmatically what are all the operations you can perform on the group?

* Modify its structure by adding columns & rows


* Populate the group
* Modify the query associated with a query a query group
* Add and delete rows
* Set and get column values
* Mark and unmark rows as "selected"

Some important instructions for record group

* You cannot programmatically add rows to a static record group


* You cannot delete rows from a static record group
* You cannot delete a group that was created at design time
* You cannot set the values of cells in a static record group
* You cannot add columns to groups that were created at design time

35) If you want to add a new column to an existing record group, what are all the conditions that record group
must meet?
The group must be a query or non-query group that was created programmatically.
The group cannot currently have any rows.

36) What is the Difference between a post query and a pre query?
A post query will fire for every row that is fetched but the pre query will fire only once.

37) Can we create two blocks with the same name in form 3.0 ?
No.

38) Differentiate Function Key Trigger and Key Function Trigger?


Function key triggers are associated with individual Run form function keys. A function key triggers fires only
when an operator presses the associated function key. The actions defined in a function key trigger replace the default
action that the function key would normally perform.
A Key-Fn trigger fires when an operator presses the associated key. You can attach Key-fn triggers to 10 Keys or
key sequences that normally do not perform any Form Builder operations. These keys are referred to as Key-F0 through
Key-F9. Before you can attach key triggers to these keys, you or the DBA must use Oracle Terminal to map the keys to the
appropriate functions.

39) How do you trap the error in forms?

Using On-Message or On-Error triggers.

40) State the order in which these triggers are executed?


(POST-FIELD, ON-VALIDATE-FIELD, POST-CHANGE and KEY-NEXTFLD.)

KEY-NEXTFLD, POST-CHANGE, ON-VALIDATE-FIELD, POST-FIELD.

41) A query fetched 10 records How many times does a PRE-QUERY Trigger will get executed ?
PRE-QUERY fires once.
POST-QUERY fires 10 times.

42) When PRE-QUERY trigger executes?


Fires during Execute Query or Count Query processing, just before Form Builder constructs and issues the SELECT
statement to identify rows that match the query criteria.

43) How can you execute the user defined triggers in forms 3.0?
User named trigger has the unique user_supplied name because of this it cant be called or fired individually. It has to
be executed by calling it from within a built-in trigger, menu_item command or user named subprogram.
The built in procedure Execute_Trigger (trigger_name) is use to call a user defined trigger.

44) When does an on-lock trigger fire?


It will fires whenever SQL * Forms would normally attempt to lock a row.
By Satish Gonare 6
FORMS-6i
7

Post-Block is a
a. Navigational Trigger.
b. Key trigger.
c. Transaction Trigger.
Ans: a.

45) What are the unrestricted procedures used to change the popup screen position during run time?
Anchor-view
Resize -View
Move-View.

46) Explain and differentiate between NAME_IN and COPY?

Name_in:
Returns the value of the indicated variable. The returned value is in the form of a character string. However, you
can use NAME_IN to return numbers and dates as character strings and then convert those strings to the appropriate data
types. You can use the returned value as you would use any value within an executable statement. If you nest the
NAME_IN function, Form Builder evaluates the individual NAME_IN functions from the innermost one to the outermost
one.
Another imp use of name_in is u can use these to refer global variables which we cant directly use in program units i.e., by
referring with : ' operator.

Syntax: FUNCTION NAME_IN (variable_name VARCHAR2);


Built-in Type unrestricted function

Copy:
Copies a value from one item or variable into another item or global variable. Use specifically to write a value into
an item that is referenced through the NAME_IN built-in.
COPY exists for two reasons:
1. You cannot use standard PL/SQL syntax to set a referenced item equal to a value.
2. You might intend to programmatically place characters such as relational operators in
NUMBER and DATE fields while a form is in Enter Query mode.

Syntax: PROCEDURE COPY (source vrchar2, destination varchar2);

47) How the command POST does differ from COMMIT?


Post writes data in the form to the database but does not perform database commit
Commit permanently writes data in the form to the database.

48) What the built in PAUSE procedure do?

Pause suspends processing until the operator presses a function key

49) Which package procedure used for invoke sql *plus from sql *forms?
Host (E.g. Host (sqlplus))

50) When the form is running in DEBUG mode, If you want to examine the values of global variables and other
form variables, What package procedure command you would use?
Break.

51) What is the difference between system.current_field and system.cursor_field?

1. System.current_field gives name of the field.


2. System.cursor_field gives name of the field with block name.

52) The value recorded in system.last_record variable is of type


a. Number
b. Boolean
Ans: b

53) What is an Alert?


An alert is a modal window that displays a message notifying the operator of some application condition. Use alerts
to advise operators of unusual situations or to warn operators who are about to perform an action that might have
undesirable or unexpected consequences.
There are three styles of alerts: Stop, Caution, and Note.
By Satish Gonare 7
FORMS-6i
8

Each style denotes a different level of message severity. Message severity is represented visually by a unique icon that
displays in the alert window. Form Builder has many built-in alerts that display pre-defined messages. You can also create
your own custom alerts that display in response to application-specific events. When an event occurs that causes an alert
to display, the operator must respond to the alert's message by selecting one of the predefined alert buttons. Selecting any
button immediately dismisses the alert.

54) Explain DO-KEY built-in.


Do_key executes the key trigger that corresponds to the specified built-in subprogram. If no such key trigger
exists, then the specified subprogram executes. This behavior is analogous to pressing the corresponding function key.

Syntax: PROCEDURE DO_KEY (built-in_subprogram_name VARCHAR2);


ex:- BEGIN
Do_Key ('Execute_Query');
END;

55) Explain DELETE-RECORD built-in.


The delete_record when used outside an On-Delete trigger removes the current record from the block and marks
the record as a delete. Records removed with this built-in are not removed one at a time, but are added to a list of records
that are deleted during the next available commit process.
If the record corresponds to a row in the database, Form Builder locks the record before removing it and marking it as a
delete.
If a query is open in the block, Form Builder fetches a record to refill the block if necessary.
In an On-Delete trigger, DELETE_RECORD initiates the default Form Builder processing for deleting a record during the
Post and Commit Transaction process.

Syntax: PROCEDURE DELETE_RECORD;

56) What are the different types of triggers available in Forms? Explain

Active X triggers
Block Processing triggers
Interface Event triggers
Key triggers
Master-Detail triggers
Message-Handling triggers
Mouse Event triggers
Navigation triggers
On triggers
Post triggers
Pre triggers
Query-Time triggers
Stored Procedure triggers
Transactional triggers
Validation triggers
When triggers

1. Active X triggers

EX -On-Dispatch-Event Trigger
This trigger is called when an ActiveX control event occurs. You can call the DISPATCH_EVENT built-in from within this
trigger to specify the dispatch mode as either restricted or unrestricted.
Legal Commands
SELECT statements, restricted built-ins, and unrestricted built-ins

2. Block processing triggers


When_Clear_Block
When_Create_Record
When_Database_Record
When_Remove_Record

a. When-Clear-Block
Fires just before Form Builder clear the data from the current block. Note that the When-Clear_Block trigger does not fire
when Form Builder clears the current block during the CLEAR_FORM event.
By Satish Gonare 8
FORMS-6i
9

Definition Level: form or block


Legal Commands
SELECT statements, unrestricted built-ins
Fires In
CLEAR_BLOCK, COUNT_QUERY,ENTER_QUERY

b.When_Create_Record
Fires when Form Builder creates a new record. For example, when the operator presses the [Insert] key, or
navigates to the last record in a set while scrolling down, Form Builder fires this trigger.
Definition Level: form or block
Legal Commands
SELECT statements, unrestricted built-ins
Use a When_Create_Record trigger to perform an action every time Form Builder attempts to create a new record. This
trigger also is useful for setting complex, calculated, or data-driven default values that must be specified at runtime, rather
than at design-time.

c.When-Database-Record Trigger
Fires when Form Builder first marks a record as an insert or an update. That is, the trigger fires as soon as Form
Builder determines through validation that the record should be processed by the next post or commit as an insert or
update.

D.When-Remove-Record Trigger
Fires whenever the operator or the application clears or deletes a record.
Definition Level form, block, or item
Use a When-Remove-Record trigger to perform an action every time Form Builder clears or deletes a record.
Fires In
CLEAR_RECORD
DELETE_RECORD

3. Interface Event Triggers

When-Button-Pressed, When-Checkbox-Changed
When-Custom-Item-Event, When-Image-Activated
When-List-Activated, When-List-Changed
When-Mouse-Click, When-Mouse-Double-Click
When-Mouse-Down, When-Mouse-Enter
When-Mouse-Leave, When-Mouse-Move
When-Mouse-Up, When-Radio-Changed
When-Timer-Expired, When-Window-Activated
When-Window-Closed, When-Window-Deactivated
When-Window-Resized

A. When-Button-Pressed
Fires when an operator selects a button, by clicking with a mouse, or using the keyboard.
Definition Level form, block, or item
Use a When-Button-Pressed trigger to perform navigation, to calculate text item values, or for other item, block, or form
level functionality.

B. When-List-Activated Trigger
Fires when an operator double-clicks on an element in a list item that is displayed as a T-list.

A When-List-Activated trigger fires only for T-list style list items, not for drop-down lists or combo box style list items. The
display style of a list item is determined by the List Style property.

C. When-Mouse-Click Trigger
Fires after the operator click the mouse if one of the following events occurs:
if attached to the form, when the mouse is clicked within any canvas or item in the form
if attached to a block, when the mouse is clicked within any item in the block
if attached to an item, when the mouse is clicked within the item
Three events must occur before a When-Mouse-Click trigger will fire:
Mouse down, Mouse up, Mouse click
Any trigger that is associated with these events will fire before the When-Mouse-Click trigger fires.
D. When-Timer-Expired Trigger
Fires when a timer expires.

By Satish Gonare 9
FORMS-6i
10

4. Key Triggers
Key-Fn
Key-Others
Key-Others Trigger
A Key-Others trigger fires when an operator presses the associated key.
A Key-Others trigger is associated with all keys that can have key triggers associated with them but are not currently
defined by function key triggers (at any level).
A Key-Others trigger overrides the default behavior of a Runform function key (unless one of the restrictions apply). When
this occurs, however, Form Builder still displays the function key's default entry in the Keys screen.
Definition Level form, block, or item
Usage
Use Key-Others trigger to limit an operator's possible actions. Specifically, use Key-Others trigger to perform the following
tasks:
*Disable all keys that are not relevant in a particular situation.
*Perform one specific action whenever an operator presses any key.

5. Master-Detail Triggers
On-Check-Delete-Master
On-Clear-Details
On-Populate-Details

6. Message-Handling Triggers
On-Error
On-Message

7. Mouse Event Triggers


When-Custom-Item-Event
When-Mouse-Click
When-Mouse-DoubleClick
When-Mouse-Down
When-Mouse-Enter
When-Mouse-Leave
When-Mouse-Move
When-Mouse-Up

8. Navigation triggers
Post-Block, Post-Form
Post-Record, Post-Text-Item
Pre-Block, Pre-Form
Pre-Record, Pre-Text-Item
User-Named,
When-New-Block-Instance
When-New-Form-Instance
When-New-Item-Instance
When-New-Record-Instance

9. on Triggers
A.On-Check-Delete-Master Trigger C.On-Error Trigger
B.On-Clear-Details Trigger
10.Query-Time Triggers
Post-Query
Pre-Query

11.Transactional triggers
On-Check-Delete-Master, On-Check-Unique
On-Clear-Details, On-Close
On-Column-Security, On-Commit
On-Count, On-Delete
On-Dispatch-Event, On-Error
On-Fetch, On-Insert
On-Lock, On-Logon
On-Logout, On-Message
On-Populate-Details, On-Rollback
On-Savepoint, On-Select
On-Sequence-Number, On-Update
By Satish Gonare 10
FORMS-6i
11

Post-Block, Post-Change
Post-Database-Commit, Post-Delete
Post-Form, Post-Forms-Commit
Post-Insert, Post-Logon
Post-Logout, Post-Query
Post-Record, Post-Select
Post-Text-Item, Post-Update
Pre-Block, Pre-Commit
Pre-Delete, Pre-Form
Pre-Insert, Pre-Logon
Pre-Query, Pre-Select
Pre-Text-Item, Pre-Update

12. Validation Triggers


When-Validate-Item
When-Validate-Record

When-Validate-Item Trigger
Fires during the Validate the Item process. Specifically, it fires as the last part of item validation for items with the New or
Changed validation status.
Definition Level form, block, or item
Usage Notes
Use a When-Validate-Item trigger to supplement Form Builder default item validation processing.
It is possible to write a When-Validate-Item trigger that changes the value of an item that Form Builder is validating. If
validation succeeds, Form Builder marks the changed item as Valid and does not re-validate it. While this behavior is
necessary to avoid validation loops, it does make it possible for your application to commit an invalid value to the database.

57) Explain about CANVASES


A canvas is a surface-inside a window container-on which you place the interface items and boilerplate objects that
end users interact with when they run the form. By default, any canvas you create at runtime is assigned to the window
named WINDOW1. To explicitly associate a canvas to a specific window, set the canvas' Window property accordingly.
Form Builder provides four types of canvases, all of which can be displayed in the same window at runtime. When you
create a canvas, you specify its type by setting the Canvas Type property.
The four canvas types are:
1) Content
2) Stacked
3) Tab
4) Toolbar
1. Content Canvas: The most common canvas type is the content canvas (the default type).Acontent canvas is the "base"
view that occupies the entire content pane of the window in which it is displayed. You must define at least one content
canvas for each window you create.

2. Stacked Canvas: A stacked canvas is displayed atopor stacked onthe content canvas assigned to the current
window. Stacked canvases obscure some part of the underlying content canvas, and often are shown and hidden
programmatically. You can display more than one stacked canvas in a window at the same time.

3. Tab Canvas: A tab canvasmade up of one or more tab pages-allows you to group and display a large amount of
related information on a single dynamic Form Builder canvas object. Like stacked canvases, tab canvases are displayed
on top of a content canvas, partly obscuring it. Tab pages (that collectively comprise the tab canvas) each display a subset
of the information displayed on the entire tab canvas.

4. Toolbar Canvas: A toolbar canvas often is used to create toolbars for individual windows. You can create two types of
toolbar canvases: horizontal or vertical.
Horizontal toolbar canvases are displayed at the top of a window, just under its menu bar, while vertical toolbars are
displayed along the far left edge of a window.

58) What are system variables and local variables?


System variables:
A system variable is an Form Builder variable that keeps track of an internal Form Builder state. You can reference the
value of a system variable to control the way an application behaves.
Form Builder maintains the values of system variables on a per form basis. That is, the values of all system variables
correspond only to the current form. The names of the available system variables are:
SYSTEM.BLOCK_STATUS, SYSTEM.CURRENT_BLOCK
SYSTEM.CURRENT_DATETIME, SYSTEM.CURRENT_FORM
SYSTEM.CURRENT_ITEM, SYSTEM.CURRENT_VALUE
By Satish Gonare 11
FORMS-6i
12

SYSTEM.CURSOR_BLOCK, SYSTEM.CURSOR_ITEM
SYSTEM.CURSOR_RECORD, SYSTEM.CURSOR_VALUE
SYSTEM.FORM_STATUS, SYSTEM.LAST_QUERY
SYSTEM.LAST_RECORD, SYSTEM.MASTER_BLOCK
SYSTEM.MOUSE_ITEM, SYSTEM.MOUSE_CANVAS
SYSTEM.RECORD_STATUS, SYSTEM.TRIGGER_BLOCK
SYSTEM.TRIGGER_ITEM, SYSTEM.TRIGGER_RECORD

1. SYSTEM.CURRENT_BLOCK system variable


The value that the SYSTEM.CURRENT_BLOCK system variable represents depends on the current navigation
unit:
1. If the current navigation unit is the block, record, or item (as in the Pre- and Post- Item, Record, and
Block triggers), the value of SYSTEM.CURRENT_BLOCK is the name of the block that Form Builder is processing
or that the cursor is in.
2. If the current navigation unit is the form (as in the Pre- and Post-Form triggers), the value of
SYSTEM.CURRENT_BLOCK is NULL.
The value is always a character string.
Note: SYSTEM.CURRENT_BLOCK is included for compatibility with previous versions. Oracle Corporation recommends
that you use SYSTEM.CURSOR_BLOCK and SYSTEM.TRIGGER_BLOCK instead.

2. SYSTEM.MASTER_BLOCK represents the name of the driving master block, and


SYSTEM.COORDINATION_OPERATION represents the coordination-causing event that occurred on the
master block.

3. SYSTEM.BLOCK_STATUS system variable


Syntax
SYSTEM.BLOCK_STATUS
SYSTEM.BLOCK_STATUS represents the status of a Data block where the cursor is located, or the current data block
during trigger processing. The value can be one of three character strings:
1 CHANGED: Indicates that the block contains at least one Changed record.
2 NEW: Indicates that the block contains only new records.
3 QUERY: Indicates that the block contains only valid records that have been retrieved from the database.
Usage Notes: Each time this value is referenced, it must be constructed by Form Builder. If a block contains a large
number of records, using SYSTEM.BLOCK_STATUS could adversely affect performance.

The Duplicate record built-in is used to copy the values of each item in the record with
The next lower sequence number to the corresponding item in the current record.

59) There is a property class in forms which will become Red in color when u alter any property in property
palette and its name is..? And its purpose is to
INHERIT & Sets the current property to its default setting when u clicks on it.

60) Explain Freeze/Unfreeze:


Freeze/Unfreeze Toggles Property Palette synchronization On and Off. When Freeze is Off (the default), the
property list is updated to display the properties of objects you select in the Object Navigator and other windows. When
Freeze is On, the property list is pinned and does not get updated, allowing you to compare it to other property lists.

61) Can you issue DDL in forms?


Yes, by Issuing dynamic SQL statements at runtime, including server-side PL/SQL and DDL.
Note: All DDL operations issue an implicit COMMIT and will end the current transaction without allowing Form Builder to
process any pending changes.
To check whether the statement issued using FORMS_DDL executed correctly, use the FORM_SUCCESS or
FORM_FAILURE Boolean functions. If the statement did not execute correctly, check the error code and error text using
DBMS_ERROR_CODE and DBMS_ERROR_TEXT. Note that the values of DBMS_ERROR_CODE and
DBMS_ERROR_TEXT are not automatically reset following successful execution, so their values should only be
examined after an error has been detected by a call to FORM_SUCCESS or FORM_FAILURE.

Example:
BEGIN
Forms_DDL('create table temp(n NUMBER)');
IF NOT Form_Success THEN
Message ('Table Creation Failed');
By Satish Gonare 12
FORMS-6i
13

ELSE
Message ('Table Created');
END IF;
END;

62) What are property classes?


A property class is a named object that contains a list of properties and their settings. Once you create a property
class you can base other objects on it. An object based on a property class can inherit the setting of any property in the
class that makes sense for that object.
There can be any number of properties in a property class, and the properties in a class can apply to different types of
objects. For example, a property class might contain some properties that are common to all types of items, some that
apply only to text items, and some that apply only to check boxes.
Property classes are separate objects, and, as such, can be copied between modules as needed. Perhaps more
importantly, property classes can be sub classed in any number of modules.

63) Can we define trigger for the property class?


Yes, we can define trigger for the property class. Once you have defined a trigger in a property class, any forms,
blocks or items you base on the class inherit the trigger. For example, if you define a When-Button-Pressed trigger in a
property class, any form, block or item of type button that you base on the property class inherits the When-Button-Pressed
Trigger. At runtime, these objects behave exactly as they would if you had attached the When-Button-Pressed trigger to
each of them directly.

64) Can a button have icon and label at the same time?
-NO

65) Can object group have a block?


Yes, object group can have block as well as program units.

66) What is OLE automation?


Object Linking and Embedding (OLE) automation allows an OLE server application to expose a set of commands
and functions that can be invoked from an OLE container application. OLE automation provides a way for an OLE
container application to use the features of an OLE server application to manipulate an OLE object from the OLE container
environment. (FORMS_OLE)

67) What are OPEN_FORM, CALL_FORM, and NEW_FORM?

CALL_FORM: Runs an indicated form while keeping the parent form active. Form Builder runs the Called form with
the same Run form preferences as the parent form. When the called form is exited Form Builder processing resumes in
the calling form at the point from which you initiated the call to CALL_FORM.
Syntax:
PROCEDURE CALL_FORM
(formmodule_name VARCHAR2);

OPEN_FORM: Opens the indicated form. Use OPEN_FORM to create multiple-form applications, that is, applications
that open more than one form at the same time.

Syntax:
PROCEDURE OPEN_FORM
(form_name VARCHAR2);

NEW_FORM: Exits the current form and enters the indicated form. The calling form is terminated as the parent form. If
the calling form had been called by a higher form, Form Builder keeps the higher call active and treats it as a call to the
new form. Form Builder releases memory (such as database cursors) that the terminated form was using.
Form Builder runs the new form with the same Run form options as the parent form. If the parent form was
a called form, Form Builder runs the new form with the same options as the parent form.
Syntax:
PROCEDURE NEW_FORM
(formmodule_name VARCHAR2);

68) What is call stack?

By Satish Gonare 13
FORMS-6i
14

The stack represents the chain of subprogram calls starting from the initial entry point down to the currently
executing subprogram.
For example, if Procedure A calls Procedure B calls Procedure C and a statement in Procedure C is currently executing,
the current call chain would appear as shown below:
Stack:
(0) A (Procedure Body) Line 3
(1) B (Procedure Body) Line 22
(2) C (Procedure Body) Line 5
Each subprogram call is represented by a frame on the stack. A frame contains information about the corresponding
subprogram call--its name, actual parameter values, local variable values, and the next statement to be executed.

69) What is a visual attribute (VAT)?


Visual attributes are the font, color, and pattern properties that you set for form and menu objects that appear in
your application's interface.

70) Diff. between VAT and Property Class?


Named visual attributes define only font, color, and pattern attributes; property classes can contain these and any
other properties. You can change the appearance of objects at runtime by changing the named visual attribute
programmatically; property class assignment cannot be changed programmatically. When an object is inheriting from both
a property class and a named visual attribute, the named visual attribute settings take precedence, and any visual attribute
properties in the class are ignored.

71) What are the different types of Visual Attributes?


a) Default Visual Attributes.
b) Custom Visual Attributes.
c) Named Visual Attributes.

72) Are you aware of the different techniques that you can use for the data entry process?
You can manually enter a value, or you can set up a LOV and select values from the LOV into specified items of a
block.

73) What are the two modes available in runtime?


1) Normal-this is where you do new data entry
2) Query-this is where you work with existing records

74) What is the Menu Editor?


The Menu Editor is a Form Builder design tool you use (along with the Object Navigator and Property Palette) to
create and arrange custom form menu modules and popup menus.
Before you can use the Menu Editor to work with menu objects, you must create a new menu module (or open an existing
one) in the Object Navigator.

Types of menu:
Form menu, item menu.
Menu item types,
For every form menu item and popup menu item you create, you must set the Menu Item Type and Command Type
properties. These menu-item-level properties determine the appearance and functionality of each menu item.

The following menu item types are available:


Plain
Check
Radio
Separator
Magic
The most common menu item type is plain; the other menu types are used to customize the appearance and functionality
of a menu.

75) What is the difference between copying and Referencing?


When you drag objects to copy them from one module to another, an alert is displayed that prompts you to specify
whether you want to create a copy of the object or create a reference object.

By Satish Gonare 14
FORMS-6i
15

Copying creates a new and separate instance of the object for the target module. Referencing creates a new object that
maintains a link to the source object. Once you create a reference object, any changes you make to the source object
are inherited by the reference object when you open or regenerate the module that contains the reference object.

76) What are all the properties we can change for the reference block?
The following properties can be changed for a reference block.
a) Block name
b) Comment.

77) What are all the properties we can change for the reference item?
The following properties can be changed for a reference item.
a) Canvas-view
b) Comment
c) Item Name
d) X position, y position
Note: The comment property can be changed for a reference trigger.

78) What is object Group? What are all the objects can/cannot be placed in an object Group?
Object Group: An object group is a container for a group of objects. You define an object group when you want to
package related objects so you copy or reference them in another module.
a) Dragging a block into an object group implicitly includes are objects that are owned by (items, triggers, relations).
b) Program units cannot be placed in an object group.
c) An object group cannot contain another object group.
d) Objects owned by blocks cannot be placed in an object group. This includes items, item-level triggers, block-level
triggers and relations.
e) The objects in a group must all be defined in the same module. You cannot place objects from two different forms in the
same object.
f) Deleting an object group from a module does not delete the objects it contains from the module.

79) How to define the triggers to fire on Enter Query Mode?


To define triggers to fire in Enter Query Mode, select the properties of
the triggers and set he Enter Query mode property is True.

80) What is a Check Box?


A Check Box is a two-state control that indicates whether a certain condition or
value is on or off, true or false On GUI platforms, a checkbox is displayed as small, square box with a text label to the right
on character mode platforms, a check box appears in square brackets. The display state of a check box is always either
checked or unchecked. Operator toggles the state of a checkbox by clicking it with a mouse.

81) How to deal with NULL values in a checkbox?


What is a Display Item? What is the difference between Text item and the Display item?
A display Item is similar to a Text Item with the exception that display items cannot be edited or navigated to at runtime.
Indeed a display item is a read only text box where value must be fetched or assigned programmatically.

82) What are the advantages of using Display Items?


1) To Display non-base table information
2) To display derived data values.
3) To conserve memory (Display Items requires less memory than Text Items)
4) To avoid operators navigate to the items and edit the values on the items.

83) What is a List Item?


A list item is an interface object that displays a pre-defined set of choices each corresponding to a specific data
value. The operator uses the list to select a single value. List choices are mutually exclusive, one and only one of the list
values can be selected at any one time. Each choice (element in a list is a text string up to 80 characters long. At runtime,
you can programmatically evaluate, add or remove list choices (elements).

84) What are the different types of list style in a List Item?
There are three types of List Styles in a List Item
1) Poplist style
2) Textlist (list) style
3) Combo box style

85) What are all data types of text item support format mast property?
* NUMBER
By Satish Gonare 15
FORMS-6i
16

* DATE
* TIME
* DATETIME

86) What is a Master Deletes property of a relation object? What are three Types of Master Deletes?
The Master Deletes property allows you to specify how the deletion of a record in the master block should affect
records in the detail block.

There are three types of Master Deletes


1) Non-Isolated
2) Isolated
3) Cascading
Non-Isolated: The default setting prevents deletion of the Master records if associated detail records exist in the
database.
Isolated: Allows the master record to be deleted and does not affect the associated detail records in the database.
Cascading: Allows the master record to be deleted and automatically deletes any associated detail records from the
database table at commit time.

87) What are the three types of complex master-detail relationships?


1) Master with dependent details
2) Master with independent details
3) Detail with two masters
1. Master with dependent details:
A master with dependent details relationships includes a master block and n levels of detail blocks, such that
the first detail block is itself a master for its own detail block.
2. Master with Independent details:
A master with independent details relationships involves two or more detail blocks, each of which
has the same master block. This structure is useful when you want to display more than one set of detail records for
a single master record.
3. Detail with Two masters:
A detail with two masters relationship involves a single detail block that has two master blocks. Oracle forms
displays the appropriate detail records for whichever master block is the current in the form. Detail with two masters
relationship that includes three blocks & two relation objects.

88) What are the triggers oracle forms will generate when you define the master-detail relationships?
A master-detail relation is an association between two data blocksa master block and a detail block. The relation
reflects one of the following:
a primary-key to foreign-key relationship between the tables on which the blocks are based
a REF pointer relationship between the tables on which the blocks are based.
The master-detail relation automatically does the following:
1. Ensures that the detail block displays only those records that are associated with the current (master) record in the
master block
2. coordinates querying between the two blocks.
When you create a relation, oracle forms generates different triggers depending on how the Master Deletes & co-ordination
properties are set. When you change the setting of the Master Deletes property for an existing relation, oracle forms adds
or removes triggers as needed.

Triggers are:
On-Check-Delete-Master: Form Builder creates this trigger automatically when you define a master/detail relation and
set the Delete Record Behavior property to Non-Isolated. It fires when there is an attempt to delete a record in the
master block of a master/detail relation.
On-Clear-Details: Fires when a coordination-causing event occurs in a block that is a master block in a Master/Detail
relation. A coordination-causing event is any event that makes a different record the current record in the master block.
On-Populate-Details: Form Builder creates this trigger automatically when a Master/Detail relation is defined. It
fires when Form Builder would normally need to populate the detail block in a Master/Detail relation.

89) What are all the procedures will be generated when you define master-detail relationships in Oracle forms?
1) Clear-All-Master-Details
2) Query-Master-Details
3) Check-Package-Failure

90) What is Alert? What are the two types of Alerts in Oracle forms?
Alert: An Alert is a modal window that display a message modifying the operator of some application condition
Use alerts to advise operators of unusual situation or to warn operators who are about to perform an action that might have
undesirable or unexpected consequences.
By Satish Gonare 16
FORMS-6i
17

There are two types of alerts


i) Built-in alerts ii) Custom alerts
Built-in Alerts: An Oracle form has many built-in-Alerts that display pre-defined messages. There is no need to write a
trigger or user-named routine to display the alert.
Custom Alerts: This is user-defined alert that display in response for application specific events. You must write a trigger or
user-named routine to display the alert in response to a particular event. In addition the action that each button initiates is
determined by the PL/SQL code you write to involve the alert.

91) What are the different styles of Alerts?


1) Stop
2) Caution
3) Note(Information)
Each style denotes a different level of message severity. Message severity is represented visually by a unique
icon that displays in the alert window.

92) In Alert, what are all the properties we can change during the runtime?
Only we can change an alert message at runtime by executing the SET-ALERT-PROPERTY built-in procedure.
Changing an alert's message allows you to reuse the same alert object, but display a different message each time it is
invoked.

93) By default, how many buttons alert will have? What are the default text labels for that?
By default, alert will have two buttons button1, button2
The default label for button1 is "OK"
The default label for button2 is "Cancel"

94) What is the maximum length of the alert message?


200 Characters.

95) What are all the Built-in routines related with Alert object?
i) SHOW-ALERT
ii) FIND-ALERT
iii) SET-ALERT-PROPERTY
iv) GET-ALERT-PROPERTY

96) What is an Editor?


An Editor is an oracle forms object which may be associated with one or more text items. It allows more convenient
manipulation of character values.

97) What are the three types of Editor?


i) Default Editor
ii) System Editor
iii) User-Named Editor
Default Editor
The default editor provides standard editing features, including search/replace and cut, copy and paste. It is built into every
form and is automatically available from every text item.
System Editor
If you specify 'SYSTEM-EDITOR' in the Editor Name property for the item, an operating system environment variable
would identify them which system editor (e.g. Write, Notepad) will be used for such items.
User-Named Editor
It is a named object and you can specify editor attributes such as window display size, position, and title. User-Named
editor can be displayed programmatically with the built-on procedure Show-Editor independent of any particular text item.

98) Which environment variable can be used for defining system Editor?
The system editor to be used is defined by the FORMS45-EDITOR environment variable. On Ms Windows, you
can use the Notepad as a system editor by defining FORMS45-EDITOR as FORMS45-
EDITOR=C:\WINDOWS\NOTEPAD.EXE

99) What are the Built-in subprograms we can use to display an editor dynamically?
1) EDIT-TEXTITEM
2) SHOW-EDITOR
By Satish Gonare 17
FORMS-6i
18

EDIT-TEXTITEM
Syntax:
EDIT-TEXTITEM(X,Y, Width, Height);
SHOW-EDITOR
Syntax:
SHOW-EDITOR (editor-name, message-in, x, y, message-out, result);

100) Can you have a long column in a record group


NO, only 3 datatypes allowed for record groups (char, number and date).

101) Redo logs.


Redo-Log Files: Each database instance maintains a set of redo-log files. These files are used to record logs of all
transactions. The logs are used to recover the databases transactions in their proper order in the event of a database
crash (the recovering operations are called roll forward). When a transaction is executed, modifications are entered in the
redo-log buffer, while the blocks affected by the transactions are not immediately written back to disk, thus allowing
optimizing the performance through batch writes.

102) Control files


Each database instance has at least one control file. In this file the name of the database instance and the
locations (disks) of the data files and redo-log files are recorded. Each time an instance is started, the data and redo-log
files are determined by using the control file(s).
Archive/Backup Files
Archive/Backup Files If an instance is running in the archive-log mode, the ARCH process archives the modifications of the
redo-log files in extra archive or backup files. In contrast to redo-log files, these files are typically not overwritten.

103) Execution hierarchy property of triggers.


Hierarchy property specifies the current trigger code should execute if there is a trigger with the same name
defined at a higher level in the object hierarchy.
Following settings are valid
1. Override: specifies that the current trigger fire instead of any trigger by the same name at any
higher scope. (Override parent behaviour).
2. Before: specifies that the current trigger fire before firing the same trigger at the next higher
scope.(fire before parent).
3. After: specifies that the current trigger fire after firing the same trigger at the next higher
scope.(fire after behaviour).

104) Differentiate between restricted and un restricted procedures?


Any built in that initializes navigation is restricted. These are not allowed in triggers that fire in response to
navigation.
Ex: go_item, next_item, go_block etc.
These built-ins cant be called from triggers like pre-block or post-block which initiate navigation. Are called unrestricted
built-ins.
Ex: set-item-property, clear-form, exit-form, run-product etc.

105) Explain synchronization in forms.


Synchronize with item property specifics the name of the item from which the current item should derive its value.
Setting this property synchronises the values of the two items, so that they effectively mirror each other. When the user
changes the value of the either item, the values of other item will also change.
Object navigator synchronization:
When synchronization is on, the object navigator, layout editor & menu editors maintain the same current selection. I.e.
selecting a button in the layout editor, automatically selects same button in object navigator as well. When synchronization
is off, selecting an object in the object navigator or an editor does not update the current selection in other windows.

106) What does host does in forms?


Host executes an indicated o/s command.

107) What is the advantage of using pl/sql libraries object program units?
Pl/sql library is a collection of procedures, functions, & packages and can be used globally among different forms
and applications but program unit will be local to that form.
Pl/sql library is parallel to form module and can be shared among different oracle developer modules.

108) Windows: Modal, Modeless

By Satish Gonare 18
FORMS-6i
19

A window can be either modeless or modal. A modal window (often a dialog) requires the end user to respond
before continuing to work in the current application. A modeless window requires no such response. When you create a
window, you specify its modality by setting the Modal property to Yes or No. The default is No (modeless).
Modeless Windows you can display multiple modeless windows at the same time, and end users can navigate freely
among them (provided your application logic allows it). On most GUI platforms, you can layer modeless windows so that
they appear either in front of or behind other windows. Modeless windows remain displayed until they are dismissed by the
end user or hidden programmatically. You can set the Hide on Exit property for a modeless window to specify whether it
should remain displayed when the end user navigates to another window. You also can set the properties of a modeless
window to specify its border and title, and whether end users should be allowed to scroll, resize, move, close, iconify, and
zoom the window.
Modal Windows Modal windows are usually used as dialogs, and have restricted functionality compared to modeless
windows. On some platforms, for example, end users cannot resize, scroll, or iconify a modal window. Modal windows are
often displayed with a platform-specific border unique to modal windows. On some platforms, modal windows are "always-
on-top" windows that cannot be layered behind modeless windows.
In addition to platform-specific restrictions, modal windows have the following characteristics:
The Hide on Exit property does not apply to modal windows. By default, Form Builder prevents end users from navigating
out of modal windows with the mouse, but does allow them to navigate to another window with keyboard commands.
When such navigation occurs, Form Builder always closes the modal window, unless the target window is itself a modal
window.
Modal dialog windows cannot have scroll bars, thus setting the Scroll Bar properties has no effect. (Modal non-dialog
windows, however, can have scroll bars.)

116) I have 2 blocks master and detail block. If u creates a new field in master block how will u link it to backend
table?
By changing database item yes in property pallet for that new item.

117) In forms I have edited 10 employees names. I want to save the changed names in a flat file. How to
do?
By using TEXT_IO package.

118) What are the things you can see when you open new form builder?
Forms
Menus
Pl/sql libraries
Built in packages
Database objects.

119) MDI:
MDI stands for multiple document interface window which is created by oracle at runtime.

120) How can I read/write OS Files from Forms?


OS files can be read/written from Forms using the TEXT_IO package in Forms. The TEXT_IO package has a
datatype FILE_HANDLE. It also has procedures FCLOSE, GET_LINE, NEW_LINE, PUT, PUT_LINE & PUTF and a
function FOPEN. Example:
DECLARE
file1 TEXT_IO.FILE_TYPE;
file2 TEXT_IO.FILE_TYPE;
str VARCHAR2(80);
BEGIN
file1 := TEXT_IO.FOPEN( 'input.txt','r' );
file2 := TEXT_IO.FOPEN( 'output.txt', 'w' );
TEXT_IO.GET_LINE( file1, str );
TEXT_IO.PUT_LINE( file2, str );
TEXT_IO.FCLOSE( file1 );
TEXT_IO.FCLOSE( file2 );
END;

By Satish Gonare 19

Você também pode gostar