Oracle Forms 4.5 FAQ

Can on bypass the Oracle login screen?

The first thing that the user sees when using runform is the Oracle logon prompt asking them for their username, password, and database to connect to. You can bypass this screen or customise it by displaying your own logon screen. Eg:

ON-LOGIN

 
declare 
    uname varchar2(10); 
    pass  varchar2(10); 
begin 
    uname := 'username'; 
    pass  :='password'; 
    logon(uname, pass||'@connect_database'); 
end; 






Can one issue DDL statements from Forms?

DDL (Data Definition Language) commands like CREATE, DROP and ALTER are not directly supported from Forms because your Form is not suppose to manipulate the database structure.

A statement like CREATE TABLE X (A DATE); will result in error:

    Encountered the symbol "CREATE" which is an reserved word.
However, you can use the FORMS_DDL built-in to execute DLL statements. Eg:
    FORMS_DDL('CREATE TABLE X (A DATE)');

Can one execute dynamic SQL from Forms?

Yes, use the FORMS_DDL built-in or call the DBMS_SQL database package from Forms. Eg:
    FORMS_DDL('INSERT INTO X VALUES (' || col_list || ')');
Just note that FORMS_DDL will force an implicit COMMIT and de-synchronize Oracle Forms.


Forms won't allow me to use restricted built-in's. What should I do?

How to get around the "can't use a restricted built-in in built-in XXX" message:

1. Create a TIMER at the point where you want the navigation to occur. Eg. create_timer('TIMER_X', 5, NO_REPEAT);

2. Code a WHEN-TIMER-EXPIRED trigger to handle the navigation

DECLARE 
  tm_name  VARCHAR2(20); 
BEGIN 
  tm_name  := Get_Application_Property(TIMER_NAME); 
  IF tm_name = 'TIMER_X' THEN 
    Go_Item('ITEM_X'); 
  END IF; 
END;
Dirty but effective (didn't Oracle promise to fix this feature?).


Can one change the mouse pointer in Forms?

The SET_APPLICATION_PROPERTY build-in in Oracle Forms allow one to change the mouse pointer. Eg:

SET_APPLICATION_PROPERTY(CURSOR_STYLE, BUSY);


Why doesn't my messages show on the screen?

Regardless of whether you call the MESSAGE() built-in with ACKNOWLEDGE, NO_ACKNOWLEDGE, or with no mode specification at all, your message may or may not be displayed. This is because messages are displayed asynchronously. To display messages immediately, use the SYNCHRONIZE build-in:

message('...'); synchronize;

This can also be used to execute a query while the user is looking at the results of a previous query.


What happened to SQL*Menu?

SQL*Menu is now fully integrated into Oracle Forms 4.5. Application menus can be added to your application by creating Menu Modules (*.MMB) and generate it to Menu Module Executables (*.MMX).

Have a Oracle Question
Do you have an Oracle Question?

Oracle Books
Oracle Certification, Database Administration, SQL, Application, Programming Reference Books

Oracle Application
Oracle Application Hints and Tips

Oracle Home
Oracle Database, SQL, Application, Programming Tips

All the site contents are Copyright © www.erpgreat.com and the content authors. All rights reserved.
All product names are trademarks of their respective companies.
The site www.erpgreat.com is not affiliated with or endorsed by any company listed at this site.
Every effort is made to ensure the content integrity.  Information used on this site is at your own risk.
 The content on this site may not be reproduced or redistributed without the express written permission of
www.erpgreat.com or the content authors.