Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 SQL Server 2005 Forums
 Transact-SQL (2005)
 Got an infinity loop.

Author  Topic 

Gerten_Utv
Starting Member

7 Posts

Posted - 2009-02-02 : 14:50:36
Hi I have an sp_CreateLicenceHcp

CREATE PROCEDURE [dbo].[p_createLicenceHcp]
-- Add the parameters for the stored procedure here
@parmDateToCompareFrom datetime ,
@parmDateToCompareTo datetime ,
@parmOK int output
AS
BEGIN
DELETE FROM bo_LicenceHcp
WHERE LicenceHcpDate = @parmDateToCompareTo;

INSERT INTO bo_LicenceHcp (LicenceHcpLicNbr, LicenceHcpDate)
SELECT LicNbr, @parmDateToCompareTo
FROM bo_Licence;

/* Uppdatera LicenceHcp-poster med korrekt Hcp */
DECLARE @varHcp INT;
DECLARE @varLicNbr CHAR(20);
DECLARE LicenceHcp CURSOR FOR
SELECT LicenceHcpLicNbr
FROM bo_LicenceHcp

OPEN LicenceHcp;

FETCH LicenceHcp INTO @varLicNbr; -- Read Ahead
WHILE @@Fetch_Status = 0
BEGIN
-- Start Processing ...
EXEC dbo.p_getLicenceHcpByDate @varLicNbr, @parmDateToCompareFrom,
@parmDateToCompareTo, 70, 150, 210, @varHcp OUTPUT, 0.0, 0

IF (@varHcp IS NOT NULL AND @varHcp>=0)
BEGIN
UPDATE bo_LicenceHcp
SET LicenceHcp = isnull(@varHcp,-1)
WHERE LicenceHcpLicNbr = @varLicNbr AND LicenceHcpDate = @parmDateToCompareTo
END

-- End Processing ...

FETCH LicenceHcp INTO @varLicNbr; -- Read
END

CLOSE LicenceHcp;

END


dbo.p_getLicenceHcpByDate Retruns an calculated Hcp
When i ececute the sp it insert rows int the table bo_LicenceHcp
bur it will not stop executing.
Can anyone se what's wrong.
If i harcoded an LicNbr it runs and stop. Bir when i select all LicNbr from bo_Licence it continues running.


webfred
Master Smack Fu Yak Hacker

8781 Posts

Posted - 2009-02-02 : 15:12:03
At a first short look I think:

FETCH NEXT is your friend.

Webfred


No, you're never too old to Yak'n'Roll if you're too young to die.
Go to Top of Page

sakets_2000
Master Smack Fu Yak Hacker

1472 Posts

Posted - 2009-02-02 : 15:13:09
[code]CREATE PROCEDURE [dbo].[p_createLicenceHcp]
-- Add the parameters for the stored procedure here
@parmDateToCompareFrom datetime ,
@parmDateToCompareTo datetime ,
@parmOK int output
AS
BEGIN
DELETE FROM bo_LicenceHcp
WHERE LicenceHcpDate = @parmDateToCompareTo;

INSERT INTO bo_LicenceHcp (LicenceHcpLicNbr, LicenceHcpDate)
SELECT LicNbr, @parmDateToCompareTo
FROM bo_Licence;

/* Uppdatera LicenceHcp-poster med korrekt Hcp */
DECLARE @varHcp INT;
DECLARE @varLicNbr CHAR(20);
DECLARE LicenceHcp CURSOR FOR
SELECT LicenceHcpLicNbr
FROM bo_LicenceHcp

OPEN LicenceHcp;

FETCH LicenceHcp INTO @varLicNbr; -- Read Ahead
WHILE @@Fetch_Status = 0
BEGIN
-- Start Processing ...
EXEC dbo.p_getLicenceHcpByDate @varLicNbr, @parmDateToCompareFrom,
@parmDateToCompareTo, 70, 150, 210, @varHcp OUTPUT, 0.0, 0

IF (@varHcp IS NOT NULL AND @varHcp>=0)
BEGIN
UPDATE bo_LicenceHcp
SET LicenceHcp = isnull(@varHcp,-1)
WHERE LicenceHcpLicNbr = @varLicNbr AND LicenceHcpDate = @parmDateToCompareTo
END

-- End Processing ...

--FETCH LicenceHcp INTO @varLicNbr; -- Read
FETCH NEXT FROM LicenceHcp INTO @varLicNbr;
END

CLOSE LicenceHcp;

END[/code]
Go to Top of Page

webfred
Master Smack Fu Yak Hacker

8781 Posts

Posted - 2009-02-02 : 15:20:11
OK - this is the long version of my answer


No, you're never too old to Yak'n'Roll if you're too young to die.
Go to Top of Page
   

- Advertisement -