Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Executing query doesn't stop
Message
 
 
To
16/06/2008 20:46:48
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:
01324670
Views:
12
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
>
If it's not broken, fix it until it is.


My Blog
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform