Portal | IBM Manuals | Downloads | Products | Refer | Info | Programs | JCLs | Forum Rules*| Site Map | Mainframe CD 
IBMMAINFRAMES.com - IBM Mainframe Support Forums Index
 
Register
 
IBMMAINFRAMES.com - IBM Mainframe Support Forums Index FAQ Search Memberlist Usergroups Profile Log in to check your private messages Log in
 
how to write this query in cobol prg?

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> DB2
Author Message
i_suman

New User


Joined: 01 Mar 2005
Posts: 19

PostPosted: Thu Oct 09, 2008 8:14 am    Post subject: how to write this query in cobol prg?
Reply with quote

I have following query which is giving output. But the same when implemented as embedded sql in Cobol is not working. Its giving SqlCode = 100.

Select value(count(*),0) from incdt_1141 A, incdt_1147 B
where A.del_ts is null
and A.ir_no = 1234
and A.incdt_type = B.incdt_type
and B.incdt_grp_cd in ('A1','CA','CB','K1')
and Date(A.cre_ts) between '1998-01-01' and '2002-12-31'
order by B.incdt_grp_cd;

Output when run thru spufi:
Count
4
3
3

The same above query when embedded in cobol prog is giving me an sqlcode =100.

Is there any difference or differnt way to implement the same query in cobol program? Please let me know.

Note: I used host variables where ever required in the cobol prog.
Back to top
View user's profile Send private message
References
arcvns

Senior Member


Joined: 17 Oct 2006
Posts: 756
Location: Chennai, India

PostPosted: Thu Oct 09, 2008 8:27 am    Post subject:
Reply with quote

Quote:
Is there any difference or differnt way to implement the same query in cobol program?

Yes. you need to declare a cursor. But since you're not getting SQLCODE=-811, I guess you've already declared that. Can you post your cursor DECLAREation and FETCH statements.
Back to top
View user's profile Send private message
i_suman

New User


Joined: 01 Mar 2005
Posts: 19

PostPosted: Thu Oct 09, 2008 5:43 pm    Post subject:
Reply with quote

exec sql
declare incdt_csr cursor for
Select value(count(*),0) from incdt_1141 A, incdt_1147 B
where A.del_ts is null
and A.ir_no = 1234
and A.incdt_type = B.incdt_type
and B.incdt_grp_cd in ('A1','CA','CB','K1')
and Date(A.cre_ts) between '1998-01-01' and '2002-12-31'
order by B.incdt_grp_cd
end-exec.

I am fetching the records.
Exec sql
Fetch incdt_csr into :incdts-cnt
end-exec.

incdts-cnt is defined as s9(4) comp.
Back to top
View user's profile Send private message
dick scherrer

Global Moderator


Joined: 23 Nov 2006
Posts: 8728
Location: 221 B Baker St

PostPosted: Thu Oct 09, 2008 10:00 pm    Post subject:
Reply with quote

Hello,

Quote:
Its giving SqlCode = 100.
The +100 is expected - it is how the code should test for the end of the result set.

In your code, there will be multiple iterations. In SPUFI, it all happens on a single "click".

The bit of code you posted does not show the process flow within your code.
Back to top
View user's profile Send private message
i_suman

New User


Joined: 01 Mar 2005
Posts: 19

PostPosted: Tue Oct 14, 2008 8:41 am    Post subject:
Reply with quote

thanks. I got it.
Back to top
View user's profile Send private message
dick scherrer

Global Moderator


Joined: 23 Nov 2006
Posts: 8728
Location: 221 B Baker St

PostPosted: Tue Oct 14, 2008 9:02 am    Post subject: Reply to: how to write this query in cobol prg?
Reply with quote

You're welcome - Good to hear it is working icon_smile.gif

It you post your solution, it will maybe help someone else later when they have a similar problem.

d
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> DB2 All times are GMT + 6 Hours
Page 1 of 1