|
I am getting a little further. I've created a program with many
statements, including the following:
...
* Call stored procedure
C eval stmt='CALL GDIDIVO/BOM240FILE ("' +
C UsrLib + '", "' +
C Parent + '", "' +
C KFaci + '")'
C callb SQLExecDirect
C parm hstmt
C parm stmt
C parm SQL_NTS
...
I realize I am probably doing many things wrong here and I am open for
critique.
1) I probably need to create a variable called SQLExecDirect and
initialize it to 'SQLExecDirect', or
2) Instead of CALLB maybe I should be using: eval
rc=SQLExecDirect(hstmt:stmt:SQL_NTS)
I) Where are the prototypes for these calls? I searched QSYSINC/QRPGLESRC
and the closest hit was SQLCLI. Teaser mentioned prototypes and
SQLExecDirect, and more, but didn't have the prototypes.
II) Where do I find SQL_NTS?
III) What do I bind to to get these procedures?
Rob Berendt
==================
Remember the Cole!
rob@dekko.com
Sent by: To: RPG400-L@midrange.com
owner-rpg400-l@mi cc:
drange.com Subject: Re: Calling a stored
procedure
04/02/01 11:09 AM
Please respond to
RPG400-L
Resubmit:
C'mon, any responses? This works from Notes. (Well, if the data and
programs reside on the same 400 as the Domino server.) I just want to know
how to do it straight from RPG.
There is a good example at:
http://publib.boulder.ibm.com/pubs/html/as400/v4r5/ic2924/info/RZAIKCALLINGSPRESULTSETS.HTM
However can someone translate that ODBC stuff into RPGLE?
Sample Notes code currently executing subprocedure:
...
txt="CALL " & plantdoc.bpcsprglib(0) & ".BOM240FILE('" &
Left(plantdoc.bpcsobjectlib(0)&String(10," "),10) & "', '" &
Left(doc.supplierinfofield(0)&String(15," "),15) & "', '" &
Left(plantdoc.BPCSFacility(0)&String(2," "),2) & "')"
Else
txt="CALL " & plantdoc.bpcsprglib(0) & ".BOM220FILE('" &
Left(plantdoc.bpcsobjectlib(0)&String(10," "),10) & "', '" &
Left(doc.supplierinfofield(0)&String(15," "),15) & "', '" &
Left(plantdoc.BPCSFacility(0)&String(2," "),2) & "')"
End If
query.sql=txt
Set result.query=query
If Not result.Execute Then
Messagebox result.GetExtendedErrorMessage,, result.GetErrorMessage
doc.piupdate=5
Call SendMailMsg(BPCSProfile,doc,"Could not execute " & txt)
Else
txt=""
If result.isresultsetavailable Then
result.nextrow
pifile=result.getvalue(1)
If Left(pifile,6)<>"*ERROR" And pifile<>"" Then
txt="SELECT * FROM " & plantdoc.bpcsfilelib(0) & "." &
pifile
Else
doc.piupdate=6
If reporttype>0 Then
Call SendMailMsg(BPCSProfile,doc,"BOM240FILE returned
parameter of '"+pifile+"'")
Else
Call SendMailMsg(BPCSProfile,doc,"BOM220FILE returned
parameter of '"+pifile+"'")
End If
txt=""
pifile=""
End If
Else
doc.piupdate=6
If reporttype>0 Then
Call SendMailMsg(BPCSProfile,doc,"No parameters were
returned from BOM240FILE")
Else
Call SendMailMsg(BPCSProfile,doc,"No parameters were
returned from BOM220FILE")
End If
End If
If txt<>"" Then
query.sql=txt
Set result.query=query
If Not result.Execute Then
Messagebox result.GetExtendedErrorMessage,,
result.GetErrorMessage
doc.piupdate=7
Call SendMailMsg(BPCSProfile,doc,"Could not execute " &
txt)
Else
If result.isresultsetavailable Then
Rob Berendt
==================
Remember the Cole!
rob@dekko.com
Sent by: To: RPG400-L@midrange.com
owner-rpg400-l@mi cc:
drange.com Subject: Calling a stored
procedure
03/30/01 02:00 PM
Please respond to
RPG400-L
I have an SQLRPGLE program named BOM240FILE with the following:
...
D BOM240FILE PR
D UserLibrary 10A
D ParentItem 15A
D Facility 2A
/COPY ROUTINES/QRPGLESRC,SRVPGMCPY
D BOM240FILE PI
D UsrLib 10A
D Parent 15A
D KFaci 2A
...
C/EXEC SQL
C+ SET RESULT SETS ARRAY :Parm1 FOR :Row1 ROWS
C/END-EXEC
...
I plan on calling it from another program with:
C/EXEC SQL
C+ CONNECT TO :DATABASE
C/END-EXEC
C/EXEC SQL
C+ CALL GDIDIVO/BOM240FILE (:UsrLib, :Parent, :KFaci)
C/END-EXEC
How do I get back the :Parm1?
Rob Berendt
==================
Remember the Cole!
+---
| This is the RPG/400 Mailing List!
| To submit a new message, send your mail to RPG400-L@midrange.com.
| To subscribe to this list send email to RPG400-L-SUB@midrange.com.
| To unsubscribe from this list send email to RPG400-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator:
david@midrange.com
+---
+---
| This is the RPG/400 Mailing List!
| To submit a new message, send your mail to RPG400-L@midrange.com.
| To subscribe to this list send email to RPG400-L-SUB@midrange.com.
| To unsubscribe from this list send email to RPG400-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator:
david@midrange.com
+---
+---
| This is the RPG/400 Mailing List!
| To submit a new message, send your mail to RPG400-L@midrange.com.
| To subscribe to this list send email to RPG400-L-SUB@midrange.com.
| To unsubscribe from this list send email to RPG400-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.