Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Executing query doesn't stop
Message
From
17/06/2008 10:59:29
Jay Johengen
Altamahaw-Ossipee, North Carolina, United States
 
General information
Forum:
Microsoft SQL Server
Category:
Scripting
Environment versions
SQL Server:
SQL Server 2005
Miscellaneous
Thread ID:
01324607
Message ID:
01324754
Views:
12
Ok, that helped with another issue I was having, but it still doesn't keep the query from hanging up.

>Your most inner loop seems to only execute in certain condition
>
>FETCH NEXT
>					FROM PAGE
>					INTO
>						@PATH ,
>						@Filename,
>						@PAGE
>
>				WHILE @@FETCH_STATUS = 0
>
>					BEGIN
>
>						IF @Filename COLLATE Latin1_General_CI_AI LIKE '%.TIF%' COLLATE Latin1_General_CI_AI
>
>							BEGIN
>
>								IF @PAGE = 1
>
>									BEGIN
>
>										SET @Export_FileName = @Filename
>										-- Currently G:\TCimages and F:\Images1 on client box
>										SET @Merge_Script = 'c:\ImpactMD\Images\' + @PATH + @Filename + ','
>
>									END
>
>								IF @PAGE <> 1
>
>									BEGIN
>
>										SET @Merge_Script = @Merge_Script + 'c:\ImpactMD\Images\' + @PATH + @Filename + ','
>
>										FETCH NEXT
>											FROM PAGE
>											INTO
>												@PATH ,
>												@Filename,
>												@PAGE
>
>									END
>
>								FETCH NEXT
>									FROM PAGE
>									INTO
>										@PATH ,
>										@Filename,
>										@PAGE
>
>							END
>
>					END
>
>
>
>Otherwise it doesn't actually loop.
>
>Move your FETCH statement before the last END here.
>
>>Anyone see what would cause this query to not stop executing? In the very first cursor, which everything else drives from, there is only one row returned. It acts
>>like it's in a continuous loop except it does the print statements then just sits there saying "Executing query."
>>
>>
>>SET NOCOUNT ON
>>
>>DECLARE
>>	@poscode AS VARCHAR(10),
>>	@posdesc AS VARCHAR(100),
>>	@acctno AS VARCHAR(20),
>>	@provcode AS VARCHAR(20),
>>	@PatientID AS VARCHAR(25),
>>	@ChartNumber AS VARCHAR(30),
>>	@ChartID AS VARCHAR(30),
>>	@Last_Name AS VARCHAR(30),
>>	@First_Name AS VARCHAR(30),
>>	@Middle_Initial AS VARCHAR(5),
>>	@Sex AS CHAR(1),
>>	@DOB AS CHAR(10),
>>	@SSN AS CHAR(11),
>>	@ID AS VARCHAR(20),
>>	@LastName AS VARCHAR(30),
>>	@FirstName AS VARCHAR(30),
>>	@MiddleInitial AS VARCHAR(5),
>>	@TITLE AS VARCHAR(10),
>>	@Suffix AS VARCHAR(10),
>>	@UPIN AS VARCHAR(20),
>>	@NAME AS VARCHAR(100),
>>	@LocID VARCHAR(20),
>>	@DocDateTime AS VARCHAR(8),
>>	@DocumentName AS VARCHAR(80),
>>	@OldDocDateTime AS VARCHAR(22),
>>	@OldSubject AS VARCHAR(80),
>>	@Filename AS VARCHAR(50),
>>	@PATH AS VARCHAR(50),
>>	@PAGE AS VARCHAR(10),
>>	@documentid AS VARCHAR(40),
>>	@SQL AS VARCHAR(8000),
>>	@COPYSCRIPT	 AS nvarchar(4000),
>>	@CREATEDIRSCRIPT AS	nvarchar(4000),
>>	@DELETEDIRSCRIPT AS	nvarchar(4000),
>>	@Folder AS VARCHAR(100),
>>	@Export_FileName AS VARCHAR(100),
>>	@Merge_Script AS nvarchar(4000)
>>
>>USE ImpactMD
>>
>>
>>DECLARE
>>ChartID CURSOR
>>Forward_Only
>>	FOR
>>		SELECT DISTINCT (P.ChartID)
>>			FROM IMPACTMD.dbo.Patients P
>>			INNER JOIN IMPACTMD.dbo.Doc_Header H ON H.PatientID = P.PatientID
>>			-- Testing Only!
>>			WHERE ChartID = '286'
>>
>>OPEN ChartID
>>
>>FETCH NEXT
>>	FROM ChartID
>>	INTO @ChartID
>>
>>WHILE @@FETCH_STATUS = 0
>>
>>	BEGIN
>>
>>		DECLARE Patient CURSOR
>>			Forward_Only
>>			Read_Only
>>			FOR
>>				SELECT DISTINCT
>>					ISNULL(CONVERT(VARCHAR(8),H.DATE,112),'') AS DocumentDate,
>>					ISNULL(H.DocumentName,'') ,
>>					ISNULL(H.documentid,'') ,
>>					ISNULL(FT.DESCRIPTION,'')
>>					FROM IMPACTMD.dbo.Patients P
>>					INNER JOIN IMPACTMD.dbo.Doc_Header H
>>					ON H.PatientID = P.PatientID
>>					INNER JOIN IMPACTMD.dbo.Folder_Template FT
>>					ON H.FolderID = FT.FolderID
>>					WHERE P.ChartID = @ChartID
>>
>>		OPEN Patient
>>
>>		FETCH NEXT
>>			FROM Patient
>>			INTO
>>				@DocDateTime ,
>>				@DocumentName,
>>				@documentid ,
>>				@Folder
>>
>>		WHILE @@FETCH_STATUS = 0
>>
>>			BEGIN
>>
>>				DECLARE PAGE CURSOR
>>				Forward_Only
>>				Read_Only
>>				FOR
>>					SELECT
>>						DD.PATH,
>>						DD.Filename,
>>						DD.PAGE
>>						FROM IMPACTMD.dbo.Doc_Detail DD
>>						WHERE documentid = @documentid
>>						ORDER BY DD.Filename, DD.PAGE
>>
>>				OPEN PAGE
>>
>>				FETCH NEXT
>>					FROM PAGE
>>					INTO
>>						@PATH ,
>>						@Filename,
>>						@PAGE
>>
>>				WHILE @@FETCH_STATUS = 0
>>
>>					BEGIN
>>
>>						IF @Filename COLLATE Latin1_General_CI_AI LIKE '%.TIF%' COLLATE Latin1_General_CI_AI
>>
>>							BEGIN
>>
>>								IF @PAGE = 1
>>
>>									BEGIN
>>
>>										SET @Export_FileName = @Filename
>>										-- Currently G:\TCimages and F:\Images1 on client box
>>										SET @Merge_Script = 'c:\ImpactMD\Images\' + @PATH + @Filename + ','
>>
>>									END
>>
>>								IF @PAGE <> 1
>>
>>									BEGIN
>>
>>										SET @Merge_Script = @Merge_Script + 'c:\ImpactMD\Images\' + @PATH + @Filename + ','
>>
>>										FETCH NEXT
>>											FROM PAGE
>>											INTO
>>												@PATH ,
>>												@Filename,
>>												@PAGE
>>
>>									END
>>
>>								FETCH NEXT
>>									FROM PAGE
>>									INTO
>>										@PATH ,
>>										@Filename,
>>										@PAGE
>>
>>							END
>>
>>					END
>>
>>				CLOSE PAGE
>>				DEALLOCATE PAGE
>>
>>				SET @Merge_Script = LEFT(@Merge_Script,LEN(LTRIM(RTRIM(@Merge_Script))) -1)
>>				SET @Merge_Script = @Merge_Script + '|c:\ImpactMD\Export\|' + @Export_FileName
>>				SET @Merge_Script = 'C:\ImpactMD\Tiff\Tiff_Merger.exe "' + @Merge_Script + '"'
>>
>>				-- Testing ONLY!
>>				PRINT @Merge_Script
>>
>>				--EXEC MASTER.dbo.xp_cmdshell @Merge_Script, no_output
>>
>>				FETCH NEXT
>>					FROM Patient
>>					INTO
>>						@DocDateTime ,
>>						@DocumentName,
>>						@documentid ,
>>						@Folder
>>
>>			END
>>
>>		CLOSE Patient
>>		DEALLOCATE Patient
>>
>>		FETCH NEXT
>>			FROM ChartID
>>			INTO
>>				@ChartID
>>
>>	END
>>
>>CLOSE ChartID
>>DEALLOCATE ChartID
>>
>>SET NOCOUNT OFF
>>
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform