Re: Forms 4.5 and PowerBuilder Co-existing?

From: Patrick Campion <pcampion_at_thomtech.com>
Date: 1995/12/06
Message-ID: <30C64026.1328_at_thomtech.com>#1/1


Steve Muench <smuench_at_us.oracle.com> wrote:
>Developer/2000, its Forms 4.5 piece in especially, integrates
 with Windows and other
>Windows environments as easily as any other Windows tool. In
 comparison to Forms 4.0,
>Forms 4.5 fully leverages all Windows features and makes it
 easy to call external Windows
>DLL's.

How easy is 'easy'? Unless I'm missing something, there are two ways to call DLLs in Forms 4.5; either thru a PL/SQL interface or a USER_EXIT interface, and I wouldn't consider either of them 'easy'.

From the documentation that I've read, and from my conversations with Oracle support, the PL/SQL interface is of limited usefulness because
you can only call DLLs which have parameters that map directly to PL/SQL datatypes (e.g., simple datatypes like numbers and strings).
That is, you can call a DLL which has integer and character string parameters, but you're apparently out of luck if the DLL uses any kind of complex data structure (i.e, C "structs", Windows "handles", pointers to structures, etc.) Is this true?

The other alternative, using the USER_EXIT interface to DLLs, certainly doesn't look easy to me. When I called Oracle support to ask about this
3 weeks ago, they faxed me about 30 pages of notes on all the "housekeeping" stuff you have to do to use the USER_EXIT interface (e.g., registering
all foreign functions, not simply by declaring them, but by writing and compiling "IAPXTB" structures). Furthermore, according to Oracle bulletin 107448.352 which applies to Forms 4.5:

"You must use the Microsoft Visual C++ complier version 1.0 or 1.5.
No other compiler is supported. If you intend to embed SQL in your user exit you must use Pro*C 1.5.10 for Windows. No earlier version of this precompiler is supported."

This seems like an awful lot of effort to do something as simple as calling a DLL. (Does this mean you may need to buy a new compiler in order to
access certain DLLs via USER_EXIT, or am I missing something?)

>
>Perhaps the previous poster is referring to the process of
 declaring external Windows
>functions as tedious in Developer/2000. He has obviously not
 discovered the "Foreign
>Function Assistant" app that does all the work for him! :-) >

I myself had not discovered the Foreign Function Assistant app. Apparently, neither did the Oracle rep I talked to when I called about foreign functions and DLLs, because they never mentioned it.
(Instead they faxed me all of the stuff I mentioned previously, which makes it look far from simple to use DLLs with Forms. Even the Oracle rep knew this to be a cumbersome process.)

Please feel free to point out any errors or oversights I've made here. I'd love to know how to do this as easily and painlessly as possible thru Forms.
All of my information has come from either Oracle docs or thru my conversations with Oracle reps. If I've misunderstood something, please let me know. And please let me know where I can find the Foreign Function Assistant. Received on Wed Dec 06 1995 - 00:00:00 CET

Original text of this message