|
rajantonyv
Starting Member
12 Posts |
Posted - 2007-07-18 : 11:46:44
|
| When I run this sql statements, I get a message saying that cursor is already open and it does an insert on one of the rows. I want it to loop through the cursor and insert the ones that it can while print to the screen the ones that cannot along with the error messages... I am overlooking something...DECLARE CMMSCOMPRESSOR_CURSOR CURSORFOR SELECT EquipmentID, Description, Location, Parent, Vendor, SRIALNUM, InstallationDate, WarrantyExpiration, PurchasePrice, Meter1Label, Meter1Units, FailureClass, Classification, Subclassification, SpecificationTemplate, MRC, UnitNum, MFG, MODELNUM, SRIALNUM1, CNTNAME, CNTNUM, CFM, MTRHP, RPM, TYPE, DateMfg, BELT FROM DBO.COMPRESSOR WHERE CLASSIFICATION IS NOT NULL AND SUBCLASSIFICATION IS NOT NULL ORDER BY EQUIPMENTIDOPEN CMMSCOMPRESSOR_CURSORFETCH NEXT FROM CMMSCOMPRESSOR_CURSOR INTO @EquipmentID, @Description, @Location, @Parent, @VendorID, @SRIALNUM, @InstallationDate, @WarrantyExpiration, @PurchasePrice, @Meter1Label, @Meter1Units, @FailureClass, @Classification, @Subclassification, @SpecificationTemplate, @MRC, @UnitNum, @MFG, @MODELNUM, @SRIALNUM1, @CNTNAME, @CNTNUM, @CFM, @MTRHP, @RPM, @TYPE, @DateMfg, @BELTNUMWHILE (@@FETCH_STATUS <> -1)BEGINSET @MYCOMP_CLASSSTRUCTUREID = (SELECT CLASSSTRUCTUREID FROM CLASSSTRUCTURE WHERE L1CLASSIFICATIONID=@CLASSIFICATION AND L2CLASSIFICATIONID=@SUBCLASSIFICATION)BEGINBEGIN TRANINSERT INTO EQUIPMENT(AVGMETERUNIT,AVGMETERUNIT2,BUDGETCOST,CHANGEBY,CHANGEDATE,CHILDREN,DISABLED,EQNUM,IMPORTDELTAMETER1,IMPORTDELTAMETER2,INHERITMETER1CHANG,INHERITMETER2CHANG,INVCOST,ISRUNNING,METER1WEIGHTPRCNT,METER2WEIGHTPRCNT,METERREADING,METERREADING2,ORGID,PURCHASEPRICE,REPLACECOST,SITEID,TOTALCOST,TOTDOWNTIME,TOTUNCHARGEDCOST,UNCHARGEDCOST,YTDCOST,ASSETNUM,BINNUM,CALNUM,CLASSIFICATION,CLASSSTRUCTUREID,DESCRIPTION,EQ1,EQ10,EQ11,EQ12,EQ13,EQ14,EQ15,EQ16,EQ17,EQ18,EQ19,EQ2,EQ20,EQ21,EQ22,EQ23,EQ24,EQ3,EQ4,EQ5,EQ6,EQ7,EQ8,EQ9,EXTERNALREFID,FAILURECODE,GLACCOUNT,INSTALLDATE,ITEMNUM,LDKEY,LOCATION,MANUFACTURER,METERLABEL1,METERLABEL2,METERUNIT1,METERUNIT2,OWNERSYSID,PARENT,PRIORITY,READINGDATE,READINGDATE2,ROLLOVER1,ROLLOVER2,ROTSUSPACCT,SERIALNUM,SOURCESYSID,STATUSDATE,VENDOR,WARRANTYEXPDATE)VALUES(0, --AVGMETERUNIT10, --AVGMETERUNIT20, --BUDGETCOST @MYCOMP_CHANGEBY, --CHANGEBY@MYCOMP_CHANGEDATE, --CHANGEDATE'N', --CHILDREN'N', --DISABLED@EQUIPMENTID, --EQNUM'N', --IMPORTDELTAMETER1'N', --IMPORTDELTAMETER2'N', --INHERTIMETER1CHANG'N', --INHERITMETER2CHANG0, --INVCOST'Y', --ISRUNNING50, --METER1WEIGHTPRCNT50, --METER2WEIGHTPRCNT0, --METERREADING0, --METERREADING2,@MYCOMP_ORGID, --ORGID0, --PURCHASEPRICE 0, --REPLACECOST@MYCOMP_SITEID, --SITEID0, --TOTALCOST0, --TOTALDOWNTIME 0, --TOTUNCHARGEDCOST0, --UNCHARGEDCOST0, --YTDCOSTNULL, --ASSETNUMNULL, --BINNUMNULL, --CALNUMNULL, --CLASSIFICATIONID@MYCOMP_CLASSSTRUCTUREID, --CLASSIFICATIONSTRUCTUREID'MFG: ' + @MFG + ', MODELNUM: ' + @MODELNUM + ', SERIALNUMBER: ' + @SRIALNUM, --DESCRIPTIONNULL, --EQ1NULL, --EQ10NULL, --EQ11NULL, --EQ12NULL, --EQ13NULL, --EQ14NULL, --EQ15NULL, --EQ16NULL, --EQ17NULL, --EQ18NULL, --EQ19NULL, --EQ2NULL, --EQ20NULL, --EQ21NULL, --EQ22NULL, --EQ23NULL, --EQ24NULL, --EQ3NULL, --EQ4NULL, --EQ5NULL, --EQ6NULL, --EQ7NULL, --EQ8NULL, --EQ9NULL, --EXTERNALREFID@FAILURECLASS, --FAILURECODENULL, --GLACCOUNT@INSTALLATIONDATE, --INSTALLATIONDATENULL, --ITEMNUMNULL, --LDKEY@LOCATION, --LOCATIONNULL, --MANUFACTURER@METER1LABEL, --METERLABEL1NULL, --METERLABEL2@METER1UNITS, --METERUNIT1NULL, --METERUNIT2NULL, --OWNERSYSID@PARENT, --PARENTNULL, --PRIORITYNULL, --READINGDATENULL, --READINGDATE2NULL, --ROLLOVER1NULL, --ROLLOVER2NULL, --ROTSUSPACCT@SRIALNUM, --SERIALNUMBERNULL, --SOURCESYSIDGETDATE(), --STATUSDATE@VENDORID, --VENDOR@WARRANTYEXPIRATION --WARRANTY EXPIRATION DATE) IF @@ERROR <> 0 GOTO ERR_HANDLERIF @PARENT <> '' BEGIN UPDATE EQUIPMENT SET CHILDREN='Y', CHANGEDATE=@MYCOMP_CHANGEDATE, CHANGEBY=@MYCOMP_CHANGEBY WHERE SITEID=@MYCOMP_SITEID AND EQNUM=@PARENT IF @@ERROR <> 0 GOTO ERR_HANDLER ENDSELECT @ROWCOUNT = COUNT(*) FROM EQTRANS WHERE ORGID=@MYCOMP_ORGIDIF @ROWCOUNT !=0 BEGIN SET @MYCOMP_EQTRANSID = (SELECT MAX(EQTRANSID + 1) FROM EQTRANS) ENDELSE BEGIN SET @MYCOMP_EQTRANSID = 1 END INSERT INTO EQTRANS ( toloc, readingdate, toparent, tositeid, meterreading, meterreading2, transdate, eqtransid, orgid, readingdate2, siteid, eqnum, datemoved, enterby ) values (@LOCATION, NULL, @PARENT, @MYCOMP_SITEID,0,0,GETDATE(), @MYCOMP_EQTRANSID, @MYCOMP_ORGID, NULL, @MYCOMP_SITEID, @EQUIPMENTID, GETDATE(), @MYCOMP_CHANGEBY) IF @@ERROR <> 0 GOTO ERR_HANDLEREXEC dbo.MYCOMP_LOAD_EQSPEC @EQUIPMENTID, @MYCOMP_CLASSSTRUCTUREID, 'UNITNUM', '1', @MYCOMP_ORGID, NULL, NULL, @UNITNUM, @MYCOMP_CHANGEBY IF @@ERROR <> 0 GOTO ERR_HANDLEREXEC dbo.MYCOMP_LOAD_EQSPEC @EQUIPMENTID, @MYCOMP_CLASSSTRUCTUREID, 'MFG', '2', @MYCOMP_ORGID, NULL, NULL, @MFG, @MYCOMP_CHANGEBY IF @@ERROR <> 0 GOTO ERR_HANDLEREXEC dbo.MYCOMP_LOAD_EQSPEC @EQUIPMENTID, @MYCOMP_CLASSSTRUCTUREID, 'MODELNUM', '3', @MYCOMP_ORGID, NULL, NULL, @MODELNUM, @MYCOMP_CHANGEBY IF @@ERROR <> 0 GOTO ERR_HANDLEREXEC dbo.MYCOMP_LOAD_EQSPEC @EQUIPMENTID, @MYCOMP_CLASSSTRUCTUREID, 'SRIALNUM', '4', @MYCOMP_ORGID, NULL, NULL, @SRIALNUM, @MYCOMP_CHANGEBY IF @@ERROR <> 0 GOTO ERR_HANDLEREXEC dbo.MYCOMP_LOAD_EQSPEC @EQUIPMENTID, @MYCOMP_CLASSSTRUCTUREID, 'CNTNAME', '5', @MYCOMP_ORGID, NULL, NULL, @CNTNAME, @MYCOMP_CHANGEBY IF @@ERROR <> 0 GOTO ERR_HANDLEREXEC dbo.MYCOMP_LOAD_EQSPEC @EQUIPMENTID, @MYCOMP_CLASSSTRUCTUREID, 'CNTNUM', '6', @MYCOMP_ORGID, NULL, NULL, @CNTNUM, @MYCOMP_CHANGEBY IF @@ERROR <> 0 GOTO ERR_HANDLEREXEC dbo.MYCOMP_LOAD_EQSPEC @EQUIPMENTID, @MYCOMP_CLASSSTRUCTUREID, 'CFM', '7', @MYCOMP_ORGID, NULL, NULL, @CFM, @MYCOMP_CHANGEBY IF @@ERROR <> 0 GOTO ERR_HANDLEREXEC dbo.MYCOMP_LOAD_EQSPEC @EQUIPMENTID, @MYCOMP_CLASSSTRUCTUREID, 'MTRHP', '8', @MYCOMP_ORGID, NULL, NULL, @MTRHP, @MYCOMP_CHANGEBY IF @@ERROR <> 0 GOTO ERR_HANDLEREXEC dbo.MYCOMP_LOAD_EQSPEC @EQUIPMENTID, @MYCOMP_CLASSSTRUCTUREID, 'TYPE', '9', @MYCOMP_ORGID, NULL, NULL, @TYPE, @MYCOMP_CHANGEBY IF @@ERROR <> 0 GOTO ERR_HANDLEREXEC dbo.MYCOMP_LOAD_EQSPEC @EQUIPMENTID, @MYCOMP_CLASSSTRUCTUREID, 'DATEMFG', '10', @MYCOMP_ORGID, NULL, NULL, @DATEMFG, @MYCOMP_CHANGEBY IF @@ERROR <> 0 GOTO ERR_HANDLEREXEC dbo.MYCOMP_LOAD_EQSPEC @EQUIPMENTID, @MYCOMP_CLASSSTRUCTUREID, 'BELTNUM', '11', @MYCOMP_ORGID, NULL, NULL, @BELTNUM, @MYCOMP_CHANGEBY IF @@ERROR <> 0 GOTO ERR_HANDLERUPDATE AUTOKEY SET SEED=@EQUIPMENTID WHERE TBNAME='EQUIPMENT' AND ORGID=@MYCOMP_ORGID --AND SITEID=@MYCOMP_SITEID IF @@ERROR <> 0 GOTO ERR_HANDLERIF @@TRANCOUNT > 0 BEGIN COMMIT TRAN PRINT @CLASSIFICATION + ' ' + @SUBCLASSIFICATION + ' ' + @EQUIPMENTID + ' added successfully.' ENDRETURNENDFETCH NEXT FROM CMMSCOMPRESSOR_CURSOR INTO @EquipmentID, @Description, @Location, @Parent, @VendorID, @SRIALNUM, @InstallationDate, @WarrantyExpiration, @PurchasePrice, @Meter1Label, @Meter1Units, @FailureClass, @Classification, @Subclassification, @SpecificationTemplate, @MRC, @UnitNum, @MFG, @MODELNUM, @SRIALNUM1, @CNTNAME, @CNTNUM, @CFM, @MTRHP, @RPM, @TYPE, @DateMfg, @BELTNUMENDERR_HANDLER: BEGIN ROLLBACK TRAN RAISERROR ('Error occurred while loading equipment. ',16,1) PRINT 'Error occurred on equipment ' + @EQUIPMENTID + '.' PRINT @@ERROR ENDCLOSE CMMSCOMPRESSOR_CURSORDEALLOCATE CMMSCOMPRESSOR_CURSORRajesh Antony Vattakunnel |
|