![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java JavaScript Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(SQL Server) Viewing a Simple Three-Step Execution PlanSee more CURL ExamplesThis example demonstrates a straightforward, valid dependency chain that results in a three-step execution plan. The goal is not to execute the requests, but to inspect how the plan is constructed using The target Because
When Note: This example requires Chilkat v11.5.0 or greater. For more information, see https://www.chilkatsoft.com/curl_dependency_engine.asp
-- 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 @httpCurl int EXEC @hr = sp_OACreate 'Chilkat.HttpCurl', @httpCurl OUT IF @hr <> 0 BEGIN PRINT 'Failed to create ActiveX component' RETURN END -- The target curl command requires {{order_id}}. DECLARE @targetCurl nvarchar(4000) SELECT @targetCurl = 'curl -X GET https://api.example.com/orders/{{order_id}}' -- Define a helper function that produces order_id from customer_id. DECLARE @fnName nvarchar(4000) SELECT @fnName = 'getOrderId' EXEC sp_OAMethod @httpCurl, 'AddFunction', @success OUT, @fnName, 'curl -X GET https://api.example.com/order-id?customer={{customer_id}}' EXEC sp_OAMethod @httpCurl, 'AddOutput', @success OUT, @fnName, 'order.id', 'order_id' -- Define a helper function that produces customer_id from account_name. SELECT @fnName = 'getCustomerId' EXEC sp_OAMethod @httpCurl, 'AddFunction', @success OUT, @fnName, 'curl -X GET https://api.example.com/customer-id?account={{account_name}}' EXEC sp_OAMethod @httpCurl, 'AddOutput', @success OUT, @fnName, 'customer.id', 'customer_id' -- Provide the starting known input. EXEC sp_OAMethod @httpCurl, 'SetVar', NULL, 'account_name', 'acme' -- Examine the execution plan without running any requests. DECLARE @planJson int EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @planJson OUT EXEC sp_OASetProperty @planJson, 'EmitCompact', 0 EXEC sp_OAMethod @httpCurl, 'ExaminePlan', @success OUT, @targetCurl, @planJson -- Success is expected to be 1. PRINT 'success = ' + @success EXEC sp_OAMethod @planJson, 'Emit', @sTmp0 OUT PRINT @sTmp0 -- Expected result: -- -- { -- "plan": [{ -- "function": "getCustomerId", -- "inputs": ["account_name"], -- "outputs": ["customer_id"] -- },{ -- "function": "getOrderId", -- "inputs": ["customer_id"], -- "outputs": ["order_id"] -- },{ -- "function": "targetCurl", -- "inputs": ["order_id"], -- "outputs": [] -- }] -- } EXEC @hr = sp_OADestroy @httpCurl EXEC @hr = sp_OADestroy @planJson END GO |
||||
© 2000-2026 Chilkat Software, Inc. All Rights Reserved.