Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(SQL Server) SugarCRM Filtering RecordsExport records and filter.
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls. -- CREATE PROCEDURE ChilkatSample AS BEGIN DECLARE @hr int DECLARE @iTmp0 int -- Important: Do not use nvarchar(max). See the warning about using nvarchar(max). DECLARE @sTmp0 nvarchar(4000) DECLARE @rest int -- Use "Chilkat_9_5_0.Rest" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.Rest', @rest OUT IF @hr <> 0 BEGIN PRINT 'Failed to create ActiveX component' RETURN END DECLARE @success int EXEC sp_OAMethod @rest, 'Connect', @success OUT, 'your.site.domain', 443, 1, 1 IF @success <> 1 BEGIN EXEC sp_OAGetProperty @rest, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @rest RETURN END EXEC sp_OAMethod @rest, 'AddHeader', @success OUT, 'Cache-Control', 'no-cache' EXEC sp_OAMethod @rest, 'AddHeader', @success OUT, 'OAuth-Token', '<access_token>' -- The following code creates the JSON request body. -- The JSON created by this code is shown below. DECLARE @jsonReq int -- Use "Chilkat_9_5_0.JsonObject" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @jsonReq OUT EXEC sp_OAMethod @jsonReq, 'UpdateString', @success OUT, 'filter[0].$or[0].name.$starts', 'A' EXEC sp_OAMethod @jsonReq, 'UpdateString', @success OUT, 'filter[0].$or[1].name.$starts', 'b' EXEC sp_OAMethod @jsonReq, 'UpdateNumber', @success OUT, 'max_num', '2' EXEC sp_OAMethod @jsonReq, 'UpdateNumber', @success OUT, 'offset', '0' EXEC sp_OAMethod @jsonReq, 'UpdateString', @success OUT, 'fields', 'id' EXEC sp_OAMethod @jsonReq, 'UpdateString', @success OUT, 'order_by', 'date_entered' EXEC sp_OAMethod @jsonReq, 'UpdateBool', @success OUT, 'favorites', 0 EXEC sp_OAMethod @jsonReq, 'UpdateBool', @success OUT, 'my_items', 0 -- The JSON request body created by the above code: -- { -- "filter": [ -- { -- "$or": [ -- { -- "name": { -- "$starts": "A" -- } -- }, -- { -- "name": { -- "$starts": "b" -- } -- } -- ] -- } -- ], -- "max_num": 2, -- "offset": 0, -- "fields": "id", -- "order_by": "date_entered", -- "favorites": false, -- "my_items": false -- } DECLARE @sbReq int -- Use "Chilkat_9_5_0.StringBuilder" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.StringBuilder', @sbReq OUT EXEC sp_OAMethod @jsonReq, 'EmitSb', @success OUT, @sbReq EXEC sp_OAMethod @rest, 'AddHeader', @success OUT, 'Content-Type', 'application/json' DECLARE @sbJson int -- Use "Chilkat_9_5_0.StringBuilder" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.StringBuilder', @sbJson OUT EXEC sp_OAMethod @rest, 'FullRequestSb', @success OUT, 'POST', '/rest/v10/Accounts/filter', @sbReq, @sbJson IF @success <> 1 BEGIN EXEC sp_OAGetProperty @rest, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @rest EXEC @hr = sp_OADestroy @jsonReq EXEC @hr = sp_OADestroy @sbReq EXEC @hr = sp_OADestroy @sbJson RETURN END EXEC sp_OAGetProperty @rest, 'ResponseStatusCode', @iTmp0 OUT IF @iTmp0 <> 200 BEGIN EXEC sp_OAGetProperty @rest, 'ResponseStatusCode', @iTmp0 OUT PRINT 'Received error response code: ' + @iTmp0 PRINT 'Response body:' EXEC sp_OAMethod @sbJson, 'GetAsString', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @rest EXEC @hr = sp_OADestroy @jsonReq EXEC @hr = sp_OADestroy @sbReq EXEC @hr = sp_OADestroy @sbJson RETURN END DECLARE @json int -- Use "Chilkat_9_5_0.JsonObject" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @json OUT EXEC sp_OAMethod @json, 'LoadSb', @success OUT, @sbJson -- The following code parses the JSON response. -- A sample JSON response is shown below the sample code. DECLARE @next_offset int DECLARE @i int DECLARE @count_i int DECLARE @id nvarchar(4000) DECLARE @date_modified nvarchar(4000) DECLARE @v_module nvarchar(4000) EXEC sp_OAMethod @json, 'IntOf', @next_offset OUT, 'next_offset' SELECT @i = 0 EXEC sp_OAMethod @json, 'SizeOfArray', @count_i OUT, 'records' WHILE @i < @count_i BEGIN EXEC sp_OASetProperty @json, 'I', @i EXEC sp_OAMethod @json, 'StringOf', @id OUT, 'records[i].id' EXEC sp_OAMethod @json, 'StringOf', @date_modified OUT, 'records[i].date_modified' EXEC sp_OAMethod @json, 'StringOf', @v_module OUT, 'records[i]._module' SELECT @i = @i + 1 END -- A sample JSON response body that is parsed by the above code: -- { -- "next_offset": 2, -- "records": [ -- { -- "id": "f16760a4-3a52-f77d-1522-5703ca28925f", -- "date_modified": "2016-04-05T10:23:28-04:00", -- "_acl": { -- "fields": {} -- }, -- "_module": "Accounts" -- }, -- { -- "id": "ec409fbb-2b22-4f32-7fa1-5703caf78dc3", -- "date_modified": "2016-04-05T10:23:28-04:00", -- "_acl": { -- "fields": {} -- }, -- "_module": "Accounts" -- } -- ] -- } PRINT 'Example Completed.' EXEC @hr = sp_OADestroy @rest EXEC @hr = sp_OADestroy @jsonReq EXEC @hr = sp_OADestroy @sbReq EXEC @hr = sp_OADestroy @sbJson EXEC @hr = sp_OADestroy @json END GO |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.