A further example from MSDN reference of a VB function, testing the behavior of the READ method, for different lengths, repeated.
SET nocount ON
DECLARE @ForReading INT ,
@ForWriting INT ,
@ForAppending INT
SELECT @ForReading = 1,
@ForWriting = 2,
@ForAppending = 8
DECLARE @fso INT, @file INT, @hr INT
EXEC @hr = sp_OACreate 'Scripting.FileSystemObject', @fso OUT
EXEC @hr = sp_OAMethod @fso, 'opentextfile', @file out, 'c:\testfile.txt', @ForWriting, 1
EXEC @hr = sp_OAMethod @file, 'Write', NULL, '123456789 Hello My world!'
EXEC @hr = sp_OADestroy @file
EXEC master..xp_cmdshell 'dir c:\testfile.txt'
DECLARE @vcOut VARCHAR(100)
DECLARE @vcOut1 VARCHAR(100)
EXEC @hr = sp_OAMethod @fso, 'opentextfile', @file out, 'c:\testfile.txt', @ForReading, 1
EXEC @hr = sp_OAMethod @file, 'Read', @vcOut out , 7
EXEC @hr = sp_OAMethod @file, 'Read', @vcOut1 out , 2
EXEC @hr = sp_OADestroy @file
EXEC @hr = sp_OADestroy @fso
PRINT REPLICATE('-',100)
PRINT @vcOUT
PRINT @vcOUT1
