Sample code for 30+ languages & platforms
SQL Server

Download Web Page to MHT with w/ Disk Cache

See more MHT / HTML Email Examples

Downloads a web page into a .mht web archive. Embedded images and style sheets are loaded and/or saved to a disk cache.

Chilkat SQL Server Downloads

SQL Server
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls.
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
    DECLARE @hr int
    -- Important: Do not use nvarchar(max).  See the warning about using nvarchar(max).
    DECLARE @sTmp0 nvarchar(4000)
    DECLARE @success int
    SELECT @success = 0

    -- This example assumes the Chilkat API to have been previously unlocked.
    -- See Global Unlock Sample for sample code.

    DECLARE @mht int
    EXEC @hr = sp_OACreate 'Chilkat.Mht', @mht OUT
    IF @hr <> 0
    BEGIN
        PRINT 'Failed to create ActiveX component'
        RETURN
    END

    -- Use a single directory to hold cached files.
    -- (Make sure it is a directory your app has permission to create files.)
    EXEC sp_OASetProperty @mht, 'NumCacheLevels', 0
    EXEC sp_OAMethod @mht, 'AddCacheRoot', NULL, '/Users/chilkat/temp/mhtCache/'

    -- Tell the MHT component to save files to cache,
    -- and to retrieve from cache if possible:
    EXEC sp_OASetProperty @mht, 'FetchFromCache', 1
    EXEC sp_OASetProperty @mht, 'UpdateCache', 1

    -- The 1st time this is run, the parts (image files,
    -- style sheets, etc.) will be saved to the disk cache.
    -- The 2nd time this is run, the parts will load from cache.
    -- Note: The main content (i.e. the HTML page) 
    -- is not saved to cache, nor is it retrieved from cache.
    -- It is only the sub-parts (embedded images, style sheets)
    -- that are saved to and loaded from cache.
    EXEC sp_OAMethod @mht, 'GetAndSaveMHT', @success OUT, 'http://www.intel.com/', 'intel.mht'
    IF @success <> 1
      BEGIN
        EXEC sp_OAGetProperty @mht, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
      END
    ELSE
      BEGIN

        PRINT 'MHT Created!'
      END

    EXEC @hr = sp_OADestroy @mht


END
GO