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