I use this code to get the error message from DSNTIAR
CALL_PARM DS 0F
PARM_1 DC A(SQLCA)
PARM_2 DC A(MSGLEN)
PARM_3 DC A(MSGSIZE)
MSGSIZE DC F'72' LENGTH OF EACH LINE
MSGAREA DS H,CL(20*72)
ORG MSGAREA
MSGLEN DC AL2(20*72) 20 lines of 72 bytes
MSG_TEXT DS CL72
ORG
LA R1,CALL_PARM
L R15,=V(DSNTIAR) DSNTIAR EXPANDS THE ERROR
BASR R14,R15
LA R4,MSG_TEXT POINT TO FIRST 72 BYTE LINE
LA R5,20 20 LINES
LOOP EQU *
output 72 bytes to wherever (check >= blanks)
LA R4,72(,R4)
BCT R5,LOOP
Warning - there could be typos in the above.
You could also check R15 after the call and output a message if not 0. The
routine used to have 8 lines but in V8 or V9 of DB2 we got RC=4 because the
message did not fit. As a result we changed to 20 lines.
Hope it helps.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN