Sample code for 30+ languages & platforms
SQL Server

CSV Enable Quotes

Explains the EnableQuotes property for the CSV class.

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
    -- Important: Do not use nvarchar(max).  See the warning about using nvarchar(max).
    DECLARE @sTmp0 nvarchar(4000)
    DECLARE @success int
    SELECT @success = 0

    -- The CSV in this example contains this:   test;"123;abc";xyz

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

    -- EnableQuotes is 1 by default, but we'll explicitly set to 1 here:
    EXEC sp_OASetProperty @csv, 'EnableQuotes', 1
    EXEC sp_OAMethod @csv, 'LoadFile', @success OUT, 'qa_data/csv/enableQuotes.csv'

    -- Show row 0, column 0
    EXEC sp_OAMethod @csv, 'GetCell', @sTmp0 OUT, 0, 0
    PRINT @sTmp0
    -- Show row 0, column 1
    EXEC sp_OAMethod @csv, 'GetCell', @sTmp0 OUT, 0, 1
    PRINT @sTmp0
    -- Show row 0, column 2
    EXEC sp_OAMethod @csv, 'GetCell', @sTmp0 OUT, 0, 2
    PRINT @sTmp0

    -- Output is: 
    --  test
    --  123;abc
    --  xyz

    -- -------------------------------------------
    -- Turn off EnableQuotes and see what happens:

    DECLARE @csv2 int
    EXEC @hr = sp_OACreate 'Chilkat.Csv', @csv2 OUT

    EXEC sp_OASetProperty @csv2, 'EnableQuotes', 0

    EXEC sp_OAMethod @csv2, 'LoadFile', @success OUT, 'qa_data/csv/enableQuotes.csv'

    EXEC sp_OAMethod @csv2, 'GetCell', @sTmp0 OUT, 0, 0
    PRINT @sTmp0
    EXEC sp_OAMethod @csv2, 'GetCell', @sTmp0 OUT, 0, 1
    PRINT @sTmp0
    EXEC sp_OAMethod @csv2, 'GetCell', @sTmp0 OUT, 0, 2
    PRINT @sTmp0
    EXEC sp_OAMethod @csv2, 'GetCell', @sTmp0 OUT, 0, 3
    PRINT @sTmp0

    -- Output is:

    --  test
    --  "123
    --  abc"
    --  xyz

    EXEC @hr = sp_OADestroy @csv
    EXEC @hr = sp_OADestroy @csv2


END
GO