×

Good News Everybody!

The new search engine is LIVE!

Please report any problems to david (at) midrange.com.




Douglas,

this may not be relevant here, but I always use a 15,0 host variable for a 
count(*).

>From the SQL reference:

"The COUNT function returns the number of rows or values in a set of rows 
or values. expression The argument values can be of any built-in data type 
other than a BLOB, CLOB, DBCLOB, or DataLink. If DISTINCT is used, the 
resulting expression must not have a length attribute greater than 2000 
for a character column or 1000 for a graphic column. The result of the 
function is a large integer and it must be within the range of large 
integers. The result cannot be null. If the table is a distributed table, 
then the result is DECIMAL(15,0). For more information about distributed 
tables, see the DB2 Multisystem book."

Maybe your result is getting truncated?

HTH,

Peter Colpaert
Application Developer
Massive - Kontich, Belgium
-----
Yoda of Borg are we.  Futile is resistance, assimilated will you be.
-----




"Douglas W. Palme" <dpalme@xxxxxxxxxxx>
Sent by: rpg400-l-bounces@xxxxxxxxxxxx
14/07/2005 16:04
Please respond to RPG programming on the AS400 / iSeries

 
        To:     "RPG Group" <rpg400-l@xxxxxxxxxxxx>
        cc: 
        Subject:        sql saga continues


I spent the better portion of the night last night continuing to work with 

the embedded sql code.....of course its a learning curve and at times 
frustrating as hell but I am learning it slowly....


I have however run into a situation that after 4 hours I have not been 
able 
to figure out.  I have created a very simple sqlrpgle program that for 
right 
now is just to get the count of the records and write it to a variable. 
Sounds simple enough, however when running it in bebug mode it seems to 
execute but when I F11 the variable to see its value, its all zeroes.

Here is the pertinent code:

0029.03  ***********************************************************
0039.01  *       STANDALONE VARIABLES 
0041.00  ***********************************************************
0041.03 DSDATE            S               D   DATFMT(*USA) 
0041.04 DEDATE            S               D   DATFMT(*USA) 
0041.05 DTCOUNT           S              6S 0 
0041.06  ***********************************************************
0042.00  *       MAINLINE 
0043.00  ***********************************************************
0043.01 C     *USA          MOVE      '06/01/2005'  SDATE 
0043.02 C     *USA          MOVE      '06/30/2005'  EDATE 
0043.03 C                   EXSR      COUNTING 
0043.29 C                   EVAL      *INLR = *ON 
0043.30 C                   RETURN 
0043.31  ***********************************************************
0044.00  *       GET RECORD COUNT AND WRITE TOTAL TO TCOUNT VARIABLE
0045.00 C     COUNTING      BEGSR 
0046.00 C/EXEC SQL 
0047.00 C+    DECLARE COUNTCURSOR CURSOR
0048.00 C+    FOR SELECT COUNT(*) FROM 
0049.00 C+    INVMARGIN WHERE 
0050.00 C+    ILNINVDATE >= :SDATE AND 
0051.00 C+    ILNINVDATE <= :EDATE 
0052.00 C/END-EXEC 
0053.00 C/EXEC SQL 
0054.00 C+ FETCH COUNTCURSOR 
0055.00 C+ INTO :TCOUNT 
0056.00 C/END-EXEC 
0057.00 C                   ENDSR
0058.00  ************************

I did not see any problem with the cursor or the fetch statement, and 
since 
the variable tcount is declared it should work....I also noticed when I 
F11 
on the :tcount it says that it cannot find the variable...which I thought 
was strange but maybe its my brain having one of its moments.

Any helpful suggestions would be appreciated.



This thread ...


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

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