0% found this document useful (0 votes)
204 views48 pages

Oracle Background Processes & Developer Tools

The PL/SQL Editor is a tool for creating and editing PL/SQL code in Oracle Forms. It allows developers to write triggers, procedures, functions and packages. Key commands in the PL/SQL Editor include compiling code, debugging, and running code testing. The PL/SQL Editor is integrated with the Forms environment to facilitate coding database and business logic for forms applications.

Uploaded by

Sanjay
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as RTF, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
204 views48 pages

Oracle Background Processes & Developer Tools

The PL/SQL Editor is a tool for creating and editing PL/SQL code in Oracle Forms. It allows developers to write triggers, procedures, functions and packages. Key commands in the PL/SQL Editor include compiling code, debugging, and running code testing. The PL/SQL Editor is integrated with the Forms environment to facilitate coding database and business logic for forms applications.

Uploaded by

Sanjay
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as RTF, PDF, TXT or read online on Scribd
You are on page 1/ 48

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?

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

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,

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

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

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.

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.

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.

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.


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

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
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');

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?

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.

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

* 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.

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

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

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;

You might also like