SQL Server
SQL Server
Clear the SFTP Session Log
See more SFTP Examples
Demonstrates the Chilkat SFtp.ClearSessionLog method, which clears the in-memory text stored in the SessionLog property. It takes no arguments.
Background: With session logging enabled, the
SessionLog accumulates a running record of the session's activity that is invaluable for diagnosing a failed transfer. Over a long-lived session that log grows unbounded, so clearing it frees memory — and, more usefully, lets you capture the log for one specific operation in isolation by clearing it just before and reading it just after.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 @sTmp0 nvarchar(4000)
DECLARE @success int
SELECT @success = 0
-- Demonstrates the SFtp.ClearSessionLog method, which clears the in-memory text stored in the
-- SessionLog property. It takes no arguments.
DECLARE @sftp int
EXEC @hr = sp_OACreate 'Chilkat.SFtp', @sftp OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
-- Connect, authenticate, and initialize the SFTP subsystem.
DECLARE @port int
SELECT @port = 22
EXEC sp_OAMethod @sftp, 'Connect', @success OUT, 'sftp.example.com', @port
IF @success = 0
BEGIN
EXEC sp_OAGetProperty @sftp, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @sftp
RETURN
END
-- Normally you would not hard-code the password in source. You should instead obtain it
-- from an interactive prompt, environment variable, or a secrets vault.
DECLARE @password nvarchar(4000)
SELECT @password = 'mySshPassword'
EXEC sp_OAMethod @sftp, 'AuthenticatePw', @success OUT, 'mySshLogin', @password
IF @success = 0
BEGIN
EXEC sp_OAGetProperty @sftp, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @sftp
RETURN
END
EXEC sp_OAMethod @sftp, 'InitializeSftp', @success OUT
IF @success = 0
BEGIN
EXEC sp_OAGetProperty @sftp, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @sftp
RETURN
END
-- When KeepSessionLog is enabled, the SessionLog property accumulates a record of the session's
-- activity, which is useful for debugging.
EXEC sp_OASetProperty @sftp, 'KeepSessionLog', 1
-- ... perform operations ...
-- Clear the accumulated log, for example before starting a new logical operation whose log you
-- want to capture in isolation.
EXEC sp_OAMethod @sftp, 'ClearSessionLog', NULL
PRINT 'Session log cleared.'
EXEC sp_OAMethod @sftp, 'Disconnect', NULL
EXEC @hr = sp_OADestroy @sftp
END
GO