@NataliaCh

Как исправить T-SQL?

При поиске информации о том, как превратить бинарные данные из БД в конкретные файлы на диске, в инете можно найти следующий скрипт
DECLARE @SQLIMG VARCHAR(MAX),
    @IMG_PATH VARBINARY(MAX),
    @TIMESTAMP VARCHAR(MAX),
    @ObjectToken INT

DECLARE IMGPATH CURSOR FAST_FORWARD FOR 
        SELECT field1 FROM Table

OPEN IMGPATH 

FETCH NEXT FROM IMGPATH INTO @IMG_PATH 

WHILE @@FETCH_STATUS = 0
    BEGIN
        SET @TIMESTAMP = 'd:\' + replace(replace(replace(replace(convert(varchar,getdate(),121),'-',''),':',''),'.',''),' ','') + '.bmp'

        PRINT @TIMESTAMP
        PRINT @SQLIMG

        EXEC sp_OACreate 'ADODB.Stream', @ObjectToken OUTPUT
        EXEC sp_OASetProperty @ObjectToken, 'Type', 1
        EXEC sp_OAMethod @ObjectToken, 'Open'
        EXEC sp_OAMethod @ObjectToken, 'Write', NULL, @IMG_PATH
        EXEC sp_OAMethod @ObjectToken, 'SaveToFile', NULL, @TIMESTAMP, 2
        EXEC sp_OAMethod @ObjectToken, 'Close'
        EXEC sp_OADestroy @ObjectToken

        FETCH NEXT FROM IMGPATH INTO @IMG_PATH 
    END 

CLOSE IMGPATH
DEALLOCATE IMGPATH


Здесь из таблицы table вытаскивается одно единственное поле field1, содержащее бинарные данные изображения. Имя сохраняемого файла формируется из текущей даты.
Помогите, пожалуйста, изменить этот скрипт так, чтобы имя файла для записи на диск бралось из второго поля field2, которое есть в таблице Table. Не владею, к сожалению, Т-SQL на таком уровне.
  • Вопрос задан
  • 55 просмотров
Решения вопроса 1
BojackHorseman
@BojackHorseman
...в творческом отпуске...
1. поправить SELECT для выбора второго поля
2. добавить переменную в FETCH, чтобы обрабатывать значение второго поля
3. добавить это значение в имя генерируемого файла.

может даже заведется
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Единый Расчетный Центр Екатеринбург
от 35 000 до 61 250 руб.
Hunt4You Севастополь
от 60 000 до 120 000 руб.
19 сент. 2019, в 13:18
5000 руб./за проект
19 сент. 2019, в 13:16
20000 руб./за проект