Загрузить файл в Blob поле

Previous  Top  Next

    
 

 

 

Code:

--©Drkb v.3(2007): www.drkb.ru

 

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

©Drkb::02850

Àâòîð: Vit (www.delphist.com, www.drkb.ru, www.unihighlighter.com, www.nevzorov.org)