| Title: | FOCUS, from INFORMATION BUILDERS |
| Moderator: | ZAYIUS::BROUILLETTE |
| Created: | Thu Feb 19 1987 |
| Last Modified: | Mon May 05 1997 |
| Last Successful Update: | Fri Jun 06 1997 |
| Number of topics: | 615 |
| Total number of notes: | 1779 |
I am trying to write a subroutine which does a LIB$GET_SYMBOL using
COBOL. I have compiled and linked into the fuselib procedures. This
is a COBOL procedure which has worked on it's own before, but when
invoking the subroutine via FOCUS, it returns nothing.
I do a global symbol in DCL before even running focus.
$request_id :== abcd1234
The next reply will contain the cobol program and the fex which
I am trying to use to produce the symbol in focus. If someone
sees anything obvious or knows what is needed to make this work,
I would be eternally grateful.
John
| T.R | Title | User | Personal Name | Date | Lines |
|---|---|---|---|---|---|
| 528.1 | the cobol program for lib$get_symbol | MELEE::DBA | Tue Aug 18 1992 15:09 | 13 | |
IDENTIFICATION DIVISION.
PROGRAM-ID. GETSYM.
DATA DIVISION.
WORKING-STORAGE SECTION.
LINKAGE SECTION.
01 SYMBOL_NAME PIC X(20).
01 SYMBOL_VALUE PIC X(80).
PROCEDURE DIVISION USING SYMBOL_NAME, SYMBOL_VALUE.
BEGIN.
CALL "LIB$GET_SYMBOL" USING
BY DESCRIPTOR SYMBOL_NAME
BY DESCRIPTOR SYMBOL_VALUE.
| |||||
| 528.2 | the fex to execute | MELEE::DBA | Tue Aug 18 1992 15:10 | 2 | |
-SET &VAL = GETSYM('REQUEST_ID','A80');
-TYPE &VAL
| |||||
| 528.3 | EVTDD1::CARRIERE | Jean-Claude Carriere | Fri Aug 28 1992 12:07 | 15 | |
Hello, I think you routine fails because the LIB$GET_SYMBOL routine requires an exact match, e.g. no trailing spaces. Here you have symbol_name declare as x(20) therefore the descriptor is pass as such. You should add one parameter to the GETSYM routine to pass the lenth of the SYMBOL_NAME and build the corresponding descriptor to call LIB$GET_SYMBOL Hope this help. Regards Jean-Claude. | |||||