ads

Tuesday, March 29, 2016

Oracle Forms Interview Question Answer


Module:

1.                    What are different types of modules available in oracle form?

        Form Module      - Collection of objects and code routines
                                   Men  u Module - Collection of menus and menu item commands that together              make up an application menu Library Module  - Collection of user named                procedures, functions and packages that can be called from other modules in the application

    2.                   What are the default extensions of the files created by forms modules?

                .FMB - form module binary
                .FMX - form module executable

    3.                   What are the default extensions of the files created by menu module?

                .MMB, .MMX

    4.                   What are the default extensions of the files created by library module?

The default file extensions indicate the library module type and storage   format .PLL – PL/SQL library module binary

5.                   What are the different views available in object navigator?

1.File Formats:                                   2.  Data Types:

Triggers:

6.                   What is the order of firing of triggers?
Key-Next-Item, Pre-Text-Item, Post-Text-Item, When-New-Item-Instance,    When-   Validate-Item, Post-Change

                Pre-Text-Item
                When-New-Item-Instance
                Key-Next-Item
                When-Validate-Item
                Post-Text-Item
                Post-Change

7.                   Different Types of Triggers available in forms?

Ø  Active X Triggers Block-Processing Triggers
Ø  Interface Event Triggers
Ø  Mouse Event Triggers
Ø  Key Triggers
Ø  Master-Details Triggers
Ø  Message-Handling Triggers
Ø  Navigation Triggers
Ø  Query-Time Triggers
Ø  Stored Procedure Triggers
Ø  Transactional Triggers
Ø  Pre Triggers, Post Triggers, On Triggers
Ø  Validation Triggers

8.                   What are the various event triggers associated with forms?

Ø  Interface Event Triggers
Ø  Mouse Event Triggers
Ø  Key Triggers
Ø  Navigation Triggers

9.                   Difference POST-DATABASE-COMMIT, POST-FORM-COMMIT?

The post-database-commit trigger fires after oracle forms issues the commit to finalized transactions.
The post-form-commit trigger fires after inserts, updates and deletes have been posted to the database but before the transactions have been finalized in the issuing the commit command.

10.                Difference PRE-FORM, WHEN-NEW-FORM-INSTANCE

PRE-FORM & WHEN-NEW-FORM-INSTANCE Fires during the Enter the Form event, at form startup.
On Failure, in PRE-FORM Form Builder leaves the current form and fires no other triggers.
On Failure, WHEN-NEW-FORM-INSTANCE no effect.
In WHEN-NEW-FORM-INSTANCE Form Builder navigates to the first navigable item in the first navigable block. 
A When-New-Form-Instance trigger fires after the successful completion of any navigational triggers that fire during the initial navigation sequence. This trigger does not fire when control returns to a calling form from a called form.

11.                 Difference POST-FETCH, POST-QUERY

POST-FETCH fires just after each attempt to fetch records from the database. Depending on the value of "Array Size" for the block in question, and how many records are actually delivered from the database in response to our request, this trigger may fire fewer times.
POST-QUERY fires once for “each” record that is brought from the waiting area (where records first go after they are fetched in a bunch from the database) and added to the end of the current block's list of records.

12.                What is the trigger associated with the timer?

WHEN-TIMER-EXPIRED

13.                What is WHEN-DATABASE-RECORD trigger?

Fires when oracle forms first marks a record as an insert or an update. The trigger fires as soon as an oracle form determines through validation that the record should be processed by the next post or commit as an insert or update. It generally occurs only when the operator modifies the first item in the record, and after the operator attempts to navigate out of the item.

14.                What are the various sub events a mouse double click event involves?

Double clicking the mouse consists of the mouse down, mouse up, mouse click, mouse down & mouse up events.

15.                Trigger Hierarchy

Before, Override, After   
                Item, Block, Form Level

16.                What are the types of triggers.

Triggers can be classified as Key Triggers, Mouse Triggers, and Navigational Triggers.
                        Key Triggers       - Fired as a result of Key action. E.g. KEY-NEXT-FIELD,       KEY-UP,KEY-DOWN
                           Mouse Triggers  - Fired as a result of the mouse navigation. E.g.
                          WHEN-MOUSE-BUTTON-PRESSED, WHEN-MOUSE-DOUBLE-CLICKED
Navigational Triggers - These Triggers are fired as a result of            Navigation. E.g.
POST-TEXT-ITEM, PRE-TEXT-ITEM.
We also have event triggers like WHEN–NEW-FORM-INSTANCE and WHEN-NEW-BLOCK-INSTANCE.
We cannot call restricted procedures like GO_TO(‘MY_BLOCK.FIRST_ITEM’) in the Navigational triggers
But we use them in the Key-next-item.
The Difference between Key-next and Post-Text is a very important question. The key-next is fired as a result of the key action while the post text is fired as a result of the mouse movement. Key next will not fire unless there is a key event.

17.                 Mouse event related triggers.

WHEN-MOUSE-CLICK
WHEN-MOUSE-DOUBLECLICK
WHEN-MOUSE-DOWN
WHEN-MOUSE-ENTER
WHEN-MOUSE-LEAVE
WHEN-MOUSE-MOVE
WHEN-MOUSE-UP

18.                What is a Timer?

Timer is a "internal time clock" that you can programmatically create to perform an action each time the timer expires.

19.                What are timers? When does when-timer-expired does not fire?

The When-Timer-Expired trigger cannot fire during trigger, navigation, or transaction processing.

20.               What are built-ins associated with timers?

FIND_TIMER
CREATE_TIMER
DELETE_TIMER
21.                If a timer expires during a long running query when is it handled?

The timer will always wait to be handled until the current operation has been completed.  In other words, the query is completed before the timer is serviced.

22.               If a REPEAT timer expires between long queries, does it repeat prior to being serviced by a WHEN-TIMER-EXPIRED trigger at the end of the query, or does it wait for servicing before repeating?

A repeating timer will never be restarted until after it has been serviced by an appropriate firing of WHEN-TIMER-EXPIRED.  A simple corollary to that fact is that no timer can ever exist twice in the "timers to be serviced" stack.

23.               What are the different window events activated at runtimes?

WHEN_WINDOW_ACTIVATED
WHEN_WINDOW_CLOSED
WHEN_WINDOW_DEACTIVATED
WHEN_WINDOW_RESIZED
Within this triggers, you can examine the built in system variable SYSTEM.EVENT_WINDOW to determine the name of the window for which the trigger fired.

24.               What are the triggers associated with image items?

WHEN-IMAGE-ACTIVATED fires when the operators double click on an image item
WHEN-IMAGE-PRESSED fires when an operator clicks or double clicks on an image item.

Alerts:

25.               What is ALERT?

An ALERT is a modal window that displays a message notifying operator of some application condition.

26.               What are the display styles of an alert?

                Stop, Caution, Note

27.                Can you attach an alert to a field?

                No

28.               What built-in is used for showing the alert during run-time?

                SHOW_ALERT.

29.               Can you change the alert messages at run-time?
If yes, give the name of the built-in to change the alert messages at run-time.

                Yes.  SET_ALERT_PROPERTY.

30.               What is the built-in function used for finding the alert?

                FIND_ALERT

Attached Libraries:

31.                What is a library?

A library is a collection of subprograms including user named procedures, functions and    packages.

32.               What is the advantage of the library?

Library's provide a convenient means of storing client-side program units and sharing them among multiple applications. Once you create a library, you can attach it to any    other form, menu or library modules. When you can call library program units from triggers menu items commands and user named routine, you write in the modules to which you have attach the library.

When a library attaches another library, program units in the first library can reference program units in the attached library. Library support dynamic loading-that is library   program units are loaded into an application only when needed. This can significantly reduce the run-time memory requirements of applications.

33.               What is a strip source generate options?

Removes the source code from the library file and generates a library files that contains only psesudocode. The resulting file can be used for final deployment, but cannot be subsequently edited in the designer.

34.               While attaching library, dialog window is displayed.
You should not specify a library path when attaching libraries.  Path names for library attachments are stored internally and, as a result, are not portable.  Instead, you should specify the name of the library and rely on the Form Builder' standard search path to locate your library at runtime.When searching for attached libraries at runtime, Form Builder first searches the current directory and then the directories listed in the PATH (FORMSXX_PATH and ORACLE_PATH) environment variables.

35.               What for the PLL is used in the forms.  How will u reference an item in a form within the PLL and how will u store the value for an item in a form within the PLL When you are writing library code, there is no way to resolve

:BLOCK1.ITEM1 := 'Value'; these references, since the library could potentially be attached to *any* form.
Instead you need to use the COPY() and NAME_IN() built-ins when referencing Form Builder objects within libraries.  These built-ins do not attempt to resolve references at compile time. 

36.               Explain Direct & Indirect referencing of forms?

                Direct    - Normal usage of block name or item name
                Indirect                - Using NAME_IN / COPY

37.                How does the use of libraries affect the size of the .FMX file?

If the library code were included in the .FRM, there would be no reason to redo them the way we have. The beauty of the new scheme is that the library modules remain separate and compiled (into .PLL or .PLX files) so that RUN_FORM can bring program units into memory at runtime without adding to the size of each and every .FMX file.
Think of it like a DLL. The only overhead that's added to the form that attaches a library is that negligible amount required to remember the name of the libraries on which it depends.

Data Blocks:

Block Properties:
38.               What are the two phases of block coordination?

There are two phases of block coordination:
Clear Phase and Population Phase.
Clear Phase - Oracle Forms navigates internally to the detail block and flushes the obsolete detail records.
Population Phase - Oracle Forms issues a SELECT                statement to repopulate the detail block with detail records associated with the new master record. These operations are accomplished through the execution of triggers.

39.               What are the Various Block Coordination Properties?

The various Block Coordination Properties are:
a.       Immediate – (Default). The Detail records are shown when the Master Record are shown.
b.       Deferred with Auto Query - Oracle Forms defer fetching the detail records until the operator navigates to the detail block.
c.       Deferred with No Auto Query - The operator must navigate to the detail block and explicitly execute a query

40.               What is Current record attribute property?

Specifies the named visual attribute used when an item is part of the current record. Current Record Attribute is frequently used at the block level to display the current row in a multi-record If you define an item-level Current Record Attribute, you can display a pre-determined item in a special color when it is part of the current record, but you cannot dynamically highlight the current item, as the input focus  changes. 

41.                Is it possible to defer locking of a record until commit time?

Yes, there is a block property called 'Locking Mode', which can be either 'Immediate' or 'Delayed'.  If you set it to 'Delayed', then a record in a block is not locked until commit-time, specifically until changes are 'posted'.

At that time, the current forms value is compared to the database value before issuing the update statement.  The user will get an error if the record has been updated since it was fetched.

42.               What is the difference between the block properties of ARRAYSIZE and RECORDS BUFFERED?

ARRAY SIZE is the number of records that get fetched each time forms goes to the database.

RECORDS BUFFERED specifies the minimum number of records that should be placed in memory when records are fetched from the database.  Even if you specify a low value of            3, the minimum per form is slightly over 300.

43.               How would u know the last query executed on a base table block?
               
                GET_BLOCK-PROPERTY(‘<<Block_Name>>’,LAST_QUERY);
       
Block Triggers:

44.               Which is true:

                    i.            Pre-query fires once before the query is executed
                  ii.            Post-query fires for each record retrieved
                iii.            Pre-record fires before cursor navigates to every record
                 iv.            EXECUTE_QUERY flushes the block and then retrieves the values
Ans: All the above.

45.               Enter query mode – which restricted proc will not work?

                    i.            GO_BLOCK
                  ii.            NEXT_RECORD
                iii.            PREVIOUS_ITEM
Ans:  GO_BLOCK

46.               What are Most Common types of Complex Master-detail relationships?

There are three most common types of complex master-detail relationships:
a.       Master with dependent details
b.       Master with independent details
c.       Detail with two masters

47.                What are the Various Master and Detail Relationships?

         The various Master and Detail Relationship are
a.       Non-Isolated     - The Master cannot be deleted when a child exists.
b.       Isolated               - The Master can be deleted when the child is existing
c.       Cascading          - The child gets deleted when the Master is deleted.

48.               In master details relationship how many triggers and procedures will be created.

                3 Procedures & 3 Triggers

Procedures
CHECK_PACKAGE_FAILURE
CLEAR_ALL_MASTER_DETAILS
QUERY_ALL_DETAILS

Triggers (Non-Isolated)
ON-CLEAR-DETAILS                        -               FORM LEVEL
ON-POPULATE-DETAILS                -               MASTER BLOCK
ON-CHECK-DELETE-MASTER      -               MASTER BLOCK

Triggers (Isolated)
ON-CLEAR-DETAILS                        -               FORM LEVEL
ON-POPULATE-DETAILS                -               MASTER BLOCK

Triggers (Cascade)
ON-CLEAR-DETAILS                        -               FORM LEVEL
ON-POPULATE-DETAILS                -               MASTER BLOCK
PRE-DELETE                                      -               DETAIL LEVEL

49.               Difference PRE-QUERY, PRE-SELECT

PRE-QUERY fires just before Forms Builder begin to prepare the SQL statement that will be required to query the appropriate records from the database in response to the query criteria that have been entered.

PRE-SELECT fires after Form Builder constructs the SELECT statement to be issued, but before the statement is actually issued.  Note that the SELECT statement can be examined in a Pre-Select trigger by reading the value of the system variable SYSTEM.LAST_QUERY.


50.               How can I dynamically prevent the user from entering a new record?

Have a When-New-Record-Instance trigger that does the following:
IF ((DYNAMIC-CONDITION-IS-TRUE) AND :SYSTEM.RECORD_STATUS = 'NEW') THEN
RAISE FORM_TRIGGER_FAILURE;
END IF;

51.                How can I dynamically make an entire block query-only at runtime?

SET_BLOCK_PROPERTY('BLOCKNAME', INSERT_ALLOWED, PROPERTY_OFF);
SET_BLOCK_PROPERTY('BLOCKNAME', UPDATE_ALLOWED, ROPERTY_OFF);


Form Builder Item List:
ActiveX Control
A custom control that simplifies the building and enhancing of user interfaces
Bean Area
An identification of a JavaBean that supplies a control for this item
Chart Item
A bordered rectangle of any size that can display a chart or other display generated by Graphics Builder.  Operators cannot navigate to or manipulate chart items.
Checkbox
A text label with a graphic state indicator that displays the current value as either checked or unchecked.  Clicking on a check box toggles it to the opposite state.
Display Item
A read-only text box whose value must be fetched or assigned programmatically.  Operators cannot navigate to a display item or edit the text it contains.
Hierarchical Tree Item
An area which displays grouped data in the form of a standard navigator with expandable nodes.
Image Item
A bordered rectangle of any size that can display images fetched from the database or read in from the file system.
List Item
A list of choices displayed as either a drop-down list, a list box, or a combo box.
OLE Container
An area that stores and displays an OLE object that is created from an OLE server application
Push Button
A rectangle with a text label or an icon graphic inside
Radio Group
A group of radio buttons, one of which is always selected
Sound Item
Sound items allow the user to load, record, edit, play, and save sounds
Text Item
A single- or multi-line text box that supports a variety of data types, format masks, and editing capabilities.
User Area
An area that stores and displays a user-defined item
VBX Control
For use only in Microsoft Windows 3.1


52.               What are the different display styles of list items?

POP_LIST
The pop list style list item appears initially as a single field (similar to a text item field). When the operator selects the list icon, a list of available choices appears.

T_LIST
The text list style list item appears as a rectangular box which displays the fixed number of values. When the text list contains values that can not be displayed, a vertical scroll bar appears, allowing the operator to view and select underplayed values.

COMBO BOX
A combo box style list item combines the features found in list and text item. Unlike the pop list or the text list style list items, the combo box style list item will both display fixed values and accept one operator entered value.

53.   What is SECURE property?

Hides characters that the operator types into the text item.  This setting is typically used for password protection.

54.               What are display items? How does it differ from a normal Text Item?

Display items are similar to text items with the exception that display items only store and display fetched or assigned values. Display items are generally used as boilerplate or conditional text.
Since Display Items possess a "subset" of the features that a text item provides, they require slightly less memory for their definition.

55.               Can a button have icon and label at the same time?

NO

56.               What is mouse navigate property of button?

When Mouse Navigate is True (the default), Oracle Forms performs standard navigation to move the focus to the item when the operator activates the item with the mouse. 

When Mouse Navigate is set to False, Oracle Forms does not perform navigation (and the resulting validation) to move to the item when an operator activates the item with the mouse.

57.                What are the VBX controls?

VBX control provides a simple method of building and enhancing user interfaces. The controls can use to obtain user inputs and display program outputs. VBX control where originally develop as extensions for the ms visual basic environments and include such items as sliders, rides and knobs.

58.               What are different types of images?

Boiler plate images
Image Items

59.               Difference Boiler Plate Images and Image Items?

Boiler plate Images are static images (Either vector or bit map) that you import from the file system or database to use a graphical elements in your form, such as company logos and maps
Image items are special types of interface controls that store and display either vector or bitmap images. Like other items that store values, image items can be either base table items(items that relate directly to database columns) or control items. The definition of an image item is stored as part of the form module FMB and FMX files, but no image file is actually associated with an image item until the item is populate at run time.

60.               What is the use of image zoom built-in?

To manipulate images in image items.

61.                What datatype will be used to store image file to store it in database?

                    i.            BFILE
                  ii.            BLOB

62.               How can I change the color and font of an item dynamically at runtime?

SET_ITEM_PROPERTY('BLOCKNAME.ITEMNAME', VISUAL_ATTRIBUTE, 'VISUAL_ATTRIBUTE_NAME' );
Where 'VISUAL_ATTRIBUTE_NAME' is either the name of a visual attribute you've set up in the form (which has foreground, background, font, etc.), or is the name of a logical visual attribute from the resource file.

63.               How can I have an item which acts like a disabled item, but is not grayed out?

The INSERT_ALLOWED and UPDATE_ALLOWED attributes solve this problem.  Items with these attributes set to OFF don't show as disabled items but do not allow the user to change the values in either new or queried records.


Item Triggers:

64.               How the sequence of firing in text item

The sequence of firing in a text item is as follows
PRE-TEXT-ITEM
WHEN-NEW-ITEM-INSTANCE
KEY-NEXT-ITEM
WHEN-VALIDATE-ITEM
POST-TEXT-ITEM

Canvas:

65.               What are different types of canvas views?

                Content Canvas View
                Stacked Canvas View
                Horizontal Toolbar View
                Vertical Toolbar View
                Tab-Paned Canvas View

66.               Explain about Content Canvas Views?

                Most Canvas views are content canvas views a content canvas view is the "base" view          that occupies the entire content pane of the window in which it is displayed.

67.                Explain about Stacked Canvas Views?

Stacked canvas view is displayed in a window on top of, or "stacked" on the content canvas view assigned to that same window. Stacked canvas views obscure some part of the underlying  content canvas view, and or often  shown and hidden programmatically.

68.               Explain about Horizontal, Vertical Tool Bar Canvas Views?

                Tool bar canvas views are used to create tool bars for individual windows
                Horizontal tool bars are display at the top of a window, just under its menu bar.
                Vertical Tool bars are displayed along the left side of a window

69.               Name of the functions used to GET/SET Canvas properties?

                GET_VIEW_PROPERTY, SET_VIEW_PROPERTY


Editors:

70.               List the editors available?

a.       Default editor
b.       User_Defined editors
c.       System editors.

71.                 What is the User-Named Editor?

A user named editor has the same text editing functionality as the default editor, but,            because it is a named object, you can specify editor attributes such as windows display size, position, and title.

72.                What are the Built-ins to display the user-named editor?

                A user named editor can be displayed programmatically with the built in procedure               SHOW_EDITOR, EDIT_TEXTITEM independent of any particular text item.

73.                What is the difference between SHOW_EDITOR and EDIT_TEXTITEM?

Show editor is the generic built-in, which accepts any editor name and takes some input string and returns modified output string. Whereas the EDIT_TEXT_ITEM built-in needs the input focus to be in the text item before the built-in is executed.

LOV:

74.                What is an LOV?

An LOV is a scrollable popup window that provides the operator with  either a single or multi column selection list.

75.                Can you attach an LOV to a field at design time?

                Yes.

76.                Can you attach an LOV to a field at run-time? if yes, give the build-in name.

                Yes. SET_ITEM_PROPRETY

77.                What is the built-in used for showing LOV at runtime?

                SHOW_LOV
                LIST_VALUES

78.                What are the built-ins that are used to Attach an LOV programmatically to an item?

                SET_ITEM_PROPERTY
                GET_ITEM_PROPERTY
                (by setting the LOV_NAME property)

79.                What is the built-in used to get and set LOV properties during run-time?

                GET_LOV_PROPERTY
                SET_LOV_PROPERTY

80.               What is the basic data structure that is required for creating an LOV?

                Record Group.

81.                What is the "LOV of Validation" Property of an item? What is the use of it?

82.               When LOV for Validation is set to True, Oracle Forms compares the current value of the text item to the values in the first column displayed in the LOV.

                Whenever the validation event occurs.

If the value in the text item matches one of the values in the first column of the LOV, validation succeeds, the LOV is not displayed, and processing continues normally.

If the value in the text item does not match one of the values in the first column of the            LOV, Oracle Forms displays the LOV and uses the text item value as the search criteria to automatically reduce the list.

83.               How do you use the same LOV for 2 columns?

We can use the same LOV for 2 columns by passing the return values in global values and using the global values in the code.

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

85.               What is the difference between LOV & list item?

LOV is a property where as list item is an item. A list item can have only one column, LOV can have one or more columns.

Object Groups

86.               Object Group Usage

An object group is a container for a group of objects. Object groups provide a way to bundle objects into higher-level building blocks that can be used in other parts of an application and in subsequent development projects.

87.                What are 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 can copy or reference them in another module.

88.               What are referenced objects?

Referencing allows you to create objects that inherit their functionality and appearance from other objects. Referencing an object is similar to copying an object, except that the resulting reference object maintains a  link to its source object. A reference object automatically inherits any changes that have been made to the source object when you open or regenerate the module that contains the reference object.

Parameters:

89.               What are Parameters?

Parameters provide a simple mechanism for defining and setting the values of inputs that are required by a form at start-up. Form parameters are variables of type Char, Number, Date that you define at design time.

90.               System Variables in Forms

SYSTEM

91.                List the system variables related in Block and Field?

a.       SYSTEM.BLOCK_STATUS
b.       SYSTEM.CURRENT_BLOCK
c.       SYSTEM.CURRENT_FIELD
d.       SYSTEM.CURRENT_VALUE
e.       SYSTEM.CURSOR_BLOCK
f.        SYSTEM.CURSOR_FIELD
g.       SYSTEM.FIELD_STATUS.

92.               What is the difference between SYSTEM.CURRENT_FIELD and SYSTEM.CURSOR_FIELD?

                SYSTEM.CURRENT_FIELD gives name of the field.
                SYSTEM.CURSOR_FIELD gives name of the field with block name.

93.               The value recorded in SYSTEM.LAST_RECORD variable is of type.

                a. Number.
                b. Boolean.
                c. Character.

Ans.         b. Boolean.

94.               Whether SYSTEM_PARAMETERS can be created?

No

95.               When a user clicks in a record (multi-record block) which give the current record value

SYSTEM.CURSOR_RECORD

96.               What are the system variables that can be updated

SYSTEM.MESSAGE_LEVEL (6 VALUES - 0,5,10,15,20,25, 25 - MAX, 0 - MIN SEVERITY)
SYSTEM.EFFECTIVE_DATE
SYSTEM.SUPPRESS_WORKING
SYSTEM.DATE_THRESHOLD

97.                State any three mouse events system variables?

SYSTEM.MOUSE_BUTTON_PRESSED
SYSTEM.MOUSE_BUTTON_SHIFT_STATE
SYSTEM.MOUSE_ITEM
SYSTEM.MOUSE_CANVAS
SYSTEM.MOUSE_RECORD

98.               What are the Built-ins used for sending Parameters to forms?

You can pass parameter values to a form when an application executes the CALL_FORM, NEW_FORM, OPEN_FORM or RUN_PRODUCT.

99.               What are OPEN_FORM, CALL_FORM, NEW_FORM Difference?

CALL_FORM: It calls the other form. but parent remains active, when called form completes the operation ,  it releases lock and control goes back to the calling form. When you call a form, Oracle Forms issues a savepoint for the called form.  If the CLEAR_FORM function causes a rollback when the called form is current, Oracle Forms rolls back uncommitted changes to this savepoint. Suspends the calling form and opens the new form.To access the calling form,called form need to be closed.It is not possible to access both the forms simultaneously.

OPEN_FORM: When you call a form, Oracle Forms issues a savepoint for the called form.  If the CLEAR_FORM function causes a rollback when the called form is current, Oracle Forms rolls back uncommitted changes to this savepoint.  It neither closes nor suspends the calling form.It leaves the calling form in accessible state and opens the called form.By using Open_Form we can access both or multiple forms the forms simultaneously.

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, Oracle Forms keeps the higher call active and treats it as a call to the new form.  Oracle Forms releases memory (such as database cursors) that the terminated form was using.  It Closes the current form(calling form) and opens a new form

Oracle Forms runs the new form with the same Runform options as the parent form.  If the parent form was a called form, Oracle Forms runs the new form with the same options as the parent form.

100.            What are the different Parameter types?

                Text Parameters
                Data Parameters

101.             When do you use data parameter type?

When the value of a data parameter being passed to a called product is always the name of the record group defined in the current form. Data parameters are used to pass data to products invoked with the RUN_PRODUCT built-in subprogram.

102.            Can you pass data parameters to forms?

                No.

103.            What is the maximum no of chars the parameter can store?

The maximum no of chars the parameter can store is only valid for char parameters, which can be upto 64K.
Number parameters default to 23Bytes and Date parameter default to 7Bytes.

104.            How do you call other Oracle Products from Oracle Forms?

RUN_PRODUCT is a built-in, Used to invoke one of the supported oracle tools products and specifies the name of the document or module to be run. If the called product is unavailable at the time of the call, Oracle Forms returns a message to the operator.

105.            How do you reference a Parameter?

In PL/SQL, You can reference and set the values of form parameters using bind variables syntax. Ex. PARAMETER name = '' or :BLOCK.ITEM = PARAMETER.PARAMETER NAME

106.            How do you reference a parameter indirectly?                

To indirectly reference a parameter uses the NAME IN, COPY 'built-ins to indirectly set and reference the parameters value.

107.             When do you use data parameter type?

When the value of a data parameter being passed to a called product is always the name of the record group defined in the current form. Data parameters are used to pass data to products invoked with the RUN_PRODUCT built-in subprogram.

108.            Can you pass data parameters to forms?

No.

109.            What is call Form stack?

When successive forms are loaded via the CALL_FORM procedure, the resulting module hierarchy is known as the call form stack.

Popup Menus

110.             What do you mean by a Pop-Up window?

                Pop-up windows are screen areas that overlay all or a portion of the display screen when a form is running.

111.               What are the types of Pop-Up window?

                POP-UP field editor
                POP-UP list of values
                POP-UP pages.

Program Units

112.              Call function (various level)

If a function exists in both in form as well as in backend, Function in the form overrides the function in the backend. Means Form Function will be run.

113.              Procedure A calls B which in turn calls C? How will u trap the error raised in C in A.

My solution was to add something like this at the end of all program units and triggers in forms:

exception
when form_trigger_failure then
raise;
when others then

raise form_trigger_failure;
end;

This approach can be adapted to pl/sql on the database. Create a package spec containing an exception that will be used through the application similar to form_trigger_failure. Then each time you write an exception handler first trap for the form_trigger_failure. If it is, it means the error was already logged and now we are just propagating back out to stop program flow. if the exception is not form_trigger_failure then log the error (likely to a column in a table or perhaps to some text file and finally raise form_trigger_failure.
 

114.              In package specification, a procedure is declared, whether it needs to be coded in the package body.  In package body, a procedure is written, whether it needs to be declared in the package specification.

Procedure declared in a package specification must be coded in Package Body. But the Vice-Versa is not a must.

Procedure declared in a package body, need not be declared in a package specification if the procedure in written Private to a Function or Procedure. (I.E procedure written within a procedure declaration)




Property Classes

115.              What are property classes? Can property classes have trigger?

Property class inheritance is a powerful feature that allows you to quickly define objects that conform to your own interface and functionality standards. Property classes also allow you to make global changes to applications quickly.  By simply changing the definition of a property class, you can change the definition of all objects that inherit properties from that class.

116.              If you have property class attached to an item and you have same trigger written for the item. Which will fire first?

Item level trigger fires, if item level trigger fires, property level trigger won't fire. Triggers at the lowest level are always given the first preference. The item level trigger fires first and then the block and then the Form level trigger.

Record Groups

117.              What are Record Groups? Can record groups created at run-time?

A record group is an internal Oracle Forms data structure that has a column/row framework similar to a database table.  However, unlike database tables, 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 columns 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.

Programmatically, record groups can be used whenever the functionality offered by a two-dimensional array of multiple data types is desirable.

TYPES OF RECORD GROUP:

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.

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.

Static Record Group: A static record group is not associated with a query; rather, you define its structure and row values at design time, and they remain fixed at runtime.

118.              How many numbers of columns a record group can have?

A record group can have an unlimited number of columns of type CHAR, LONG, NUMBER, or DATE provided that the total number of column does not exceed 64K.

119.              What is the Maximum allowed length of Record group Column?

Record group column names cannot exceed 30 characters.

120.            Use the ADD_GROUP_COLUMN function to add a column to record group that was created at a design time? True or False?

False.

121.              Use the ADD_GROUP_ROW procedure to add a row to a static record group. True or False?

False.

122.             What is the Maximum allowed length of Record group Column?

Record group column names cannot exceed 30 characters.

123.             How do I pass a Record Group from Form Builder to Reports Developer or Graphics Builder?

A record group is passed to Reports Developer or Graphics Builder as a DATA parameter.  This DATA parameter is a special type of parameter that gives a signal to the integration code to substitute the contents of the record group whose name you give for the results of the query named by the query name you indicate. 

124.             Duplicate Checking using Record Group?

                Start:
a.       FIND_GROUP (RG_NAME)
b.       CREATE_GROUP(RG_NAME)
c.       ADD_GROUP_COLUMN(RG_ID, RG_COLUMN_NAME,TYPE, SIZE)

                Find:
d.       FIND_GROUP(RG_NAME)
e.       FIND_COLUMN(RG_COLUMN_NAME)
f.        GET_GROUP_ROW_COUNT(RG_ID)
g.       GET_GROUP_CHAR_CELL(RG_ID,RECORD_NUMBER)

                Insert:
h.       FIND_GROUP(RG_NAME)
i.        FIND_COLUMN(RG_COLUMN_NAME)
j.        GET_GROUP_ROW_COUNT(RG_ID)
k.       ADD_GROUP_ROW(RG_ID, RECORD_NUMBER)
l.        SET_GROUP_CHAR_CELL(RG_ID,RECORD_NUMBER,VALUE)

                Delete:
m.     FIND_GROUP(RG_NAME)
n.      GET_GROUP_ROW_COUNT(RG_ID)
o.       DELETE_GROUP_ROW(RG_ID, RECORD_NUMBER)

125.             What is relation between LOV & Record Group? Can record Group be independent of LOV and vice versa? Explain

LOV is a scrollable window, which displays data based on the Record Group that is built-in. Based on the Record Group, the LOV displays data. Because of this LOV is always dependent on Record Group where as the converse is not possible.

Visual Attributes

126.             What is a visual attribute? Types?

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

Default Visual Attributes:  Setting the Visual Attribute Name property to Default specifies that that the object should be displayed with default color, pattern, and font settings. 

Custom Visual Attributes:  Setting the Visual Attribute Name property to Custom specifies that the object should be displayed with the attribute settings that you specify          for the object explicitly at design time, either in the Properties window or in the Layout Editor.

Named Visual Attributes:  Setting the Visual Attribute Name property to a named visual attribute defined in the same module specifies that the object should use the attribute settings defined for the named visual attribute. 

127.             What are the types of visual attribute settings?

                Common
                Prompt
                Title

128.             Can u change VAT at run time?

Yes. You can programmatically change an object's named visual attribute setting to change the font, color, and pattern of the object at runtime.

129.             Can u set default font in forms?

Yes. Change windows registry(regedit). Set form45_font to the desired font.

130.            Difference between Visual Attribute & Property Classes

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.

Windows

131.              What are the different modals of windows?

                Modalless windows
                Modal windows

132.             What are modalless windows?

More than one modalless window can be displayed at the same time, and operators can navigate among them if your application allows them to do so . On most GUI platforms, modalless windows can also be layered to appear either in front of or behind other windows.

133.             What are modal windows?

Modal windows are usually used as dialogs, and have restricted functionality compared to modalless windows. On some platforms for example operators cannot resize, scroll or codify a modal window.

134.             What is relation between the window and canvas views?

Canvas views are the back ground objects on which you place the interface items (Text items), check boxes, radio groups etc.,) and boilerplate
objects (boxes, lines, images etc.,) that operators interact with us they run your form. Each canvas views displayed in a window.

135.             How do you display console on a window? 

The console includes the status line and message line, and is displayed at the bottom of the window to which it is assigned.

To specify that the console should be displayed, set the console window form property to the name of any window in the form. To include the console, set console window to Null.

136.             How many windows in a form can have console?

Only one window in a form can display the console, and you cannot change the console assignment at runtime.

137.             What is the remove on exit property?

For a modelless window, it determines whether oracle forms hides the window automatically when the operators navigates to an item in the another window.

138.             What is FORMS_MDI_WINDOW?

Forms run inside the MDI application window. This property is useful for calling a form from another one.

139.             Can you have more than one content canvas view attached with a window?

Yes. Each window you create must have at least one content canvas view assigned to it. You can also create a window that has manipulate content canvas view. At run time only one of the content canvas views assign to a window is displayed at a time.

140.            How can I change the title of my RUNFORM window?

                Use the following code in you When-New-Form-Instance trigger:
                        SET_WINDOW_PROPERTY(FORMS_MDI_WINDOW, TITLE, 'YOUR TITLE');

Menus
Object Libraries
Forms

141.              What is Synchronize?

It is a terminal screen with the internal state of the form. It updates the screen display to reflect the information that oracle forms has in its internal representation of the screen.

142.             What is POST?

Writes data in the form to the database, but does not perform a database commit.  Alternatively, this data can be rolled back by the next CLEAR_FORM.

If this form was called via OPEN_FORM with the NO_SESSION parameter specified, then the POST will validate and write the data both in this form and in the calling form.

143.             Name the two files that are created when you generate the form give the flex extension?

                INP (Source File)
                FRM (Executable File)

144.             What ERASE package procedure does?

                Erase removes an indicated global variable.

145.             What the PAUSE package procedure does?

                Pause suspends processing until the operator presses a function key

146.             What is the difference between NAME_IN and COPY?

                Copy is package procedure and writes values into a field.
Name in is a package function and returns the contents of the variable to which you apply.

147.             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 in your trigger text?

                Break.

148.             What is an OLE?

Object Linking & Embedding provides you with the capability to integrate objects from many Ms-Windows applications into a single compound document creating integrated applications enables you to use the features form.

149.             What is the difference between object embedding & linking in Oracle forms?

In Oracle forms, embedded objects become part of the form module, and linked objects are references from a form module to a linked source file.

150.            What is the difference between OLE Server & OLE Container?

An Ole server application creates ole Objects that are embedded or linked in ole Containers ex. Ole servers are MS_WORD & MS_EXCEL. OLE containers provide a place to store, display and manipulate objects that are created by ole server applications. E.g.: An Oracle form is an example of an ole Container.

151.              What are the different styles of activation of OLE Objects?

In place activation
External activation

152.             What is OLE Activation style property?

Specifies the event that will activate the OLE containing item.

153.             What is a TEXT_IO Package?

It allows you to read and write information to a file in the file system.

154.             What is FORMS_DDL?

Issues dynamic SQL statements at run time, including server side PL/SQL and DDL  

155.             Can you issue DDL in forms?

Yes, but you have to use FORMS_DDL.

Referencing allows you to create objects that inherit their functionality and appearance from other objects. Referencing an object is similar to copying an object, except that the resulting reference object maintains a link to its source object. A reference object automatically inherits any changes that have been made to the source object when you open or regenerate the module that contains the reference object.

Any string expression up to 32K:
a literal
an expression or a variable representing the text of a block of dynamically created PL/SQL code
a DML statement or
a DDL statement

Restrictions:
The statement you pass to FORMS_DDL may not contain bind variable references in the string, but the values of bind variables can be concatenated into the string before passing the result to FORMS_DDL. 

156.             What is path setting for DLL?

Make sure you include the name of the DLL in the FORMS45_USEREXIT variable of the ORACLE.INI file, or rename the DLL to F45XTB.DLL.  If you rename the DLL to F45XTB.DLL, replace the existing F45XTB.DLL in the \ORAWIN\BIN directory with the new F45XTB.DLL.

157.             How is mapping of name of DLL and function done?

The DLL can be created using the Visual C++ / Visual Basic Tools and then the DLL is put in the path that is defined the registry.

158.             Can u port applications across the platforms? How?

Yes we can port applications across platforms. Consider the form developed in a windows system. The form would be generated in UNIX system by using f45gen.

159.             Can u change the mouse pointer? How?

Yes. Specifies the mouse cursor style.  Use this property to dynamically change the shape of the cursor.

160.            What are SAVEPOINT Mode and CURSOR mode properties? Level?

Specifies whether Oracle Forms should issue SAVEPOINTS during a session. This property is included primarily for applications that will run against non-ORACLE data sources. For applications that will run against ORACLE, use the default setting.

Cursor mode - define cursor state across transaction Open/close.

161.              Can you replace default Form Processing? How?

162.             What is Transactional Trigger property?

Identifies a block as transactional control block. i.e. non - database block that oracle forms should manage as transactional block.(NON-ORACLE Data Source) default - FALSE.

163.             What is OLE Automation?

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

164.             What is an USER_EXIT?

Calls the user exit named in the USER_EXIT_STRING. Invokes a 3GL program by name which has been properly linked into your current oracle forms executable.

165.             What is Foreign Functions ?  What is the use of this function?

Foreign functions are subprograms written in a 3GL programming language for    customizing Oracle Forms applications.  Foreign functions can interact with Oracle databases, and Oracle Forms variables and items.  Although it is possible to access          Oracle Forms variables and items, you cannot call Oracle Forms built-in subprograms         from a foreign function.

                Foreign functions can be used to perform the following tasks:

a.       Replace default Oracle Forms processing when running against a non-Oracle data source using transactional triggers.
b.       Perform complex data manipulation.
c.       Pass data to Oracle Forms from operating system text files.
d.       Manipulate LONG RAW data.
e.       Pass entire PL/SQL blocks for processing by the server.
f.        Control real time devices, such as a printer or a robot.

166.             What are the types of Foreign Functions?

a.       Oracle Precompiler Foreign Functions:  An Oracle Precompiler foreign function incorporates the Oracle Precompiler interface.  This interface allows you to write a subprogram in one of the following supported host languages with embedded SQL commands: ADA, C, COBOL, FORTRAN, Pascal, PL/I

b.       Oracle Call Interface (OCI) Foreign Functions:  An OCI foreign function incorporates
the Oracle Call Interface.  This interface allows you to write a subprogram that contains calls to Oracle databases.  A foreign function that incorporates only the OCI (and not the Oracle Precompiler interface) cannot access Oracle Forms variables and items.  For more information on the OCI, refer to the Programmer's Guide to the Oracle Call Interface.

c.       Non-Oracle Foreign Functions:  A non-Oracle foreign function does not incorporate either the Oracle Precompiler interface or the OCI.  For example, a non-Oracle foreign function might be written entirely in the C language.  A non-Oracle foreign function cannot access Oracle databases, or Oracle Forms variables and items.

167.             Can you pass values To-and-From Foreign Function (FFI)? How?

Yes. You obtain a return value from a foreign function by assigning the return value to an Oracle Forms variable or item. Make sure that the Oracle Forms variable or item is the same data type as the return value from the foreign function.
After assigning an Oracle Forms variable or item value to a PL/SQL variable, pass the PL/SQL variable as a parameter value in the PL/SQL interface of the foreign function. The PL/SQL variable that is passed as a parameter must be a valid PL/SQL data type; it must also be the appropriate parameter type as defined in the PL/SQL interface.

168.             Can I access the contents of a record group within a user exit?

To access the contents of a record group within a user exit, the values first have to be placed within a database block.  At present, user exits do not have any knowledge of the data structure of a Form Builder record group.
With the advent of ORA_FFI it is likely that the need for user exits will now diminish, as you can make Microsoft Windows SDK and SLL function calls directly from PL/SQL.  You will thus still have access to the Record Group values.

169.             If I want to create a procedure should I use a library, a database stored procedure, or a local Form procedure?

These different forms of procedures will produce different performance results depending on what you are trying to achieve. 
Execution:
Database Procedure will be invoked on the server side and will perform all of the processing there.  This may help reduce network traffic, but may overload the server if many clients are doing this.

Library procedures are quite similar in that they are both stored and run on the client with any SQL statements being passed to the server.

Local procedures are typically faster on execution because they are actually part of the .FMX file, but may use more memory and have a longer startup time when the .FMX file is initially invoked.

                Memory:
Library Procedures may be better in terms of overall memory as procedures are only loaded into memory in 4K chunks when they are required.  Once loaded, they are read from memory.  They have the additional advantage that the library can be attached to a number of forms at once.

170.             When should I use Global Variables, Parameter, or Package variables?

There is no single right answer to this, but here are some guidelines that might help you decide:

Data Type: 
Global are always CHAR data. 

Parameters are NUMBER, CHAR, or DATE. 

Package variables can be any PL/SQL data type.

Creation: 
Global are created the first time they are assigned.

Parameters must be named and typed at design-time, or alternately may be added to a parameter list at runtime with the ADD_PARAMETER() built-in.

Package variables are explicitly declared as part of a package.

Default Values: 
Global must have a value programmatically assigned.

Parameters can be assigned a default value of the proper data type at design-time.

Package variables can be assigned a default value of the proper data type at design-time.  Package variables can also be initialized with arbitrarily complex code in the initialization block of the package.

Assignment: 
Global are assigned directly through PL/SQL with the bind variable notation (:GLOBAL.GLOBAL_NAME), or indirectly using the Copy() built-in.

Parameters in the default parameter list (those created at design-time) are assigned directly through PL/SQL with the bind variable notation (:PARAMETER.PARAM_NAME), or indirectly with the Copy() built-in.  If part of a parameter list is not the default parameter list, then the SET_PARAMETER_ATTR() built-in is used. In addition, parameters which are declared at design-time can be supplied with values on the command line using the "PARAMNAME=Value" syntax.

Package variables are assigned directly through PL/SQL.

Scope: 
Global names are global to the whole RUN_FORM session.  Therefore, if you try to combine two forms that happen to use the same global name for different purposes, the forms will not integrate without changes.

Parameter values are local to a particular form.  There is no interaction, unless a parameter is explicitly passed from one form to another.  When integrating forms it is essential to ensure that they share the correct parameter names.

Package variables are qualified by the name of the package.  If two packages declare the same variable name, there is no interaction between them.  Integrating forms that rely on package variables for their shared global data is much more straightforward than using the other two methods, because there are no hidden subtle interactions between same-name objects.

Persistence:
Global preserve their value for the duration of the RUN_FORM session, unless explicitly erased.  They are visible to all forms which get called during the session.  Any modification made to a global variable in a called form is visible to any calling form and all subsequent forms in the session.

Parameters are visible only to the form in which they are declared, unless they are passed as part of a parameter list.  In this case they supply incoming values for the form-level parameters declared for the called form.

Package variables preserve their value for the duration of the RUN_FORM session.  They are visible to all forms which get called during the session provided the CALL_FORM argument DATA_MODE is set to SHARE_LIBRARY_DATA.  Any modification made in a called form to a package variable is visible to any calling form and all subsequent forms in the session.

Documentation: 
Global can be created anywhere in any trigger.  Unless a developer is disciplined and uses some sort of methodology. Very hard to find and document.  Errors are easy to make and hard to find, since a typing error when assigning to a global simply creates a new global under the new, mistyped name.

Parameters exist as named object at the form level, can have meaningful default values, and can be documented with object comments like any other forms object.

Package variables are declared explicitly in a package and can be explicitly initialized.  They can be easily documented in the PL/SQL code.

Summary:
To pass values into a form from the command line, use parameters.

If you specifically need to create variables dynamically, use Global, but first consider whether a table of records would be a more efficient mechanism for storing many dynamically created values.

For all other purposes use package variables.

171.               Explain DDE?

DDE means Dynamic Data Exchange (DDE).  DDE is a mechanism by which applications  can communicate and exchange data.  DDE client support is a procedural extension to Oracle Forms for Microsoft Windows.  A PL/SQL package for DDE support, consisting of the functions listed in this chapter, provides application developers with an Application Programming Interface (API) for accessing DDE functionality from within PL/SQL procedures and triggers.

The DDE functions enable Oracle Forms, a DDE client application, to communicate with DDE server applications in the following ways:

                Importing Data.
                Exporting Data.
                Executing commands against the DDE server.

                Limitations:  Oracle Forms does not include the following:

Data linking (advise transaction):  Oracle Forms cannot automatically receive an update notice when a data item has changed.

Server support:  Oracle Forms cannot respond to commands or requests for data from a DDE client.


172.             Explain EXEC_SQL?

The EXEC_SQL package allows you to access multiple Oracle database servers on several different connections at the same time. Connections can also be made to ODBC data sources via the Open Client Adapter (OCA), which is supplied with Developer. To access non-Oracle data sources, you must install OCA and an appropriate ODBC driver.

The EXEC_SQL package contains procedures and functions you can use to execute dynamic SQL within PL/SQL procedures. Like the DBMS_SQL package, the SQL statements are stored in character strings that are only passed to or built by your source program at runtime. You can issue any data manipulation language (DML) or data definition language (DDL) statement using the EXEC_SQL package.


173.             How to change the trigger execution hierarchy in Oracle Forms?
There is one property called "Execution Hierarchy"  for trigger.
It has 3 options: 1)Override(default)
                                         2)Before
                                        3)After
Override: It is default value.It Specifies that the current trigger fire instead of any trigger by the same name at any higher scope.It is called "Override Parent Behaviour".
Before: It specifies that the current trigger fire before firing the same trigger at the next higher scope. It is called "Fire Before Parent Behaviour".
After: It Specifies that the current trigger fire after firing the same trigger at the next higher scope.It is called  "Fire After Parent Behaviour".


174.             What are global variables in Oracle Forms?

Global Variables are active during current session and accessible to any module.

We can directly initialize a global variable anywhere in forms by using the following syntax.


:Global.Variable_Name  :=  'My Value';


We can reference this global variable in any module after initialization.

Referencing a global variable that has not been initialized through assignment causes a runtime error.

To destroy a global variable and release its memory, use Erase built-in procedure.


Erase('Global.Variable_Name');



175.             What are different types of record groups in Oracle Forms?

There are 3  types of Record groups : 1.Query Record Groups

                                                                             2.Non-Query Record Groups
                                                                             3.Static Record Groups

1.Query Record Groups: A Query record group will be created using select statement. It is very dynamic. It can be created and modified at design time as well as  runtime.

2.Non-Query Record Groups: These will not have an associated query but the structure and values can be modified programmatically at runtime. These can be created and modified only at runtime.

Creating and Populating a Non-Query Record Group:


Declare
Group_Id RecordGroup;     --declared recordgroup type variable
Col1_id       GroupColumn;   --declared 3 groupcolumn type variables.
Col2_id       GroupColumn;
Col3_id       GroupColumn;

Begin
Group_Id  := Create_Group(my_group);  --Created a non-query record group.

/*Add 3 columns to the group named "my_group" using the function  Add_Group_Column*/


Col1_id := Add_Group_Column(Group_Id, 'Col1', Char_Column, 50);

Col2_id := Add_Group_Column(Group_Id, 'Col2', Char_Column, 50);
Col3_id := Add_Group_Column(Group_Id, 'Col3', Number_Column);

End;


3.Static Record Groups: A Static record group is not associated with query, instead, you define its structure and row values at design time and they remain fixed at runtime. These can be created and modified only at design time.


Note:
You do not need to specify the record group type explicitly. The type is implied by when the record group is created (at design time or at runtime) and how the group is defined.

176.             What are different types of master-detail block co-ordinations?
1.Isolated
2.Non-Isolated
3.Cascade

1.Isolated: The master record can be deleted even if associated detail records exist in the database.


2.Non-Isolated: The master record can not be deleted if associated detail records exist in the database.


3.Cascade: The master record can be deleted and any associated detail records are automatically deleted from the database at commit time.

177.              What is the use of UBT?

                UBT (Universal Backend Tester) is an interactive command driver for testing and exercising the Oracle Open Client Adapter. UBT enables you to issue SQL     commands within the interpreter or through command files.  You can perform data                 migration by using the database table-to-table COPY command.

178.        What are the triggers created automatically when master-detail relation       established?

Master Deletes property Resulting triggers

Non-Isolated (the default)
On-Check-Delete-Master (It will not allow to remove parent row when depending child row exists.)
On-Clear-Details (It is form level trigger. When we clear the master record, the corresponding child records are cleared automatically)
On-Populate-Details (Retrieves child record automatically, whenever the master( parent ) row is retrieved on to the screen)
Cascading
On-Clear-Details
On-Populate-Details
Pre-Delete

Isolated
On-Clear-Details
On-Populate-Details

179.      Is it possible to change the where clause of a block dynamically in Oracle Forms? How?
Yes.        Using the Oracle Open Client Adapter, an application can access different database                management systems in one consistent manner.  This allows an application developer to            develop, compile, and ship an application without targeting a specific DBMS.


Watch PLSQL Interview Q&A videos



No comments:

Post a Comment