I have lots of eeps with cursors in them but they all have a button that needs 
to be clicked to run the eep. I don't know what kinds of errors your getting 
but one thing i always do is to drop the curror and then recreat it. I also 
tend to break up the code onto smaller files and run the files within the eeps 
using the run command

Here is a working sample from my database you will notice there are lots of 
cursors running in the eep including cursors within cursors.

This exsample is broke down in to 3 parts 
1. the eep the button fires off
2. the rmd the epp fires off
3. one of the rmd the rmd fires off 

seems to work just fine

______________________________________________________________
--ShippingPacView.EEP
CHOOSE vOutPut FROM #VALUES FOR (OutPutOption),OutPutOption +
  FROM OutPutOptions +
  AT CENT CENT +
  TITLE 'Please Select' +
  CAPTION 'Print Options' 
  LINES 2

RUN ShippingReport.RMD


OUTP SCREEN
IF vOutPut = 'Screen' THEN
  PRINT tShippingView
ENDIF

IF vOutPut = 'Printer' THEN
   RUN ChoosePrinter.RMD
   OUTP PRINTER
   PRINT tShipping
   OUTP SCREEN
   PRNSETUP .vWindowsPrinter
ENDIF
CLS


__________________________________
--ShippingReport.RMD
cls
SET ERROR MESSAGE 2038 OFF
  RUN tShippingReport.TAB
SET ERROR MESSAGE 2038 ON

SET VAR vShippingID INTEGER = NULL
SET VAR vETA TEXT = NULL
SET VAR vSectionID INTEGER = NULL
SET VAR vSectionDesc TEXT = NULL
SET VAR vLineItemNumber INTEGER = NULL
SET VAR vOrderQty REAL = NULL
SET VAR vShippedTDQty REAL = NULL
SET VAR vShippedQty REAL = NULL
SET VAR vBackOrderedQty REAL = NULL
SET VAR vShipLnItemStatus  INTEGER = NULL
SET VAR vCatID  INTEGER = NULL
SET VAR vPCategoryID  INTEGER = NULL
SET VAR vPCategoryDesc TEXT = NULL
SET VAR vWidthID INTEGER = NULL
SET VAR vLengthHeightID INTEGER = NULL
SET VAR vCoreID INTEGER = NULL
SET VAR vThickID INTEGER = NULL
SET VAR vCasingItemID TEXT = NULL
SET VAR vFrameID INTEGER = NULL
SET VAR vFinishSchemeID INTEGER = NULL
SET VAR vWidthDesc TEXT = NULL
SET VAR vLengthHeightDesc TEXT = NULL
SET VAR vCoreDesc TEXT = NULL
SET VAR vThicknessDesc TEXT = NULL
SET VAR vCasingDesc TEXT = NULL
SET VAR vFrameConfig TEXT = NULL
SET VAR vWidthDesc TEXT = NULL
SET VAR vMaterialDesc TEXT = NULL
SET VAR vLnDesc TEXT = NULL
SET VAR vFrameDesc TEXT = NULL
SET VAR vQtyR REAL = NULL
SET VAR vQtyL REAL = NULL
SET VAR vLQtyTotal REAL = NULL
SET VAR vMoTotalQty REAL = NULL
SET VAR vPlanQty REAL = NULL
SET VAR vGrandTotal CURRENCY = NULL
SET VAR vMoGrandTotal CURRENCY = NULL 
SET VAR vDoorStainID INTEGER = NULL  
SET VAR vTrimStainID INTEGER = NULL
SET VAR vBFMenuID INTEGER = NULL
SET VAR vLnQty INTEGER = NULL 
SET VAR vDoorItemID TEXT = NULL
SET VAR vSLiteItemID TEXT = NULL
SET VAR vSLiteQty  INTEGER = NULL
SET VAR vTransItemID TEXT = NULL
SET VAR vFrameConfigID INTEGER = NULL
SET VAR vFrameMaterialID INTEGER = NULL
SET VAR vFrameWidthID INTEGER = NULL
SET VAR vFrameLengthID INTEGER = NULL
SET VAR vSLiteDesc TEXT = NULL
SET VAR vTransDesc TEXT = NULL
SET VAR vMaterialID INTEGER = NULL
SET VAR vMaterialDesc TEXT = NULL 
SET VAR vSrvUnitPrice CURRENCY = NULL
SET VAR vSrvUnitPriceTotal CURRENCY = NULL
SET VAR vFinishSchemeID INTEGER = NULL
SET VAR vFinishSchemeDesc TEXT = NULL
SET VAR vFinishDesc TEXT = NULL
SET VAR vDoorStainDesc TEXT = NULL
SET VAR vTrimStainDesc TEXT = NULL
SET VAR vFinishDesc TEXT = NULL
SET VAR vFinishUnitPrice CURRENCY = NULL
SET VAR vTotalLnPrice CURRENCY = NULL
SET VAR vHwUnitPrice CURRENCY = NULL
SET VAR vHwItemID TEXT = NULL
SET VAR vHwQty REAL = NULL
SET VAR vHwUnitPriceTotal CURRENCY = NULL
SET VAR vClsetLinenPckDesc TEXT = NULL
SET VAR vTrFinishPrice CURRENCY = NULL
SET VAR vMoFinishPrice CURRENCY = NULL
SET VAR vWhereClause1 TEXT =  'WHERE EstimateID = .vEstimateID AND 
EstimateVersion = .vEstimateVersion AND LineItemNumber = .vLineItemNumber' 
SET VAR vSelectClause1 TEXT =    'SELECT SectionDesc INTO vSectionDesc  INDIC 
ivSectionDesc FROM ReportSections WHERE SectionID = .vSectionID' 

SELECT EstimateID INTO vEstimateID INDIC ivEstimateID FROM tShippingHeader 
SELECT EstimateVersion INTO vEstimateVersion INDIC ivEstimateVersion FROM 
tShippingHeader

SET ERROR MESSAGE 705 OFF
  DROP CURSOR cShippingReport
  DROP CURSOR cSrv
  DROP CURSOR cExtraHw
  DROP CURSOR cSrv1
  DROP CURSOR cSrv2
  DROP CURSOR cExtraHw2
  DROP CURSOR cSrv3
  DROP CURSOR cSrv4
  DROP CURSOR cExtraHw4
  DROP CURSOR cSrv5
SET ERROR MESSAGE 705 ON

DECLARE cShippingReport CURSOR FOR SELECT +
  ShippingID, +
  SectionID, +
  LineItemNumber, +
  OrderQty, +
  ShippedTDQty, +
  ShippedQty, +
  BackOrderedQty, +
  ETA, + 
  ShipLnItemStatus +
FROM tShippingLineItem +
ORDER BY SectionID, LineItemNumber +

*(-----CURSORS FOR INTERIOR PH DOORS ----)
DECLARE cSrv CURSOR FOR SELECT UnitPrice FROM EstimateLNServices &vWhereClause1 

DECLARE cExtraHw CURSOR FOR SELECT UnitPrice,PickedItemID,Quantity FROM 
EstimateLNDoorHW &vWhereClause1

*(-----CURSORS FOR INTERIOR PH DOORS ----)
DECLARE cSrv1 CURSOR FOR SELECT UnitPrice FROM EstimateLnBFldSrv &vWhereClause1 


*(-----CURSORS FOR EXTERIOR PH DOORS ----)
DECLARE cSrv2 CURSOR FOR SELECT UnitPrice FROM EstimateLNExtSrv &vWhereClause1 
DECLARE cExtraHw2 CURSOR FOR SELECT UnitPrice,PickedItemID,Quantity FROM 
EstimateLNExtHw &vWhereClause1

*(-----CURSORS FOR EXTERIOR CODEL DOORS ----)
DECLARE cSrv3 CURSOR FOR SELECT UnitPrice FROM EstimateLNMetalSrv 
&vWhereClause1 


*(-----CURSORS FOR TRIM----)
DECLARE cSrv4 CURSOR FOR SELECT UnitPrice FROM EstimateLNTrimSrv &vWhereClause1 


*(-----CURSORS FOR STAIR----)
DECLARE cSrv5 CURSOR FOR SELECT UnitPrice FROM EstimateLnStairSrv 
&vWhereClause1 

*(-----EstimateLNDefaults-----)
OPEN cShippingReport
FETCH cShippingReport INTO +
  vShippingID INDIC ivShippingID, +
  vSectionID INDIC ivSectionID, +
  vLineItemNumber INDIC ivLineItemNumber, +
  vOrderQty INDIC ivOrderQty, +
  vShippedTDQty INDIC ivShippedTDQty, +
  vShippedQty INDIC ivShippedQty, +
  vBackOrderedQty INDIC ivBackOrderedQty, +
  vETA INDIC ivETA, +
  vShipLnItemStatus INDIC ivShipLnItemStatus 

LABEL StartCursor
IF SQLCODE <> 100 THEN
  SET VAR vGrandTotal  = NULL  
  SET VAR vHwUnitPriceTotal = NULL
  SET VAR vSrvUnitPriceTotal = NULL  
  SET VAR vTotalLnPrice = NULL
  SET VAR vSrvUnitPrice = NULL
  SET VAR vHwUnitPrice = NULL
  SET VAR vFinishUnitPrice = NULL
  SET VAR vFinishDesc = NULL

  IF vSectionID = 1 THEN
    CLS
    WRI IntDoor[s]
    Run ShippingReport1.RMD 
  ENDIF

  IF vSectionID = 2 THEN 
    CLS
    WRI Bifold[s]
    Run ShippingReport2.RMD 
  ENDIF

  IF vSectionID = 3 THEN 
    CLS
    WRI ExtDoor[s]    
     Run ShippingReport3.RMD 
  ENDIF

  IF vSectionID = 4 THEN 
    CLS
    WRI MetalDoor[s]  
     Run ShippingReport4.RMD 
  ENDIF

  IF vSectionID = 5 THEN 
    CLS
    WRI TRIM  
     Run ShippingReport5.RMD 
  ENDIF

  IF vSectionID = 6 THEN
    CLS 
    WRI StairPart[s]  
     Run ShippingReport6.RMD 
  ENDIF

  IF vSectionID = 7 THEN 
    CLS
    WRI ShelfPack[s]  
     Run ShippingReport7.RMD 
  ENDIF

  IF vSectionID = 8 THEN
    CLS 
    WRI Hardware  
     Run ShippingReport8.RMD 
  ENDIF

  IF vSectionID = 9 THEN 
    CLS
    WRI Misc
     Run ShippingReport9.RMD 
  ENDIF

  FETCH cShippingReport INTO +
    vShippingID INDIC ivShippingID, +
    vSectionID INDIC ivSectionID, +
    vLineItemNumber INDIC ivLineItemNumber, +
    vOrderQty INDIC ivOrderQty, +
    vShippedTDQty INDIC ivShippedTDQty, +
    vShippedQty INDIC ivShippedQty, +
    vBackOrderedQty INDIC ivBackOrderedQty, +
    vETA INDIC ivETA, +
    vShipLnItemStatus INDIC ivShipLnItemStatus 
  
  GOTO StartCursor
Else
  GOTO Done
ENDIF
CLOSE cShippingReport

LABEL DONE
SET ERROR MESSAGE 705 OFF
  DROP CURSOR cShippingReport
  DROP CURSOR cSrv
  DROP CURSOR cExtraHw
  DROP CURSOR cSrv1
  DROP CURSOR cSrv2
  DROP CURSOR cExtraHw2
  DROP CURSOR cSrv3
  DROP CURSOR cSrv4
  DROP CURSOR cExtraHw4
  DROP CURSOR cSrv5
SET ERROR MESSAGE 705 ON
_____________________________________________________


--ShippingReport1.RMD
&vSelectClause1
-- GET ID'S
SELECT +
  CatID, +
  PCategoryID, + 
  MenuID, +
  ProductWidthID, + 
  ProductHeightID, + 
  ProductCoreID, + 
  ProductThickID, + 
  CasingItemID, + 
  FrameID, + 
  DoorStainID, + 
  TrimStainID, + 
  FinishSchemeID, +
  LQtyRight, +
  LQtyLeft, +
  LQtyTotal, +
  PlanQty, +
  GrandTotal +
INTO +
  vCatID INDIC ivCatID, +
  vPCategoryID INDIC ivPCategoryID, +
  vMenuID INDIC ivMenuID, +
  vWidthID INDIC ivWidthID, + 
  vLengthHeightID INDIC ivLengthHeightID, + 
  vCoreID INDIC ivCoreID, +    
  vThicknessID INDIC ivThicknessID, +  
  vCasingItemID INDIC ivCasingItemID, + 
  vFrameID INDIC ivFrameID, +  
  vDoorStainID INDIC ivDoorStainID, +  
  vTrimStainID   INDIC ivTrimStainID, + 
  vFinishSchemeID INDIC ivFinishSchemeID, + 
  vQtyR INDIC ivQtyR, +
  vQtyL INDIC ivQtyL, +
  vLQtyTotal INDIC ivLQtyTotal, +
  vPlanQty INDIC ivPlanQty, +
  vGrandTotal INDIC ivGrandTotal +    
FROM EstimateLNDefaults &vWhereClause1

--GET DESCRIPTIONS FOR ID'S
IF vMenuID IN (16, 18) THEN
  SELECT ConfigDesc INTO vSectionDesc INDIC ivSectionDesc FROM MenuOptions +
    WHERE MenuGroup = 'ID' AND MenuID = .vMenuID
ENDIF
IF vWidthID <> NULL THEN
  SELECT WidthDesc INTO vWidthDesc INDIC ivWidthDesc FROM ProductWidth + 
    WHERE WidthID = .vWidthID AND CatID = .vCatID AND PCategoryID = 
.vPCategoryID
ENDIF
IF vLengthHeightID <> NULL THEN
  SELECT LengthHeightDesc INTO vLengthHeightDesc  INDIC ivLengthHeightDesc  
FROM ProductLenHeight + 
    WHERE LengthHeightID  = .vLengthHeightID AND CatID = .vCatID AND 
PCategoryID = .vPCategoryID
ENDIF
IF vCoreID <> NULL THEN
  SELECT CoreDesc INTO vCoreDesc INDIC ivCoreDesc FROM ProductCore + 
    WHERE CoreID = .vCoreID AND CatID = .vCatID AND PCategoryID = .vPCategoryID
ENDIF
IF vThicknessID <> NULL THEN
  SELECT ThicknessDesc INTO vThicknessDesc INDIC ivThicknessDesc FROM 
ProductThickness + 
    WHERE ThicknessID  = .vThicknessID AND CatID = .vCatID AND PCategoryID = 
.vPCategoryID
ENDIF
IF vCasingItemID <> NULL THEN
  SET VAR vCasingDesc = ' w/Casing'
ENDIF 
IF vFrameID <> NULL THEN
  SELECT +
    FrameConfig,WidthDesc,MaterialDesc +
  INTO +
    vFrameConfig INDIC ivFrameConfig, +
    vFrWidthDesc INDIC ivFrWidthDesc, +
    vMaterialDesc INDIC ivMaterialDesc, +
  FROM CFrame +
  WHERE FrameID = .vFrameID
  SET VAR vFrameDesc = (' w/' + .vFrameConfig & .vFrWidthDesc & 
.vLengthHeightDesc & .vMaterialDesc)
ENDIF
SET VAR vLnDesc =(.vWidthDesc +  'x' + .vLengthHeightDesc +  'x' + 
.vThicknessDesc & .vCoreDesc & .vSectionDesc & .vFrameDesc & .vCasingDesc)

OPEN cSrv RESET
FETCH cSrv INTO vSrvUnitPrice INDIC ivSrvUnitPrice
WHILE SQLCODE <> 100 THEN
  SET VAR vSrvUnitPriceTotal = (.vSrvUnitPriceTotal + .vSrvUnitPrice)
  FETCH cSrv INTO vSrvUnitPrice INDIC ivSrvUnitPrice
ENDWHILE
SET ERROR MESSAGE 2515 OFF
SET ERROR MESSAGE 2515 ON
CLOSE cSrv

OPEN cExtraHw RESET
FETCH cExtraHw INTO +
  vHwUnitPrice INDIC ivHwUnitPrice, +
  vHwItemID INDIC ivHwItemID, +
  vHwQty INDIC ivHwQty

WHILE SQLCODE <> 100 THEN
  SELECT SalesDescription INTO vHWSalesDesc INDIC ivHWSalesDesc FROM Partslist 
+
    WHERE ItemID = .vHwItemID
  SET VAR vHwUnitPriceTotal = (vHwUnitPriceTotal + ( vHwUnitPrice * .vHwQty))
  INSERT INTO tShippingReport + 
    (ShippingID, SectionID, LineItemNumber, ReportDesc, QtyL,  SortNumber)  + 
  VALUES +
    (.vShippingID, .vSectionID, .vLineItemNumber, (ICAP2(.vHWSalesDesc)), 
.vHwQty, 2)
  FETCH cExtraHW INTO +
    vHwUnitPrice INDIC ivHwUnitPrice, +
    vHwItemID INDIC ivHwItemID, +
    vHwQty INDIC ivHwQty
ENDWHILE
CLOSE cExtraHW

SELECT COUNT(*) INTO vRows FROM EstimateLNFinishes &vWhereClause1
IF vRows > 0 THEN
  SELECT FinishSchemeID INTO vFinishSchemeID INDIC ivFinishSchemeID FROM 
EstimateLNFinishes &vWhereClause1
  SELECT FinishSchemeDesc INTO vFinishSchemeDesc INDIC ivFinishSchemeDesc FROM 
FinishScheme +
    WHERE FinishSchemeID = .vFinishSchemeID
  IF vFinishSchemeDesc IN ('No Finish' , 'NF' , 'NoFinish') THEN
    SET VAR vFinishDesc = Null  
  ELSE
    SELECT StainDesc INTO vDoorStainDesc INDIC ivDoorStainDesc FROM 
ProductStain WHERE StainID = .vDoorStainID
    SELECT StainDesc INTO vTrimStainDesc INDIC ivTrimStainDesc FROM 
ProductStain WHERE StainID = .vTrimStainID
    SELECT UnitPrice INTO vFinishUnitPrice INDIC ivFinishUnitPrice FROM 
EstimateLNFinishes &vWhereClause1
    SET VAR vFinishDesc =  (ICAP2(('     ' + .vDoorStainDesc + ' / ' + 
.vTrimStainDesc & ' - ' & .vFinishSchemeDesc)))
  ENDIF
ENDIF

SET VAR vTotalLnPrice = (.vGrandTotal + .vSrvUnitPriceTotal + .vFinishUnitPrice 
+ .vHwUnitPriceTotal )

INSERT INTO tShippingReport + 
  (ShippingID, +
  SectionID, +
  LineItemNumber, + 
  ReportDesc, +
  QtyL, +
  QtyR, +
  PlanQty, +
  ShippedTDQty, +
  ShippedQty, +
  BackOrderedQty, +
  ETA, +
  ShipLnItemStatus, +
  TotalLnPrice, +
  SortNumber) +
VALUES +
  (.vShippingID, +
  .vSectionID, +
  .vLineItemNumber, +
  .vLnDesc, +
  .vQtyL, +
  .vQtyR, +
  .vPlanQty, +
  .vShippedTDQty, +
  .vShippedQty, +
  .vBackOrderedQty, +
  .vETA, +
  .vShipLnItemStatus, +
  .vTotalLnPrice, +
  1 ) 

IF vFinishDesc <> Null THEN
  INSERT INTO tShippingReport + 
    (ShippingID, +
    SectionID, +
    LineItemNumber, +
    ReportDesc, +
    SortNumber) +  
VALUES +
    (.vShippingID, +
    .vSectionID, +
    .vLineItemNumber, +
    .vFinishDesc, +
    3)
ENDIF
_______________________________________________________

On 5 Aug 2003 at 15:27, Albert Berry wrote:

> I have a problem with an epp that uses a cursor to update a series of records. Works 
> fine when traced, but does not work fine when run straight. Are cursors ok in eeps? 
> They aren't mentionned in any help files as being eep restricted.
> 
> -- 
> Albert Berry
> Full Time Consultant to
> PSD Solutions
> 350 West Hubbard, Suite 210
> Chicago, IL 60610
> 312-828-9253 Ext. 32
> 
> 
> __________________________________________________________________
> McAfee VirusScan Online from the Netscape Network.
> Comprehensive protection for your entire computer. Get your free trial today!
> http://channels.netscape.com/ns/computing/mcafee/index.jsp?promo=393397
> 
> Get AOL Instant Messenger 5.1 free of charge.  Download Now!
> http://aim.aol.com/aimnew/Aim/register.adp?promo=380455
> 
> 



Victor Timmons  
Tiz's Door Sales, Inc
425-258-2391

Reply via email to