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



Wes,

In your WHILE loop that processes your cursor, you should have a FETCH
before the END WHILE. Just set your at_end variable to zero before that
FETCH. Any record not found condition from SELECTs within the WHILE loop
will set at_end to 1. By setting at_end to 0 before the FETCH, the WHILE
loop will only exit if the FETCH statement hit "end of file".

Like so:

DECLARE CONTINUE HANDLER FOR not_found
    SET at_end = 1;                                               .
.
OPEN C1;

FETCH C1 INTO  v_mcu, v_Emcu, v_Company_ID, v_Ord_#, v_Ord_Type,
         v_TankID, v_an8, v_shan, v_Ord_Date, v_GL_Date,
         v_Act_Ship_Date, v_Short_Item#, v_Item,
         v_UOM, v_Ship_qty, v_Vol, v_unit_price ,
         v_Ext_Amount, v_unit_cost, v_Ext_Cost, v_GLC;
WHILE  at_end = 0   DO

   SELECT  UDVMCU, UDTRP INTO v_Trip_Depo, v_Delivery_#
    FROM  F49211
   WHERE  UDDOCO = v_Ord_#
     and  UDDCTO = v_Ord_Type
     and  UDLNID = v_Line_ID
     and  UDKCOO = v_Company_ID;

   IF at_end = 1 THEN
   .. what to do if record is NOT found in F49211
   ELSE
   .. what to do if record IS found in F49211
   END IF;

   SET at_end = 0;

   FETCH C1 INTO  v_mcu, v_Emcu, v_Company_ID, v_Ord_#, v_Ord_Type,
            v_TankID, v_an8, v_shan, v_Ord_Date, v_GL_Date,
            v_Act_Ship_Date, v_Short_Item#, v_Item,
            v_UOM, v_Ship_qty, v_Vol, v_unit_price ,
            v_Ext_Amount, v_unit_cost, v_Ext_Cost, v_GLC;

END WHILE;


Hope this helps!
Richard


-----Original Message-----
From: midrange-l-bounces+casey_r=popmail.firn.edu@xxxxxxxxxxxx
[mailto:midrange-l-bounces+casey_r=popmail.firn.edu@xxxxxxxxxxxx]On
Behalf Of Wes
Sent: Monday, January 31, 2005 11:59 AM
To: midrange-l@xxxxxxxxxxxx
Subject: SQL Proc and Data Not Found


I'm writing a proc where I have a cursor and for each row found in the
cursor I do a select from other files. I'm monitoring for record not found
conditions for the cursor. My question is how do I trap rows not found for
the select statements other than the cursor? I don't want my program to
exits just because it can't find a record in the select statement.



DECLARE CONTINUE HANDLER FOR not_found
    SET at_end = 1;                                               .
.
.
.
OPEN C1;

FETCH C1 INTO  v_mcu, v_Emcu, v_Company_ID, v_Ord_#, v_Ord_Type,
         v_TankID, v_an8, v_shan, v_Ord_Date, v_GL_Date,
         v_Act_Ship_Date, v_Short_Item#, v_Item,
         v_UOM, v_Ship_qty, v_Vol, v_unit_price ,
         v_Ext_Amount, v_unit_cost, v_Ext_Cost, v_GLC;
WHILE  at_end = 0   DO
  -- SET DATE

   SELECT  UDVMCU, UDTRP INTO v_Trip_Depo, v_Delivery_#
    FROM  F49211
   WHERE  UDDOCO = v_Ord_#
     and  UDDCTO = v_Ord_Type
     and  UDLNID = v_Line_ID
     and  UDKCOO = v_Company_ID;




Thanks, Wes



--
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: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.




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.