SQL Server
SQL Server
DVLA Vehicle Enquiry Service
See more _Miscellaneous_ Examples
Demonstrates how to make a call to the DVLA Vehicle Enquiry API to get vehicle details of a specified vehicle. It uses the vehicle registration number as input to search and provide details of the vehicle.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 assumes the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.
DECLARE @http int
EXEC @hr = sp_OACreate 'Chilkat.Http', @http OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
-- Implements the following CURL command:
-- curl -X POST https://driver-vehicle-licensing.api.gov.uk/vehicle-enquiry/v1/vehicles \
-- -H "x-api-key: supplied API key" \
-- -H "Accept: application/json" \
-- -d '{"registrationNumber": "ABC1234"}'
-- Use the following online tool to generate HTTP code from a CURL command
-- Convert a cURL Command to HTTP Source Code
-- Use this online tool to generate code from sample JSON:
-- Generate Code to Create JSON
-- The following JSON is sent in the request body.
-- {
-- "registrationNumber": "ABC1234"
-- }
DECLARE @json int
EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @json OUT
EXEC sp_OAMethod @json, 'UpdateString', @success OUT, 'registrationNumber', 'ABC1234'
EXEC sp_OAMethod @http, 'SetRequestHeader', NULL, 'Accept', 'application/json'
EXEC sp_OAMethod @http, 'SetRequestHeader', NULL, 'x-api-key', 'supplied API key'
DECLARE @resp int
EXEC @hr = sp_OACreate 'Chilkat.HttpResponse', @resp OUT
EXEC sp_OAMethod @http, 'HttpJson', @success OUT, 'POST', 'https://driver-vehicle-licensing.api.gov.uk/vehicle-enquiry/v1/vehicles', @json, 'application/json', @resp
IF @success = 0
BEGIN
EXEC sp_OAGetProperty @http, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @http
EXEC @hr = sp_OADestroy @json
EXEC @hr = sp_OADestroy @resp
RETURN
END
DECLARE @sbResponseBody int
EXEC @hr = sp_OACreate 'Chilkat.StringBuilder', @sbResponseBody OUT
EXEC sp_OAMethod @resp, 'GetBodySb', @success OUT, @sbResponseBody
DECLARE @jResp int
EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @jResp OUT
EXEC sp_OAMethod @jResp, 'LoadSb', @success OUT, @sbResponseBody
EXEC sp_OASetProperty @jResp, 'EmitCompact', 0
PRINT 'Response Body:'
EXEC sp_OAMethod @jResp, 'Emit', @sTmp0 OUT
PRINT @sTmp0
DECLARE @respStatusCode int
EXEC sp_OAGetProperty @resp, 'StatusCode', @respStatusCode OUT
PRINT 'Response Status Code = ' + @respStatusCode
IF @respStatusCode >= 400
BEGIN
PRINT 'Response Header:'
EXEC sp_OAGetProperty @resp, 'Header', @sTmp0 OUT
PRINT @sTmp0
PRINT 'Failed.'
EXEC @hr = sp_OADestroy @http
EXEC @hr = sp_OADestroy @json
EXEC @hr = sp_OADestroy @resp
EXEC @hr = sp_OADestroy @sbResponseBody
EXEC @hr = sp_OADestroy @jResp
RETURN
END
-- Sample JSON response:
-- (Sample code for parsing the JSON response is shown below)
-- {
-- "artEndDate": "2025-02-28",
-- "co2Emissions": 135,
-- "colour": "BLUE",
-- "engineCapacity": 2494,
-- "fuelType": "PETROL",
-- "make": "ROVER",
-- "markedForExport": false,
-- "monthOfFirstRegistration": "2004-12",
-- "motStatus": "No details held by DVLA",
-- "registrationNumber": "ABC1234",
-- "revenueWeight": 1640,
-- "taxDueDate": "2007-01-01",
-- "taxStatus": "Untaxed",
-- "typeApproval": "N1",
-- "wheelplan": "NON STANDARD",
-- "yearOfManufacture": 2004,
-- "euroStatus": "EURO 6 AD",
-- "realDrivingEmissions": "1",
-- "dateOfLastV5CIssued": "2016-12-25"
-- }
-- Sample code for parsing the JSON response...
-- Use the following online tool to generate parsing code from sample JSON:
-- Generate Parsing Code from JSON
DECLARE @artEndDate nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @artEndDate OUT, 'artEndDate'
DECLARE @co2Emissions int
EXEC sp_OAMethod @jResp, 'IntOf', @co2Emissions OUT, 'co2Emissions'
DECLARE @colour nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @colour OUT, 'colour'
DECLARE @engineCapacity int
EXEC sp_OAMethod @jResp, 'IntOf', @engineCapacity OUT, 'engineCapacity'
DECLARE @fuelType nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @fuelType OUT, 'fuelType'
DECLARE @make nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @make OUT, 'make'
DECLARE @markedForExport int
EXEC sp_OAMethod @jResp, 'BoolOf', @markedForExport OUT, 'markedForExport'
DECLARE @monthOfFirstRegistration nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @monthOfFirstRegistration OUT, 'monthOfFirstRegistration'
DECLARE @motStatus nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @motStatus OUT, 'motStatus'
DECLARE @registrationNumber nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @registrationNumber OUT, 'registrationNumber'
DECLARE @revenueWeight int
EXEC sp_OAMethod @jResp, 'IntOf', @revenueWeight OUT, 'revenueWeight'
DECLARE @taxDueDate nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @taxDueDate OUT, 'taxDueDate'
DECLARE @taxStatus nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @taxStatus OUT, 'taxStatus'
DECLARE @typeApproval nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @typeApproval OUT, 'typeApproval'
DECLARE @wheelplan nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @wheelplan OUT, 'wheelplan'
DECLARE @yearOfManufacture int
EXEC sp_OAMethod @jResp, 'IntOf', @yearOfManufacture OUT, 'yearOfManufacture'
DECLARE @euroStatus nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @euroStatus OUT, 'euroStatus'
DECLARE @realDrivingEmissions nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @realDrivingEmissions OUT, 'realDrivingEmissions'
DECLARE @dateOfLastV5CIssued nvarchar(4000)
EXEC sp_OAMethod @jResp, 'StringOf', @dateOfLastV5CIssued OUT, 'dateOfLastV5CIssued'
EXEC @hr = sp_OADestroy @http
EXEC @hr = sp_OADestroy @json
EXEC @hr = sp_OADestroy @resp
EXEC @hr = sp_OADestroy @sbResponseBody
EXEC @hr = sp_OADestroy @jResp
END
GO