Сохранить Blob поле в файл
Falk0ner, вс, 06/07/2008 - 15:34.
Сохранить Blob поле в файл
--©Drkb v.3(2007): <a href="http://www.drkb.ru
" title="www.drkb.ru
">www.drkb.ru
</a> DECLARE @BufLen [int]
DECLARE @BufPos [int]
DECLARE @Buffer [varbinary](4096)
DECLARE @Stream [int]
DECLARE @HR [int]
SELECT @BufPos = 1, @BufLen = DATALENGTH(MyField) FROM MyTable WHERE SomeField=@SomeID
EXEC @HR = sp_OACreate 'ADODB.Stream',@Stream OUT
EXEC @HR = sp_OASetProperty @Stream,'Type',1
EXEC @HR = sp_OAMethod @Stream,'Open'
WHILE @BufLen > 0
BEGIN
SELECT @Buffer = SUBSTRING(MyField,@BufPos,4096) FROM MyTable WHERE SomeField=@SomeID
EXEC @HR = sp_OAMethod @Stream,'Write',null,@Buffer
SELECT @BufLen = @BufLen - 4096, @BufPos = @BufPos + 4096
END
EXEC @HR = sp_OAMethod @Stream, 'SaveToFile',Null,@Filename,2
EXEC @HR = sp_OAMethod @Stream, 'Close'
EXEC @HR = sp_OADestroy @Stream
Автор: Vit (www.delphist.com, www.drkb.ru, www.unihighlighter.com, www.nevzorov.org)
" title="www.drkb.ru
">www.drkb.ru
</a> DECLARE @BufLen [int]
DECLARE @BufPos [int]
DECLARE @Buffer [varbinary](4096)
DECLARE @Stream [int]
DECLARE @HR [int]
SELECT @BufPos = 1, @BufLen = DATALENGTH(MyField) FROM MyTable WHERE SomeField=@SomeID
EXEC @HR = sp_OACreate 'ADODB.Stream',@Stream OUT
EXEC @HR = sp_OASetProperty @Stream,'Type',1
EXEC @HR = sp_OAMethod @Stream,'Open'
WHILE @BufLen > 0
BEGIN
SELECT @Buffer = SUBSTRING(MyField,@BufPos,4096) FROM MyTable WHERE SomeField=@SomeID
EXEC @HR = sp_OAMethod @Stream,'Write',null,@Buffer
SELECT @BufLen = @BufLen - 4096, @BufPos = @BufPos + 4096
END
EXEC @HR = sp_OAMethod @Stream, 'SaveToFile',Null,@Filename,2
EXEC @HR = sp_OAMethod @Stream, 'Close'
EXEC @HR = sp_OADestroy @Stream
Отправить комментарий