SQL Server
SQL Server
Create MIME Containing XML
See more MIME Examples
Calls SetBodyFromXml to load XML into the MIME body. Also sets the Content-Type header to "text/xml", and the Content-Transfer-Encoding to an appropriate transfer encoding based on the characters found in the XML.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.
DECLARE @mime int
EXEC @hr = sp_OACreate 'Chilkat.Mime', @mime OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
-- Add a few header fields:
EXEC sp_OAMethod @mime, 'AddHeaderField', @success OUT, 'Description', 'this is a test'
EXEC sp_OAMethod @mime, 'AddHeaderField', @success OUT, 'MyId', '123'
DECLARE @xmlData nvarchar(4000)
SELECT @xmlData = '<something>123</something>'
-- Set the mime body via SetBodyFromXml. This also
-- has the intended side-effect of adding the Content-Type
-- and Content-Transfer-Encoding headers.
EXEC sp_OAMethod @mime, 'SetBodyFromXml', @success OUT, @xmlData
EXEC sp_OAMethod @mime, 'GetMime', @sTmp0 OUT
PRINT @sTmp0
-- The MIME should look like this:
-- Description: this is a test
-- MyId: 123
-- Content-Type: text/xml;
-- Content-Transfer-Encoding: 7bit
--
-- <something>123</something>
-- Note: The Content-Transfer-Encoding may be changed.
-- For example, to use "base64", do this:
EXEC sp_OASetProperty @mime, 'Encoding', 'base64'
-- Show the MIME again, this time using the base64
-- transfer encoding:
EXEC sp_OAMethod @mime, 'GetMime', @sTmp0 OUT
PRINT @sTmp0
-- It should look like this:
-- Description: this is a test
-- MyId: 123
-- Content-Type: text/xml;
-- Content-Transfer-Encoding: base64
--
-- PHNvbWV0aGluZz4xMjM8L3NvbWV0aGluZz4=
EXEC @hr = sp_OADestroy @mime
END
GO