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



Hi Dave,

I always close the cursor before I open it. In an embedded SQL I just ignore
the negative SQL code or State '24501'.
In an SQL routine I use a continue handler to handle the SQLSTATE 24501 as
you did.

For any (unexpected) error in an SQL routine, that is not handled before, I
add a EXIT Handler which can close the SQL Cursor(s).
You may also add an global variable that is set in your routine to indicate
whether the cursor is opened or not.
Something like this:
Declare Exit Handler for SQLEXCEPTION
Begin Close Your_Curor;
-- do whatelse you want to do if an error occurs
End;

Mit freundlichen Grüßen / Best regards

Birgitta Hauser

"Shoot for the moon, even if you miss, you'll land among the stars." (Les
Brown)
"If you think education is expensive, try ignorance." (Derek Bok)
"What is worse than training your staff and losing them? Not training them
and keeping them!"
?Train people well enough so they can leave, treat them well enough so they
don't want to.? (Richard Branson)


-----Original Message-----
From: MIDRANGE-L [mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of
dlclark@xxxxxxxxxxxxxxxx
Sent: Dienstag, 27. Februar 2018 23:27
To: Midrange-L <midrange-l@xxxxxxxxxxxx>
Subject: SQL Technique Available?

Is there an SQL technique available for determining if a particular
cursor is already open, or not? To handle this others have started closing
the cursor arbitrarily and ignoring if they get the NOT OPEN message in the
joblog. But, I think that is messy. Now, in a service program I can always
use a static variable to indicate if the cursor is open or not. But I have
other situations where the static variable method is not available. But, in
the case I have right now, the static variable method is not possible.

I have a stored procedure that opens and closes a cursor if
everything goes according to plan. But, I found a situation where things
did not go according to plan, a signal was raised, the stored procedure
terminated before closing the cursor, and when I went to run it again I got
the message ALREADY OPEN. Yes, I could log off my interactive session and
log back on but I would rather find a way to handle this. So, I started off
using the following code at the beginning of the stored procedure. This
works, but the result is that I get the NOT OPEN message in the joblog when
everything is actually going fine.

Is there a way for a stored procedure to prevent either the ALREADY
OPEN or the NOT OPEN messages from ending up in the joblog?
Thanks.

---------------------------------------------------------------------------
-- clean up company cursor if needed
---------------------------------------------------------------------------
Begin
Declare Continue Handler for SQLSTATE '24501' Begin End; -- notopen
Set ErrText = 'Initial cleanup of company cursor failed.';
Close Company_Cursor;
End;


Sincerely,

Dave Clark
--
int.ext: 91078
direct: (937) 531-6378
home: (937) 751-3300

Winsupply Group Services
3110 Kettering Boulevard
Dayton, Ohio 45439 USA
(937) 294-5331



****************************************************************************
*****************
This email message and any attachments is for use only by the named
addressee(s) and may contain confidential, privileged and/or proprietary
information. If you have received this message in error, please immediately
notify the sender and delete and destroy the message and all copies. All
unauthorized direct or indirect use or disclosure of this message is
strictly prohibited. No right to confidentiality or privilege is waived or
lost by any error in transmission.
****************************************************************************
*****************
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list
To post a message email: MIDRANGE-L@xxxxxxxxxxxx To subscribe, unsubscribe,
or change list options,
visit: https://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx Before posting, please take a
moment to review the archives at https://archive.midrange.com/midrange-l.

Please contact support@xxxxxxxxxxxx for any subscription related questions.

Help support midrange.com by shopping at amazon.com with our affiliate link:
http://amzn.to/2dEadiD


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

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.