× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.


  • Subject: Re: Calling a stored procedure
  • From: rob@xxxxxxxxx
  • Date: Mon, 2 Apr 2001 16:14:28 -0500


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 thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 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.