Я установил SQL Сервер Express на своем компьютере, включил и настроил FILESTREAM для хранения и получения PDF-файлов с SQL Сервера. Я успешно загрузил файлы на свою таблицу как BLOB-файлы, но у меня возникают трудности с их получением. Мой подход заключается в использовании временного каталога для создания файлов, чтобы я мог их открыть. У меня есть следующий код:
Я настроил автоматизацию ole
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ole Automation Procedures', 1;
GO
RECONFIGURE;
GO
У меня есть следующая запись в моей таблице BusinessFiles:
FileID 415578C7-B058-49A5-A1E4-5A4E7218EA19
InvoiceID 99999
FileName file1
FileType pdf
ImageFile 0x255044462D312…
Этот следующий фрагмент кода по-видимому, создаст файл из файлового потока.
DECLARE
@FILE VARBINARY(MAX)
,@FILEPATH VARCHAR(MAX)
,@ObjectToken INT
,@FileType VARCHAR(MAX)
,@FILENAME VARCHAR(MAX)
Set @FILENAME = (SELECT [FileName] FROM BusinessFiles where FileID = '415578C7-B058-49A5-A1E4-5A4E7218EA19')
Set @FileType = (SELECT FileType FROM BusinessFiles where FileID = '415578C7-B058-49A5-A1E4-5A4E7218EA19')
SELECT @FILE = ImageFile FROM BusinessFiles where FileID = '415578C7-B058-49A5-A1E4-5A4E7218EA19'
Set @FILEPATH = CONCAT('C:\Users\user\Desktop\', @FILENAME,'.',@FileType)
EXEC sp_OACREATE 'ADODB.Stream', @ObjectToken OUTPUT
EXEC sp_OASetProperty @ObjectToken, 'Type', 1
EXEC sp_OAMethod @ObjectToken, 'Open'
EXEC sp_OAMethod @ObjectToken, 'Write', NULL, @FILE
EXEC sp_OAMethod @ObjectToken, 'SaveToFile', NULL, @FILEPATH, 2
EXEC sp_OAMethod @ObjectToken, 'Close'
EXEC sp_OADestroy @ObjectToken
Go
Этот код выполняется, и я получаю сообщение Успешно завершено выполнение команд. Однако в моей папке ничего нет C: \ Users \ user \ Desktop. Я что-то пропустил? Спасибо;
Я проверил правильный путь к файлу и все наборы хороши.