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.
Alguna sugerencia para poder concatenar los valores al momento que se esta recorriendo cada fila?
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
0