I have been doing it like that but the problem is the SP did not seem to execute completely. Basically I have a table called PIN with 23 rows in there.
My SP procedure updates a column in this pin table.
When I run the SP in Query analyser, all the pins are updated. However when I call the SP through a C# program only the first 8 pins are updated. Here is what my SP does.
Thanks for your help again.Code:if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_pinlock]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[sp_pinlock] GO CREATE PROCEDURE sp_pinlock AS DECLARE PIN_UPDATE CURSOR FOR SELECT DESCR,PIN FROM PIN OPEN PIN_UPDATE DECLARE @@DESCRIPTION NCHAR(150) DECLARE @@PIN CHAR(9) FETCH NEXT FROM PIN_UPDATE INTO @@DESCRIPTION, @@PIN DECLARE @@BEDNUM CHAR(2) DECLARE @@BLDG CHAR(3) DECLARE @ERRORVAL CHAR(10) WHILE @@FETCH_STATUS = 0 BEGIN SET @@BEDNUM = RIGHT(@@DESCRIPTION, 94) SET @@BEDNUM = LEFT(@@BEDNUM, 2) SET @@BLDG = RIGHT(@@DESCRIPTION,68) SET @@BLDG = LEFT(@@BLDG, 3) DECLARE @@GRP INT PRINT @@BLDG + ' ' + @@BEDNUM + ' pin: ' + @@PIN IF @@BLDG IN ('BRD', 'BKG','REC','TOC') BEGIN SET @@GRP = (SELECT GRP FROM SITE WITH (NOLOCK) WHERE GNAME = @@BLDG) UPDATE PIN SET SITE = @@GRP WHERE PIN = @@PIN PRINT 'PIN: ' + @@PIN + 'was in a BKG, BRD, REC, TOC group' END SET @ERRORVAL = @@ERROR IF @ERRORVAL <> 0 BEGIN UPDATE PIN SET site = 0 WHERE PIN = @@PIN PRINT @@PIN + ' WAS SET TO TIMEGROUP 1, LOCATION IS: ' + @@BLDG FETCH NEXT FROM PIN_UPDATE INTO @@DESCRIPTION, @@PIN END FETCH NEXT FROM PIN_UPDATE INTO @@DESCRIPTION, @@PIN END CLOSE PIN_UPDATE DEALLOCATE PIN_UPDATE GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO




Reply With Quote