SQL Server
SQL Server
SCP Download Files Matching a Pattern, such as *.txt
See more SCP Examples
Demonstrates how to SCP download files matching a pattern, such as *.txt.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 requires the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.
DECLARE @ssh int
EXEC @hr = sp_OACreate 'Chilkat.Ssh', @ssh OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
-- Connect to an SSH server:
DECLARE @hostname nvarchar(4000)
SELECT @hostname = 'MY-SSH-SERVER-DOMAIN-OR-IP'
DECLARE @port int
SELECT @port = 22
EXEC sp_OAMethod @ssh, 'Connect', @success OUT, @hostname, @port
IF @success <> 1
BEGIN
EXEC sp_OAGetProperty @ssh, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @ssh
RETURN
END
-- Wait a max of 5 seconds when reading responses..
EXEC sp_OASetProperty @ssh, 'IdleTimeoutMs', 5000
-- Authenticate using login/password:
EXEC sp_OAMethod @ssh, 'AuthenticatePw', @success OUT, 'MY-SSH-LOGIN', 'MY-SSH-PASSWORD'
IF @success <> 1
BEGIN
EXEC sp_OAGetProperty @ssh, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @ssh
RETURN
END
-- Once the SSH object is connected and authenticated, use it
-- in the SCP object.
DECLARE @scp int
EXEC @hr = sp_OACreate 'Chilkat.Scp', @scp OUT
EXEC sp_OAMethod @scp, 'UseSsh', @success OUT, @ssh
IF @success <> 1
BEGIN
EXEC sp_OAGetProperty @scp, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @ssh
EXEC @hr = sp_OADestroy @scp
RETURN
END
EXEC sp_OASetProperty @scp, 'HeartbeatMs', 200
-- Set the SyncMustMatch property to "*.pem" to download only .pem files
EXEC sp_OASetProperty @scp, 'SyncMustMatch', '*.pem'
DECLARE @remoteDir nvarchar(4000)
SELECT @remoteDir = 'qa_syncA'
DECLARE @localDir nvarchar(4000)
SELECT @localDir = 'c:/aaworkarea/scp/qa_syncA'
-- Download synchronization modes:
-- mode=0: Download all files
-- mode=1: Download all files that do not exist on the local filesystem.
-- mode=2: Download newer or non-existant files.
-- mode=3: Download only newer files.
-- If a file does not already exist on the local filesystem, it is not downloaded from the server.
-- mode=5: Download only missing files or files with size differences.
-- mode=6: Same as mode 5, but also download newer files.
DECLARE @mode int
SELECT @mode = 0
-- Do not recurse the remote directory tree. Only download files matching *.pem
-- from the given remote directory.
DECLARE @bRecurse int
SELECT @bRecurse = 0
EXEC sp_OAMethod @scp, 'SyncTreeDownload', @success OUT, @remoteDir, @localDir, @mode, @bRecurse
IF @success <> 1
BEGIN
EXEC sp_OAGetProperty @scp, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @ssh
EXEC @hr = sp_OADestroy @scp
RETURN
END
PRINT 'SCP download matching success.'
-- Disconnect
EXEC sp_OAMethod @ssh, 'Disconnect', NULL
EXEC @hr = sp_OADestroy @ssh
EXEC @hr = sp_OADestroy @scp
END
GO