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