>Is there any way through you can call the frame of same applica application
> through esql C..../.
>We are using Ingres 5.0.
Yes, I did this a few years back but I haven't got the code anymore,
however the steps are as follows:
1) Ingres passes variables from OSL frame to OSL frame/procedure using
a structure. The underlying C call passes a pointer to this structure
*not* the variables themselves. Naturally the structure changes in
size depending upon how many variables are being passed.
2) Therefore, write a dummy piece of OSL that calls the frame you want
and has the correct number and type of variables, etc. Compile this
OSL to produce a .OBJ file, but keep the .c file.
3) Examine the .c to see what the structure looks like. Copy the structure
into your C or ESQL/C program.
4) To actually call the frame in the old application you need to:
- populate the variables in the structure using C code
- call the compiled name of the frame. You can find this out by
examining the .c file created when the frame is compiled.
5) When the user quits out of the frame, the C code needs to access the
values of any variables that may have been returned by reference.
Be warned that it is tricky and not very flexible eg adding another
variable to the parameter list of the frame is a pain. I haven't looked
to see how Ingres passes quesries to a called frame. I assume that it is
simply another pointer to a structure holding the query added to the
structure holding the list of parameters being passed.
Regards,
--
-------------------------------------------------------------------------------
Bruce Horrocks So much to think about
Surrey, England so little to think with.
-------------------------------------------------------------------------------