/* REXX */
/* */
/* Ausführung von SQL STatements */
/* aus ... kopiert */
/* */
/*-----------------------------------------------------------------*/
arg STATEMENT
call init
call db2_connect
call do_select
call db2_disconnect
return count
do_select:
ADDRESS DSNREXX
"EXECSQL DECLARE C1 CURSOR FOR S1"
sqlcall="SCMRCRE: DECLARE"
rc=check_sqlcode(SQLCODE);
"EXECSQL PREPARE S1 INTO :OUTSQLDA FROM :STATEMENT"
sqlcall="SCMRCRE: PREPARE"
rc=check_sqlcode(SQLCODE);
"EXECSQL OPEN C1"
sqlcall="SCMRCRE: OPEN CURSOR"
rc=check_sqlcode(SQLCODE);
"EXECSQL FETCH C1 USING DESCRIPTOR :OUTSQLDA"
count=0
Do while(SQLCODE = 0)
Do i = 1 To OUTSQLDA.SQLD
queue OUTSQLDA.i.SQLDATA
count=count+1
end
"EXECSQL FETCH C1 USING DESCRIPTOR :OUTSQLDA"
end
sql_result.0 = linenr
SQLCALL="SCMRCRE: FETCH CURSOR"
rc=check_sqlcode(SQLCODE);
"EXECSQL CLOSE C1"
sqlcall="SCMRCRE: CLOSE CURSOR"
rc=check_sqlcode(SQLCODE);
return rc
init:
ssid = 'DB31'
creator= '$DB3EPV9'
table = 'PV0I1T'
panel = 'LINESOFC'
rc = 0
STEPLIBS = "'DB3A.SDSNEXIT','DB3A.SDSNLOAD'" /* DB2 */
return rc
db2_connect:
address tso "alloc dd(STEPLIBX) DA("steplibs") shr reu"
SUBCOM DSNREXX /* set up host environment */
IF RC THEN /* is host command there */
x = RXSUBCOM(ADD,DSNREXX,DSNREXX) /* no: so create it */
ADDRESS DSNREXX
'CONNECT' ssid
sqlcall="SCMRCRE: Connect to DB2"
rc=check_sqlcode(SQLCODE);
return rc
db2_disconnect:
ADDRESS DSNREXX
"DISCONNECT"
sqlcall="SCMRCRE: DISCONNECT"
rcc=check_sqlcode(SQLCODE);
address tso "free dd(STEPLIBX)"
return rcc
check_sqlcode:
IF SQLCODE = 0 THEN RETURN 0;
IF SQLCODE = 100 THEN RETURN 0; /* Fetch auf letzten Satz */
SAY "Error detected at" sqlcall
SAY "SQLCODE =" SQLCODE
SAY "RETCODE =" RETCODE
SAY "SQLSTATE =" SQLSTATE
SAY "SQLERRMC =" SQLERRMC
SAY "SQLERRP =" SQLERRP
SAY "SQLERRD =" SQLERRD.1 ,
!! SQLERRD.2 ,
!! SQLERRD.3 ,
!! SQLERRD.4 ,
!! SQLERRD.5 ,
!! SQLERRD.6
SAY SQLWARN =SQLWARN.0 ,
!! SQLWARN.1 ,
!! SQLWARN.2 ,
!! SQLWARN.3 ,
!! SQLWARN.4 ,
!! SQLWARN.5 ,
!! SQLWARN.6 ,
!! SQLWARN.7 ,
!! SQLWARN.8 ,
!! SQLWARN.9 ,
!! SQLWARN.10
ADDRESS DSNREXX EXECSQL 'ROLLBACK'
return SQLCODE_SAVE
¤ Dauer der Verarbeitung: 0.23 Sekunden
(vorverarbeitet)
¤
|
Haftungshinweis
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.
|