Как получить выходное значение из хранимой процедуры из другой хранимой процедуры в табличном формате - PullRequest
0 голосов
/ 24 ноября 2011

У меня есть таблица со следующими данными, которая имеет itemID и Imagepath (s)

tableImagePath

ItemID     frontimage                          backimage
---------  ----------------------------------  ---------------------------------
772740509  2011\11\24\1\8014681_5_1_FRONT.tif  2011\11\24\1\8014681_5_1_BACK.tif
772740508  2011\11\24\1\8014680_4_1_FRONT.tif  2011\11\24\1\8014680_4_1_BACK.tif
772740507  2011\11\24\1\8014679_3_1_FRONT.tif  2011\11\24\1\8014679_3_1_BACK.tif
772740506  2011\11\24\1\8014678_2_1_FRONT.tif  2011\11\24\1\8014678_2_1_BACK.tif
772740505  2011\11\24\1\8014677_1_1_FRONT.tif  2011\11\24\1\8014677_1_1_BACK.tif
772740504  2011\11\24\1\8014676_5_1_FRONT.tif  2011\11\24\1\8014676_5_1_BACK.tif
772740503  2011\11\24\1\8014675_4_1_FRONT.tif  2011\11\24\1\8014675_4_1_BACK.tif
772740502  2011\11\24\1\8014674_3_1_FRONT.tif  2011\11\24\1\8014674_3_1_BACK.tif
772740501  2011\11\24\1\8014673_2_1_FRONT.tif  2011\11\24\1\8014673_2_1_BACK.tif
772740500  2011\11\24\1\8014672_1_1_FRONT.tif  2011\11\24\1\8014672_1_1_BACK.tif

У меня есть хранимая процедура, которая производитвывод изображения (из вышеприведенного пути) в кодировке base64.

declare @base64image as varchar(max)
exec dbo.prIMGCLR_ReadImage_Base64 '2011\11\24\1\8014681_5_1_FRONT.tif', @base64image out 
select @base64image

, который возвращает вывод, как показано ниже:

SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA....

Примечание. Хранимая процедура dbo.prIMGCLR_ReadImage_Base64на самом деле заблокирован, я не могу открыть источник, чтобы увидеть, что внутри.Поэтому я должен использовать только эту процедуру, у меня нет другой функции, которая возвращает значение в кодировке base64.

Теперь, если я использую эту же процедуру, чтобы получить значения в кодировке base64 для FrontImage и BackImage,вывод должен выглядеть следующим образом ...

tableImage_Base64Encoded

772740509   SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA...   SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA...
772740508   SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA...   SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA...
772740507   SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA...   SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA...
772740506   SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA...   SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA...
772740505   SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA...   SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA...
772740504   SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA...   SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA...
772740503   SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA...   SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA...
772740502   SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA...   SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA...
772740501   SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA...   SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA...
772740500   SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA...   SUkqAAgAAAATAP4ABAABAAAAKwIAAAIBAwABAAAAAQA+gAAABwBAwABAAAAAQAAACIAAAAAQAAAMgAAAABAAAA...

Может кто-нибудь, пожалуйста, помогите мне сделать это с хорошей производительностью.Вместо того, чтобы перебирать каждый, чтобы получить результат.Иногда это может идти более 1000 строк предметов.Так что на то, чтобы вывести результаты в виде таблицы, могут потребоваться целые годы.Спасибо, что заглянули в вопрос и предоставили мне решение.

1 Ответ

0 голосов
/ 24 ноября 2011

Если вы не можете преобразовать процесс, который генерирует строку base64, в функцию скалярного значения, я боюсь, что вы ничего не можете сделать, кроме как перебирать строки и генерировать значения по одному

...