SQL Server - Ayuda: No puedo concatenar registros varbinary en while o cursor

   
Vista:

Ayuda: No puedo concatenar registros varbinary en while o cursor

Publicado por Elwyn (1 intervención) el 01/12/2017 22:25:30
Estimados,

Su apoyo con lo siguiente... Tengo una tabla con varios registros lob que pertenecen a un mismo archivo (PDF) y los quiero concatenar para poder descargarlo. El problema radica en que no puedo concatenar las filas en una sola, ya lo intente con cursores y while pero no tengo resultado.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
declare @pcod int --codigo del archivo
declare @ppart int -- numero de particiones
declare @nombreDoc varchar(200) -- nombre documento
declare @outPutPath varchar(50) = 'D:'  -- Unidad Ruta
declare @init int, @data varbinary(max), @datatemp varbinary(max), @fPath varchar(max) , @folderPath  varchar(max) -- Parametros
declare db_cursor cursor for
	select Doc_Num, Particiones from [dbo].[CabDocument] where particiones = 1;
open db_cursor
print 'Cod. Doc   | # Fragmentos'
fetch  db_cursor into @pcod,@ppart
while @@FETCH_STATUS = 0
begin
	print str(@pcod) + ' | ' + str(@ppart)
 
	select @nombreDoc = Nom_Extension
		from [dbo].[DetDocument] where Doc_Num = @pcod;
 
	print '      *Nombre: ' + @nombreDoc
 
		declare db_clob cursor for
			Select A.QPAAT_BLOB_VALUE from dbo.QPRUM_ASSOCIATION_ATTRIBUTE A
				where A.QPAAT_ATTRIBUTE_ID IN ('113') and QPAAT_ASSOCIATION_ID = @pcod
		open db_clob
		fetch db_clob into @data
		while @@FETCH_STATUS = 0
		begin
			select @datatemp = @data
			fetch db_clob into @data
		end
		close db_clob
		deallocate db_clob
		print @datatemp
 
		  select
			@fPath = @outPutPath +  '\ArchivosBD\' + @nombreDoc,
			@folderPath = @outPutPath + '\ArchivosBD'
 
		  print '      *Path: ' + @fPath
		  print '      *folderPath: ' + @folderPath
 
		  update [dbo].[DetDocument] set ruta = @fPath where Doc_Num = @pcod
 
		  --Create folder first
		  EXEC  [dbo].[CreateFolder] @folderPath
 
		  EXEC sp_OACreate 'ADODB.Stream', @init OUTPUT; -- An instace created
		  EXEC sp_OASetProperty @init, 'Type', 1;
		  EXEC sp_OAMethod @init, 'Open'; -- Calling a method
		  EXEC sp_OAMethod @init, 'Write', NULL, @data; -- Calling a method
		  EXEC sp_OAMethod @init, 'SaveToFile', NULL, @fPath, 2; -- Calling a method
		  EXEC sp_OAMethod @init, 'Close'; -- Calling a method
		  EXEC sp_OADestroy @init; -- Closed the resources
		  print 'Document Generated at - '+  @fPath
	fetch db_cursor into @pcod,@ppart
end
close db_cursor
deallocate db_cursor

Alguna sugerencia para poder concatenar los valores al momento que se esta recorriendo cada fila?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder