Sample code for 30+ languages & platforms
SQL Server

Receive a Line Terminated by CRLF

See more Socket/SSL/TLS Examples

Demonstrates Socket.ReceiveToCRLF, which receives text through a CRLF line terminator and returns the text including the terminator.

Background. Chilkat encodes CR followed by LF using StringCharset and searches the incoming byte stream for that exact sequence. This is convenient for line-oriented text protocols.

Chilkat SQL Server Downloads

SQL Server
-- 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 @sTmp0 nvarchar(4000)
    DECLARE @success int
    SELECT @success = 0

    DECLARE @socket int
    EXEC @hr = sp_OACreate 'Chilkat.Socket', @socket OUT
    IF @hr <> 0
    BEGIN
        PRINT 'Failed to create ActiveX component'
        RETURN
    END

    --  Connect to the server using TLS.  The 3rd argument enables the TLS handshake after the TCP
    --  connection succeeds; the 4th is the maximum time to wait, in milliseconds.
    DECLARE @bTls int
    SELECT @bTls = 1
    DECLARE @maxWaitMs int
    SELECT @maxWaitMs = 5000
    EXEC sp_OAMethod @socket, 'Connect', @success OUT, 'example.com', 5000, @bTls, @maxWaitMs
    IF @success = 0
      BEGIN
        EXEC sp_OAGetProperty @socket, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @socket
        RETURN
      END

    --  StringCharset controls the character encoding used when sending and receiving text.
    EXEC sp_OASetProperty @socket, 'StringCharset', 'utf-8'
    --  Send a request using a simple application-defined text protocol in which each message ends with a
    --  CRLF.
    DECLARE @command nvarchar(4000)
    SELECT @command = 'STATUS' + CHAR(13) + CHAR(10)
    EXEC sp_OAMethod @socket, 'SendString', @success OUT, @command
    IF @success = 0
      BEGIN
        EXEC sp_OAGetProperty @socket, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @socket
        RETURN
      END

    --  Receive text through a CRLF line terminator, returning the text including the terminator.  This is
    --  convenient for line-oriented text protocols in which each response is a CRLF-terminated line.
    DECLARE @responseLine nvarchar(4000)
    EXEC sp_OAMethod @socket, 'ReceiveToCRLF', @responseLine OUT
    EXEC sp_OAGetProperty @socket, 'LastMethodSuccess', @iTmp0 OUT
    IF @iTmp0 = 0
      BEGIN
        EXEC sp_OAGetProperty @socket, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @socket
        RETURN
      END

    PRINT @responseLine

    EXEC @hr = sp_OADestroy @socket


END
GO