SQL Server
SQL Server
Append Part to MIME
See more MIME Examples
Demonstrates the AppendPart method for adding sub-parts to MIME.Chilkat SQL Server Downloads
-- 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