Home Forums SQL Server 2008 T-SQL (SS2K8) sp_OAGetProperty @obj, 'responseText', @response OUT cannot handle large output RE: sp_OAGetProperty @obj, 'responseText', @response OUT cannot handle large output

  • Hey guys,

    Thanks again Lowell for all your help, for what its worth this is how I got my xml file reader to build the response xml from chunks of a text reader. It's been trucking along for a quite a while with no issues. *knock on wood*

    EXECUTE @hResult = sp_OACreate ''Scripting.FileSystemObject'' , @objFileSystem OUT

    IF @hResult <> 0

    BEGIN

    EXEC sp_OAGetErrorInfo @objFileSystem, @ErrorSource OUT, @ErrorDesc OUT

    SET @ErrorFailPoint = ''Creating FSO''

    GOTO DestroyFSO

    RETURN

    END

    SET @FileNameAndPath = @Path + ''\'' + @FileName

    -- Read file

    EXECUTE @hResult = sp_OAMethod @objFileSystem, ''OpenTextFile'', @objTextStream OUT, @FileNameAndPath, 1, false, 0--for reading, FormatASCII

    IF @hResult <> 0

    BEGIN

    EXEC sp_OAGetErrorInfo @objFileSystem, @ErrorSource OUT, @ErrorDesc OUT

    SET @ErrorFailPoint = ''Opening Reponse File''

    GOTO Destroy

    RETURN

    END

    SET @ResponseText = ''''

    WHILE @hResult = 0

    BEGIN

    EXECUTE @hResult = sp_OAGetProperty @objTextStream, ''AtEndOfStream'', @YesOrNo OUTPUT

    IF @hResult <> 0

    BEGIN

    EXEC sp_OAGetErrorInfo @objTextStream, @ErrorSource OUT, @ErrorDesc OUT

    SET @ErrorFailPoint = ''Checking AtEndOfStream''

    GOTO Destroy

    RETURN

    END

    IF @YesOrNo <> 0

    BREAK

    EXECUTE @hResult = sp_OAMethod @objTextStream, ''Read'', @chunk OUTPUT, 4000

    IF @hResult <> 0

    BEGIN

    EXEC sp_OAGetErrorInfo @objTextStream, @ErrorSource OUT, @ErrorDesc OUT

    SET @ErrorFailPoint = ''Reading Chunk''

    GOTO Destroy

    RETURN

    END

    SET @ResponseText = @ResponseText + ISNULL(@Chunk, '''')

    END

    EXECUTE @hResult = sp_OAMethod @objTextStream, ''Close''

    IF @hResult <> 0

    BEGIN

    EXEC sp_OAGetErrorInfo @objTextStream, @ErrorSource OUT, @ErrorDesc OUT

    SET @ErrorFailPoint = ''Closing Response File''

    GOTO Destroy

    RETURN

    END

    -- Record response info

    SET @ResponseXml = CAST(@ResponseText AS XML)

    Destroy:

    EXEC sp_OADestroy @objTextStream

    DestroyFSO:

    EXEC sp_OADestroy @objFileSystem