SQL Server
SQL Server
Example: Secrets.SecretSpecToJson method
Demonstrates theSecretSpecToJson method. This method converts a secret specification string to the JSON required to create or lookup the secret.
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
DECLARE @secrets int
EXEC @hr = sp_OACreate 'Chilkat.Secrets', @secrets OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
DECLARE @json int
EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @json OUT
EXEC sp_OASetProperty @json, 'EmitCompact', 0
-- A secret name can include up to 4 components:
-- [appName] / service / [domain] / username
-- This example will demonstrate secret specification strings
-- for each possible combination.
-- ------------------------------------------------------
-- 1: service + username
DECLARE @sspec nvarchar(4000)
SELECT @sspec = '!!imap|john@example.com'
EXEC sp_OAMethod @secrets, 'SecretSpecToJson', @success OUT, @sspec, @json
EXEC sp_OAMethod @json, 'Emit', @sTmp0 OUT
PRINT @sTmp0
-- Result:
-- {
-- "service": "imap",
-- "username": "john@example.com"
-- }
-- ------------------------------------------------------
-- 2: appName + service + username
SELECT @sspec = '!!myApp|imap|john@example.com'
EXEC sp_OAMethod @secrets, 'SecretSpecToJson', @success OUT, @sspec, @json
EXEC sp_OAMethod @json, 'Emit', @sTmp0 OUT
PRINT @sTmp0
-- Result:
-- {
-- "appName": "myApp",
-- "service": "imap",
-- "username": "john@example.com"
-- }
-- ------------------------------------------------------
-- 3: service + domain + username
SELECT @sspec = '!!|imap|imap.example.com|john'
EXEC sp_OAMethod @secrets, 'SecretSpecToJson', @success OUT, @sspec, @json
EXEC sp_OAMethod @json, 'Emit', @sTmp0 OUT
PRINT @sTmp0
-- Result:
-- {
-- "service": "imap",
-- "domain": "imap.example.com",
-- "username": "john"
-- }
-- ------------------------------------------------------
-- 4: appName + service + domain + username
SELECT @sspec = '!!myApp|imap|imap.example.com|john'
EXEC sp_OAMethod @secrets, 'SecretSpecToJson', @success OUT, @sspec, @json
EXEC sp_OAMethod @json, 'Emit', @sTmp0 OUT
PRINT @sTmp0
-- Result:
-- {
-- "appName": "myApp",
-- "service": "imap",
-- "domain": "imap.example.com",
-- "username": "john"
-- }
EXEC @hr = sp_OADestroy @secrets
EXEC @hr = sp_OADestroy @json
END
GO