SQL Server
SQL Server
Set a Custom Last-Modified Date in a Gzip File
See more Gzip Examples
This example demonstrates how to use the SetDt method to specify a custom last-modified date and time that will be embedded in a Gzip file.
A CkDateTime object is first initialized with a specific date/time using an RFC 822 formatted string. This date/time is then applied to the Gzip object using SetDt.
When a compression method is called (such as CompressStringToFile), the specified date/time is included in the Gzip metadata. This allows the resulting .gz file to carry a meaningful timestamp rather than using the current system time.
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 demonstrates how to set a custom last-modified date/time
-- that will be embedded in a Gzip file.
DECLARE @gzip int
EXEC @hr = sp_OACreate 'Chilkat.Gzip', @gzip OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
DECLARE @dt int
EXEC @hr = sp_OACreate 'Chilkat.CkDateTime', @dt OUT
-- Set the date/time using a timestamp format (ISO 8601 style):
EXEC sp_OAMethod @dt, 'SetFromTimestamp', @success OUT, '2025-11-15T12:45:26-05:00'
-- Apply the date/time to the Gzip object:
EXEC sp_OAMethod @gzip, 'SetDt', @success OUT, @dt
IF @success = 0
BEGIN
EXEC sp_OAGetProperty @gzip, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @gzip
EXEC @hr = sp_OADestroy @dt
RETURN
END
-- Compress a string so the custom date/time is embedded in the .gz:
DECLARE @inputStr nvarchar(4000)
SELECT @inputStr = 'Example text for Gzip compression.'
EXEC sp_OAMethod @gzip, 'CompressStringToFile', @success OUT, @inputStr, 'utf-8', 'output.gz'
IF @success = 0
BEGIN
EXEC sp_OAGetProperty @gzip, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @gzip
EXEC @hr = sp_OADestroy @dt
RETURN
END
PRINT 'Gzip file created with custom last-modified date.'
EXEC @hr = sp_OADestroy @gzip
EXEC @hr = sp_OADestroy @dt
END
GO