Загрузить файл в 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 @HR [int]
DECLARE @Stream [int]
DECLARE @Buffer [varbinary](4096)
DECLARE @Size [int]
DECLARE @Pos [int] SET @Pos = 0
DECLARE @BufSize [int] SET @BufSize = 4096
DECLARE @Image [binary](16)
EXEC @HR = sp_OACreate 'ADODB.Stream',@Stream OUT
EXEC @HR = sp_OASetProperty @Stream,'Type',1
EXEC @HR = sp_OAMethod @Stream,'Open'
EXEC @HR = sp_OAMethod @Stream,'LoadFromFile',null, @Filename
EXEC @HR = sp_OAMethod @Stream,'Size',@Size OUTPUT
if not exists(SELECT * FROM MyTable WHERE SomeField=SomeID)
INSERT INTO MyTable VALUES(SomeID,'')
SELECT top 1 @Image = TEXTPTR(MyField) FROM MyTable WHERE SomeField=SomeID
Set @Pos=0
WHILE @Pos < @Size BEGIN
SET @BufSize = CASE WHEN @Size - @Pos < 4096 THEN @Size - @Pos ELSE 4096 END
EXEC @HR = sp_OAMethod @Stream,'Read',@Buffer OUTPUT,@BufSize
UPDATETEXT MyTable.MyField @Image @Pos 0 @Buffer
SET @Pos = @Pos + @BufSize
END
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 @HR [int]
DECLARE @Stream [int]
DECLARE @Buffer [varbinary](4096)
DECLARE @Size [int]
DECLARE @Pos [int] SET @Pos = 0
DECLARE @BufSize [int] SET @BufSize = 4096
DECLARE @Image [binary](16)
EXEC @HR = sp_OACreate 'ADODB.Stream',@Stream OUT
EXEC @HR = sp_OASetProperty @Stream,'Type',1
EXEC @HR = sp_OAMethod @Stream,'Open'
EXEC @HR = sp_OAMethod @Stream,'LoadFromFile',null, @Filename
EXEC @HR = sp_OAMethod @Stream,'Size',@Size OUTPUT
if not exists(SELECT * FROM MyTable WHERE SomeField=SomeID)
INSERT INTO MyTable VALUES(SomeID,'')
SELECT top 1 @Image = TEXTPTR(MyField) FROM MyTable WHERE SomeField=SomeID
Set @Pos=0
WHILE @Pos < @Size BEGIN
SET @BufSize = CASE WHEN @Size - @Pos < 4096 THEN @Size - @Pos ELSE 4096 END
EXEC @HR = sp_OAMethod @Stream,'Read',@Buffer OUTPUT,@BufSize
UPDATETEXT MyTable.MyField @Image @Pos 0 @Buffer
SET @Pos = @Pos + @BufSize
END
EXEC @HR = sp_OAMethod @Stream, 'Close'
EXEC @HR = sp_OADestroy @Stream
спасибо! помогло
Отправить комментарий