• Subject: Directly accessing DB2/400 data from Domino across 400's
  • From: rob@xxxxxxxxx
  • Date: Wed, 28 Mar 2001 10:17:52 -0500


We had a Domino server, and DB2 data, on the same 400.  This is our
development situation.  In our live we have Domino on 1 400 and the DB2
data on the other.  We have a database, which accesses data in a BPCS
environment.  Runs a BPCS report, converts the report into a disk file and
sucks the data back into Domino.  All from pushing a Domino button.  Works
great as long as the DB2 and the Domino are on the same 400.  When we moved
the Domino database into production, but left the data in development, it
failed.  Sort of.  It still called the BPCS programs, ran the report,
converted the report back into a disk file.  But it's supposed to pass us
the name of the file back and we execute further script to bring the file.
This is how it passes the name of the file back:

C/EXEC SQL
C+ SET RESULT SETS ARRAY :Parm1 FOR :Row1 ROWS
C/END-EXEC

The difference we notice in the joblog is that when the Domino is ran from
production versus being on the same development 400 is that two additional
messages appear in the joblog.  They are:
SQL0104    Diagnostic              30    03/27/01   16:43:56   QSQXCUTE
QSYS        *STMT    QSQXCUTE     QSYS         *STMT
                                     From module . . . . . . . . :
QSQXCUTE
                                     From procedure  . . . . . . :
CLEANUP
                                     Statement . . . . . . . . . :   17293
                                     To module . . . . . . . . . :
QSQXCUTE
                                     To procedure  . . . . . . . :
CLEANUP
                                     Statement . . . . . . . . . :   17293
                                     Message . . . . :   Token
<END-OF-STATEMENT> was not valid. Valid tokens: (
                                       LIKE.
                                     Cause . . . . . :   A syntax error was
detected at token <END-OF-STATEMENT>.
                                       Token <END-OF-STATEMENT> is not a
valid token.  A partial list of valid
                                       tokens is ( LIKE.  This list assumes
that the statement is correct up to the
                                       token.  The error may be earlier in
the statement, but the syntax of the
                                       statement appears to be valid up to
this point. Recovery  . . . :   Do one
                                       or more of the following and try the
request again: -- Verify the SQL
                                       statement in the area of the token
<END-OF-STATEMENT>. Correct the
                                       statement.  The error could be a
missing comma or quotation mark, it could
                                       be a misspelled word, or it could be
related to the order of clauses. -- If
                                       the error token is
<END-OF-STATEMENT>, correct the SQL statement because it
                                       does not end with a valid clause.
...
SQL0464    Information             00    03/27/01   16:43:59   QSQCALL
QSYS        *STMT    QSQCALL      QSYS         *STMT
                                     From module . . . . . . . . :
QSQCALL
                                     From procedure  . . . . . . :
CLEANUP
                                     Statement . . . . . . . . . :   19038
                                     To module . . . . . . . . . :
QSQCALL
                                     To procedure  . . . . . . . :
CLEANUP
                                     Statement . . . . . . . . . :   19038
                                     Message . . . . :   Procedure
returned 1 result
                                       sets, which exceeds the defined
limit of 0.
                                     Cause . . . . . :   The stored
procedure                                in

completed normally. However, the stored
                                       procedure exceeded the defined limit
on the number of result sets a
                                       procedure can return. Only 0 result
sets are returned to the SQL program
                                       that issued the SQL CALL statement.
The possible causes are: -- The number
                                       of result sets is greater than the
maximum specified when the procedure was
                                       created. -- The stored procedure is
unable to return 1 result sets due to
                                       DRDA limitations imposed by the
client. Recovery  . . . :   The SQL
                                       statement is successful.  The
SQLWARN9 field of the SQLCA is set to 'Z'.


The Domino code looks something like:
Else
     servername=plantdoc.bpcssystemname(0)
End If

If Not session.isonserver Then
     servername=servername & "-RON"
End If

If Not conn.connectto(servername,
bpcsprofile.username(0),bpcsprofile.password(0)) Then
     Print "Could not connect to the AS/400 '" & servername & "'."
     doc.piupdate=4
     If servername="" Then
          Call SendMailMsg(BPCSProfile,doc,"The system name is not defined
in BPCS Library List for facility '" & doc.pifac(0) & "'")
     Else
          Call SendMailMsg(BPCSProfile,doc,"Could not connect to system '"
& servername & "'")
     End If
End If

If doc.piupdate(0)=0 Then
     Set query.connection=conn
     Do While doc.hasitem("PI_Report")
          Call Doc.RemoveItem("PI_Report")
     Loop
     pifile=""
     Set rtitem = New NotesRichTextItem( Doc, "PI_Report" )
     If reporttype>0 Then
     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


I have a pmr opened with Domino:  79730,500, but I'd thought I'd pick your
brains also.

Rob Berendt

==================
Remember the Cole!

+---
| This is the Domino/400 Mailing List!
| To submit a new message, send your mail to DOMINO400@midrange.com.
| To subscribe to this list send email to DOMINO400-SUB@midrange.com.
| To unsubscribe from this list send email to DOMINO400-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: meechamw@ptd.net
+---

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.