Portal | Manuals | References | Downloads | Info | Programs | JCLs | Mainframe wiki | Quick Ref
IBM Mainframe Computers Forums Index
 
Register
 
IBM Mainframe Computers Forums Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Profile Log in to check your private messages Log in
 
WHY SQLCODE -508 occurs if COMMIT between FETCH and UPDATE?

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> DB2
View previous topic :: :: View next topic  
Author Message
dejunzhu

Active User


Joined: 08 May 2008
Posts: 390
Location: China

PostPosted: Fri Nov 08, 2013 7:30 am    Post subject: WHY SQLCODE -508 occurs if COMMIT between FETCH and UPDATE?
Reply with quote

I found if I code COMMIT after FETCH CURSOR and before POSITIONED UPDATE CURSOR, SQLCODE -508 always occurrs when POSTIONED UPDATE CURSOR.

1. FETCH CURSOR C1
2. COMMIT
3. POSITIONE UPDATE C1 ==>SQLCODE -508 here....

Why this happens?

I have such requirement, that I should first fetch the next record and if some criteria meets, I shall issue COMMIT first before issue POSITIONED UPDATE. How should I do ?

Please kindly suggest.

Thanks very much.
Back to top
View user's profile Send private message

GuyC

Senior Member


Joined: 11 Aug 2009
Posts: 1281
Location: Belgium

PostPosted: Fri Nov 08, 2013 1:31 pm    Post subject:
Reply with quote

why this happens? Because it is described as such in the manuals.
and it doesn't happen ALWAYS.
Back to top
View user's profile Send private message
gylbharat

Active Member


Joined: 31 Jul 2009
Posts: 565
Location: Bangalore

PostPosted: Fri Nov 08, 2013 4:36 pm    Post subject:
Reply with quote

-508 THE CURSOR IDENTIFIED IN THE UPDATE OR DELETE STATEMENT IS NOT POSITIONED
ON A ROW OR ROWSET THAT CAN BE UPDATED OR DELETED
Explanation: The application program attempted to execute an UPDATE or DELETE WHERE CURRENT OF cursor
statement at a time when the specified cursor was not positioned on a row or rowset of the object table. The cursor
must be positioned on the row that is to be updated or deleted.
This can occur if the cursor is no longer positioned on the row because another cursor in the same application
program delete the row or updates an index column. This includes deletes and index column updates that are
performed as a result of rolling back to a savepoint.
This can also occur with a sensitive dynamic cursor when the FOR ROW n OF ROWSET clause is specified and the
specified row of the current rowset has been updated or deleted.

System action: The statement cannot be processed. No data was updated or deleted, and the cursor position is
unchanged.
Programmer response: Correct the logic of the application program to ensure that the cursor is correctly positioned
on the intended row of the object table before the UPDATE or DELETE statement is executed. Note that for single
row or non-rowset cursors, the cursors are not positioned on a row if FETCH returned SQLCODE +100.
SQLSTATE: 24504
Back to top
View user's profile Send private message
dick scherrer

Site Director


Joined: 23 Nov 2006
Posts: 19270
Location: Inside the Matrix

PostPosted: Fri Nov 08, 2013 7:26 pm    Post subject:
Reply with quote

Hello,

Quote:
I have such requirement, that I should first fetch the next record and if some criteria meets, I shall issue COMMIT first before issue POSITIONED UPDATE. How should I do ?
This is Not the requirement. This is merely how you have chosen to implement.

If you explain the business requirement, someone might have an alternate suggestion.
Back to top
View user's profile Send private message
dejunzhu

Active User


Joined: 08 May 2008
Posts: 390
Location: China

PostPosted: Sat Nov 09, 2013 10:50 am    Post subject:
Reply with quote

hi, dick,
There is no specific requirement.
I tried this just want to have btter understaning of DB2.
Back to top
View user's profile Send private message
dick scherrer

Site Director


Joined: 23 Nov 2006
Posts: 19270
Location: Inside the Matrix

PostPosted: Sun Nov 10, 2013 5:49 am    Post subject:
Reply with quote

Hello,

As this should not be done, it will not lead to a better understanding of db2.

Other than this will cause problems.
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> DB2 All times are GMT + 6 Hours
Page 1 of 1

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
No new posts query to fetch record which has only ... maxsubrat DB2 12 Mon Dec 11, 2017 5:03 pm
This topic is locked: you cannot edit posts or make replies. Cobol to fetch the content by using s... arunc55 COBOL Programming 4 Fri Nov 17, 2017 1:25 pm
No new posts Update table without cursor Ron Klop DB2 3 Wed Oct 11, 2017 1:06 pm
No new posts Fetch Previous month & year in MM... girishb2 DFSORT/ICETOOL 3 Thu Sep 21, 2017 9:54 pm
No new posts Need DB2 query to fetch previous row ! Chandan1993 DB2 10 Sat Jun 03, 2017 10:43 am

Facebook
Back to Top
 
Job Vacancies | Forum Rules | Bookmarks | Subscriptions | FAQ | Polls | Contact Us