SQL Server
SQL Server
Get Certificate Valid To/From Dates
Demonstrates how to get the certificate "valid from" and "valid to" dates.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
DECLARE @iTmp0 int
DECLARE @iTmp1 int
DECLARE @iTmp2 int
DECLARE @iTmp3 int
DECLARE @iTmp4 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 @cert int
EXEC @hr = sp_OACreate 'Chilkat.Cert', @cert OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
EXEC sp_OAMethod @cert, 'LoadFromFile', @success OUT, 'qa_data/certs/testCert.cer'
IF @success = 0
BEGIN
EXEC sp_OAGetProperty @cert, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @cert
RETURN
END
-- Get the certificate valid-from date/time
DECLARE @ckdt int
EXEC @hr = sp_OACreate 'Chilkat.CkDateTime', @ckdt OUT
EXEC sp_OAGetProperty @cert, 'ValidFromStr', @sTmp0 OUT
EXEC sp_OAMethod @ckdt, 'SetFromRfc822', @success OUT, @sTmp0
-- Get the local timestamp string.
EXEC sp_OAMethod @ckdt, 'GetAsTimestamp', @sTmp0 OUT, 1
PRINT 'Valid from: ' + @sTmp0
-- Valid from: 2017-03-17T19:00:00-05:00
-- Now get the date/time as another object where we can get the individual numeric date parts.
DECLARE @dt int
EXEC @hr = sp_OACreate 'Chilkat.DtObj', @dt OUT
EXEC sp_OAMethod @ckdt, 'ToDtObj', NULL, 1, @dt
EXEC sp_OAGetProperty @dt, 'Day', @iTmp0 OUT
EXEC sp_OAGetProperty @dt, 'Month', @iTmp1 OUT
EXEC sp_OAGetProperty @dt, 'Year', @iTmp2 OUT
EXEC sp_OAGetProperty @dt, 'Hour', @iTmp3 OUT
EXEC sp_OAGetProperty @dt, 'Minute', @iTmp4 OUT
PRINT @iTmp0 + '/' + @iTmp1 + '/' + @iTmp2 + ' ' + @iTmp3 + ':' + @iTmp4
-- Get the certificate valid-to date/time
EXEC sp_OAGetProperty @cert, 'ValidToStr', @sTmp0 OUT
EXEC sp_OAMethod @ckdt, 'SetFromRfc822', @success OUT, @sTmp0
EXEC sp_OAMethod @ckdt, 'GetAsTimestamp', @sTmp0 OUT, 1
PRINT 'Valid to: ' + @sTmp0
-- Valid to: 2020-03-18T18:59:59-05:00new DtObj dt;
EXEC sp_OAMethod @ckdt, 'ToDtObj', NULL, 1, @dt
EXEC sp_OAGetProperty @dt, 'Day', @iTmp0 OUT
EXEC sp_OAGetProperty @dt, 'Month', @iTmp1 OUT
EXEC sp_OAGetProperty @dt, 'Year', @iTmp2 OUT
EXEC sp_OAGetProperty @dt, 'Hour', @iTmp3 OUT
EXEC sp_OAGetProperty @dt, 'Minute', @iTmp4 OUT
PRINT @iTmp0 + '/' + @iTmp1 + '/' + @iTmp2 + ' ' + @iTmp3 + ':' + @iTmp4
EXEC @hr = sp_OADestroy @cert
EXEC @hr = sp_OADestroy @ckdt
EXEC @hr = sp_OADestroy @dt
END
GO