Sample code for 30+ languages & platforms
SQL Server

Append Part to MIME

See more MIME Examples

Demonstrates the AppendPart method for adding sub-parts to MIME.

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 requires the Chilkat API to have been previously unlocked.
    -- See Global Unlock Sample for sample code.

    -- Create a text/plain part.
    DECLARE @ptMime int
    EXEC @hr = sp_OACreate 'Chilkat.Mime', @ptMime OUT
    IF @hr <> 0
    BEGIN
        PRINT 'Failed to create ActiveX component'
        RETURN
    END

    EXEC sp_OAMethod @ptMime, 'SetBodyFromPlainText', @success OUT, 'This is the plain text body'
    EXEC sp_OAMethod @ptMime, 'GetMime', @sTmp0 OUT
    PRINT @sTmp0

    PRINT '****'

    -- The ptMime contains:
    -- ---------------------------------------
    -- 	Content-Type: text/plain
    -- 	Content-Transfer-Encoding: 7bit
    -- 
    -- 	This is the plain text body
    -- ---------------------------------------

    -- Start with an empty MIME object...
    DECLARE @topLevelMime int
    EXEC @hr = sp_OACreate 'Chilkat.Mime', @topLevelMime OUT

    -- Initialize it to a multipart Content-Type.  We'll use multipart/mixed.
    EXEC sp_OAMethod @topLevelMime, 'NewMultipartMixed', @success OUT

    -- Append the ptMime as a child.
    EXEC sp_OAMethod @topLevelMime, 'AppendPart', @success OUT, @ptMime
    EXEC sp_OAMethod @topLevelMime, 'GetMime', @sTmp0 OUT
    PRINT @sTmp0

    PRINT '****'

    -- The topLevelMime contains:
    -- --------------------------
    -- 	Content-Type: multipart/mixed; boundary="------------010907090104040508040404"
    -- 
    -- 	--------------010907090104040508040404
    -- 	Content-Type: text/plain
    -- 	Content-Transfer-Encoding: 7bit
    -- 
    -- 	This is the plain text body
    -- 	--------------010907090104040508040404--
    -- 

    -- IMPORTANT: A copy of the MIME passed in AppendPart is appended.
    -- Therefore, in this case, changing ptMime does not change the text/plain sub-part in topLevelMime.
    -- For example:
    EXEC sp_OAMethod @ptMime, 'SetBody', NULL, 'this is the new plain text body.'
    -- topLevelMime is unchanged.
    EXEC sp_OAMethod @topLevelMime, 'GetMime', @sTmp0 OUT
    PRINT @sTmp0

    PRINT '****'

    -- To change the content in topLevelMime, we must get the text/plain part.
    -- For example:

    DECLARE @ptMime2 int
    EXEC @hr = sp_OACreate 'Chilkat.Mime', @ptMime2 OUT

    EXEC sp_OAMethod @topLevelMime, 'PartAt', @success OUT, 0, @ptMime2

    EXEC sp_OAMethod @ptMime2, 'SetBody', NULL, 'this is the new plain text body.'
    -- Now topLevelMime is changed.
    EXEC sp_OAMethod @topLevelMime, 'GetMime', @sTmp0 OUT
    PRINT @sTmp0

    EXEC @hr = sp_OADestroy @ptMime
    EXEC @hr = sp_OADestroy @topLevelMime
    EXEC @hr = sp_OADestroy @ptMime2


END
GO