Joined: 14 Mar 2007 Posts: 8797 Location: Welsh Wales
Perhaps replacing your code from the starting point shown may help you see what the problem is
Note how the descriptor is used in this code
And please do learn how to use the code tags
Code:
ADDRESS DSNREXX
SQRUN=0
"EXECSQL DECLARE C1 CURSOR FOR S1"
IF SQLCODE <> 0 THEN CALL SQLCA
"EXECSQL PREPARE S1 INTO :RETURN FROM :SQLSTMT"
IF SQLCODE <> 0 THEN CALL SQLCA
"EXECSQL OPEN C1 "
DO UNTIL (SQLCODE <> 0)
"EXECSQL FETCH C1 USING DESCRIPTOR :RETURN "
IF ( SQLCODE = 0 ) THEN
DO
IF SQRUN = 0 THEN DO
SAY "# VARIABLES =" RETURN.SQLD
DO AZ = 1 TO RETURN.SQLD
SAY "VARIABLE "RIGHT(AZ,3)" =" RETURN.AZ.SQLNAME
END
SQRUN = 9
END
END
END
ADDRESS DSNREXX "EXECSQL CLOSE C1"
EXIT
SQLCA:
SAY "SQLSTATE =>>" SQLSTATE
SAY "SQLERRP =>>" SQLERRP
SAY "SQLERRMC =>>" SQLERRMC
SAY "SQLCODE =>>" SQLCODE
SAY "SQLWARN.0 =>>" SQLWARN.0",",
|| SQLWARN.1",",
|| SQLWARN.2",",
|| SQLWARN.3",",
|| SQLWARN.4",",
|| SQLWARN.5",",
|| SQLWARN.6",",
|| SQLWARN.7",",
|| SQLWARN.8",",
|| SQLWARN.9",",
|| SQLWARN.10
SAY "*************"
SAY "SQLERRD.1 =>>" SQLERRD.1",",
|| SQLERRD.2",",
|| SQLERRD.3",",
|| SQLERRD.4",",
|| SQLERRD.5",",
|| SQLERRD.6
SAY "*************"
EXIT (16)