2.3.6:

    Try and patch up Oracle issue (its calling SQLGetData after a SQLFetch and getting upset when there is no data)

2.3.5:

    Speed up flushing data for a closed statement

2.3.4:

    Fix problem when used with Oracle Het Services

2.3.3:

    Add support for Enhanced Routing

2.3.2:

    Fix issue with read only routing with SSL

2.3.1:

    Change check for SQL_OV_ODBC3 into !SQL_OV_ODBC2

2.3.0:

    SQL Server 2025 support

2.2.27:

    Further CHAR(0) fix when inserting NULL's

2.2.26:

    CHAR(0) binding changed to CHAR(1) not CHAR(4000) to work with older servers

2.2.25:

    Add Override 0x400000 to Allow binding a CHAR(0) to address Rocket issue

2.2.24:

    More UTF8 and iconv things

2.2.23:

    Fix problem detecting UTF8 flag in collation

2.2.22:

    Try and fix unicode insert via DAE

2.2.21:

    Fix conversion problem in non ssl version of the driver.

2.2.20:

    Allow TrustServerCertificate to be yes-strict to allow Strict encryption while allowing
    self signed certs.

2.2.19:
    
    Don't retry license request

2.2.18:

    Fix problem flushing VAR(MAX) columns

2.2.17:

    Use sp_prepexec where possible

2.2.16:

    More JSON support

2.2.15:

    Initial SQL Server 2025 support

2.2.14:

    Fix problem with SQLSetConnectAttrW

2.2.13:

    Enable Active Directory auth on Windows

2.2.12:

    Try and get around Oracle issue

2.2.11:

    Fix problem reporting no server specified

2.2.10:

    Fix problem logging ip address when connection to Azure key vault

2.2.9:

    Add support for Encrypt=strict full session encryption

    Add user_domain option to allow "user@domain" type user names to be used where 
    the calling application wont allow '@' is the user name

2.2.8:

    Allow setting XA socket timeout to any value via XASTimeout argument, if not set,
    set socket timeout to XATimeout + 5 on any XA operation

2.2.7:

    Set socket timeout to XATimeout + 3 on any XA operation

2.2.6:

    Handle using UTF8 in the ini file

2.2.5:

    The SSL connection was forcing TLS 1.0, should now allow SSLv3, TLSv1, TLSv1.1 and TLSv1.2

2.2.4:

    Return XAER_RMFAIL instead of XAER_RMERR in the case a call to the server fails

2.2.3:

    Add support for Linux V6 Kernel

2.2.2:

    Allow the SSL Driver to behave like the Non SSL one by using

        EncryptDeny=yes

    Option. Add -useNOSSL flag to enable the same in bcp 

2.2.1:

    Add additional license failure debug

2.2.0:

    SQL Server 2022 Support

2.1.9:

    Add initial support for SQL Server 2022

2.1.8:

    Background connection was not carrying the NTLMv2 flag over

2.1.7:

    Fix problem with driver not noticing a reopened transaction

2.1.6:

    Fix problem with multiple statements and no MARS

2.1.5:

    Fix AIX lpar detection problem

2.1.4:

    Fix a couple of potential problems with output parameters

2.1.3:

    Add -O option to bcp to allow lookup via ODBC.
    The arg is that which is passed to SQLDriverConnect in normal use:

        bcp myTable out my.dat -O "DSN=SERVER_DSN"

2.1.2:

    More XA logging

2.1.1:

    Fix problem with Encrypted Columns

2.1.0:
    
    New release

2.0.23:

    Add DRIVER_FLAG_SUMCOUNT (0x200000) Override. This selects that changed row count
    is the summ of all the DONE(INPROC) counts. The default is to just return the last one
    The previous behavour was to return the sum of counts.

2.0.22:

    Fix memory leak when the same error is posted more than once

2.0.21:

    Not returning error message when setting catalog

2.0.20:

    Fix problem calling SQLSetConnactAttr( SQL_SQL_ATTR_TXN_ISOLATION ) before connection

2.0.19:

    Fix problem with out of order SQLFreeStmt and Streaming output parameter
    Add support for UTF8 in the data stream with servers and databases with UTF8 support

2.0.18:

    Fix datetime conversion issue

2.0.17:

    Add bcp library libesbcp.so

2.0.16

    Added support for Named Pipe connections on Windows

2.0.15

    SQLGetInfoW was not returning the correct SQL_CURSOR_COMMIT_BEHAVIOR if it had been
    changed with SQL_COPT_SS_PRESERVE_CURSORS

2.0.14

    Fix numeric conversion problem

2.0.13

    Fix Kerb problem

2.0.12

    Fix introduced problem with windows auth

2.0.11

    Added support for AAD Authentication with 

        Authentication=ActiveDirectoryPassword

2.0.10

    Handle SQLSetPos( SQL_UPDATE ) with multiple part table names

2.0.9

    Handle server UTF8 better

2.0.8

    Add support for Connection Resiliance

2.0.7

    Handle large SSPI packet with logon only SSL
    Only change packet size after login

2.0.6

    Add -G option to bcp to set the GSSFLAG
    Handle zero length XML on AIX

2.0.5

    Fix metadata problem introduced in 2.0.3 with DBD-ODBC

2.0.4

    Add Override to force TDS version to 114 (YUKON). Will disable TIME2 and new datetypes

    OVERRIDE=0x80000

2.0.3

    Fix problem calling Catalog functions across databases

2.0.2

    Fix leak on connection and longdata parameter

2.0.1

    Add fix for Streaming parameters and data at execution for in/out parameters

2.0.0

    New Version including Windows port

    Allow setting XA Timeout via DSN entry XATimeout=X

    Fix buffer overrun

1.11.4

    Add override to allow errors in a SQLFetch top be returned from the SQLFetch not 
    SQLMoreResults

    OVERRIDE=262144

    or

    OVERRIDE=0x40000

1.11.3

    Add XA Support
    Add database master to JDBC XA procedure calls

1.11.2

    Report CHAR UTF8 Collation as SQL_CHAR instead of SQL_NVARCHAR
    Add support for Linux Kernel 5

1.11.1

    Fix double length procedure parameters being passed

1.11.0

    Mew version release

1.10.13
    
    initial 2019 Support
    Fix BCP problem where the exponent on floats was having trailing zero removed

1.10.12:

    Fix memory leak

1.10.11:

    Reset mb_offset before returning data from a parameter

1.10.10:

    A SQLNumResultsCol after a SQLDescribeParam on denali was failing to describe the stmt

1.10.9:

    Avoid reported server name being reused on reconnect

1.10.8:

    Alter SSL to use TLS 1.0 to 1.2

1.10.7:

    If the precision comes from a described param, also take the scale, and if not then don't

1.10.6:

    Fix Endian wide char problem on AIX

1.10.5:

    Add support for Custom Keystore Providers

1.10.4:

    Add support for Azure Key Vault

1.10.3:

    Dont check for auto close before fetching a row.

1.10.2:

    Fix conversion from multibyte unicode out to UTF8

1.10.1:

    Better support for FFO and AF cursors

1.10.0:

    New version release

1.9.11:

    Allow setting BCP login_timeout with -g time-in-ms

1.9.10:

    Allow setting SQLSetConnectAttr( SQL_COPT_SS_TXN_ISOLATION:, SQL_ATTR_TXN_ISOLATION ) before
    connection

1.9.9:

    Fix iconv problem on bigendian platforms

1.9.8:

    Aloow two stage iconv on platforms where limited comnversions are possible

1.9.7:

    Dont report (RTM) or similar from a version string

    OVERRIDE=131072

1.9.6:

    Dynamic cursor attributes were not including bookmarks

    Handle cursor result set with more than 255 columns

    Catch error from set_autocommit

1.9.5:

    Fix endian problem in NTLM authentication

1.9.4:

    Fix problem with Encrypted Columns and cursors

1.9.3:

    Add support for SQL Server 14 "Microsoft SQL Server vNext Community Technology Preview 1 (CTP1)" 

1.9.2:

    Prevent Version 7 and MARS collision

1.9.1:

    The sense of the check for AnsiNPW in a connect string was inverted

1.9.0:

    New Release

1.8.13:

    Extend the Override DRIVER_FLAG_UINTEGERATTR (0x02000) to the W Version of SQLGetStmtAttr

1.8.12:

    Add support for Always Encrypted columns

1.8.11:

    The driver could get out of step converting to UTF8 when it tried to convert a multi byte character
    into a buffer that had insufficient space. Should be fixed now. The part converted char will be lost 
    however, so to ensure this does not happen make sure the buffer is large enough.

1.8.10:

    Since "1.4.10: Setting SQL_ROWSET_SIZE to > 1 with a forward only cursor uses a cursor fetch" 
    Also "1.7.16: Switch forward only to server cursor if columns are bound to an array"

    this can cause a slowdown (server cursors are slower), there is now a override to disable this

    OVERRIDE=65536

1.8.9:

    Fix problem with insering numeric parameters

1.8.8:

    Use builtin to describe statement with parameters (addition to 1.8.6)

1.8.7:

    Fix bcp problem with floating point to numeric conversion

1.8.6:

    Update way parameters are described after denali

1.8.5:

    Report socket failure from SQLSetConnect[Attr|Option]*( SQL_AUTOCOMMIT )

1.8.4:

    Fix segfault after socket failure in background exchange

1.8.3:

    Allow BCP to override the default appname with -A APPNAME

1.8.2:

    Initial support for CTP 2016

    bcp sets the appname sent to the server as BCPTOOL

1.8.1:

    Add override to disable setting SQL_ATTR_APP_WCHAR_TYPE, and make the flag (if set) consistent

    OVERRIDE=32768

    Add option to bcp -useNTLMv2 to enable NTLMv2 connection

1.8.0:

    New Release

1.7.31:

    More double conversion problems fixed

1.7.30:

    Avoid double conversion when getting metadata from Denali with convw_to_utf

1.7.29

    Ignore parentheses in string when lex testing for parameters

1.7.28:

    Ignore quote in string when lex testing for parameters

1.7.27:

    SQLGUILD length was being set incorrectly 

1.7.26:

    Null CHAR in TVP were not being handled correctly

1.7.25:

    Dont treat /* in a quote as a 'C' comment

1.7.24:

    Dont fake a cursor on forward only reads from a procedure

1.7.23:

    Extra logging on socket reads, handle EAGAIN from recv

1.7.22:

    Add to the 1.7.18 fix to cover more complex like matches

1.7.21:

    Prevent consumption of TDS_DONE when SQLMoreResult is called at end of result set

1.7.20:

    1.7.16 caused a problem with server 2008 if switching to an array after preparing

1.7.19:

    Fix SQLDescribeParam lex rewrite producing invalid SQL with a INSERT without the INTO

1.7.18:

    Fix SQLDescribeParam lex rewrite producing invalid SQL with a LIKE against a two part name

1.7.17:

    Fix parsing problem with subselects added by 1.7.14

1.7.16:

    Switch forward only to server cursor if columns are bound to an array

1.7.15:

    Fix difference in sequence results between MS and Easysoft driver

1.7.14:

    Fix problem with describe param parsing of sql string

1.7.13

    Add -e option to bcp and fix a format inconsistency

1.7.12

    Add support for streaming output parameters (ODBC 3.81)

    Allow setting the cypher list in BCP using -Xc "CYPHER:CYPHER"

1.7.11

    Handle LIKE with parameters

    Handle flushing row with DATETIME2 or TIMESTAMP WITH OFFSET field

1.7.10

    Fix problem authenticating with NTLMv2 to 2012

1.7.9:

    Fix BCP problem that was introduced in 1.7

1.7.8:

    Add option to blank parameters before the where from a described query. Set
    Override flag to 0x4000

    Override = 16384

    Improve caching of ini entries, should make connections quicker
    
1.7.7:

    Fail gently when describing param before where type queries

1.7.6:

    Ignore comments when parsing SQL

1.7.5:

    BCP didn't handle exponents correctly

1.7.4:

    Param processed pointer was being operated on when calling SQLMoreResults

1.7.3

    Add extra datatime format to BCP

    Truncate space filled strings in BCP

1.7.2

    Add support for query notificatation

    Fix problem returning column/param number from SQLGetDiagField

    Allow SQLSetPos( SQL_ADD ) to specify a row number outside the recordset

    Add -Xe option to BCP to allow setting entropy value for SSL

    Remove some memory leaks from BCP

    Build against OpenSSL 1.0.1h

1.7.1

    Add 

        VarMaxAsVarchar = Yes

    Option, to map a VARCHAR(MAX) to a VARCHAR(4000)

1.7.0

    Full SQLServer 2014 support

1.6.1

    Extra datetime format support (MON DD YYYY HH:MM:DD.FFFXM)

1.6.0

    New release

1.5.33

    Add support for 2014 - CTP2 (HEKATON)
    Add support for table value parameters (not data at exec at this point)
    Follow read only routing redirect

1.5.32

    BCP MONEY8 prolem not fixed in 1.5.31, now done

1.5.31

    Add BCP range checks on type MONEY

1.5.30

    Add option value 8192 to cause SQLGetStmtAttr to write to a *SQLUINTGER when
    the spec requires *SQLULEN

    BCP: fix money scale problem

1.5.29:

    Reset instance port with failover

    BCP: fix numeric scale problem

1.5.28:

    Extra timestamp format support YYYYMMDD HH:MM:SS.FFF

1.5.27:

    Extend range checks for bigints

1.5.26:

    Fix integer length limits on 64 bit platforms 

1.5.25

    Understand 2014 - CPT1 (HEKATON)

1.5.24

    Fix SQLTables not returning a list of table types when it should

1.5.23

    bcp problem with no schema fixed, and non standard datetime support added

1.5.22

    WCHAR->CHAR byte swapping fixed

1.5.21

    Avoid loosing our place in the stream when hitting a WCHAR->UTF8 buffer overrun

1.5.20

    Fix WCHAR->CHAR conversion problem on big endian platforms

1.5.19

    Avoid DAE malloc(0) on AIX

1.5.18:

    Boundary condition reading VARBINARY as CHAR fixed

1.5.17:

    Column name was being missed from parameterised updates

1.5.16:

    Add support for MultiSubnetFailover flag to connect to server group in parallel.
    Add support for ApplicationIntent keyword.
    Alter error code from SQLGetInfo for unexpected request to HYC00
    Fix problem with some iconv implementations failing to convert zero length string
    Handle zero length char using SQLPutData

1.5.15:

    DATETIME2 was being incorrectly handled as a Julian datetime.

1.5.14:

    Handle UNICODE error messages correctly
    Handle insufficient space in output buffer when converting to multi byte character sets

1.5.13:

    Allow converting via column and server LCID

        USE_LCID = Yes

1.5.12:

    Allow setting server side unicode iconv type with

        Server_UCSet = UTF-16le

1.5.11:

    Change default unicode charset to UTF-16le 

1.5.10:

    fix problem describing parameters in a query containing a <> operator

1.5.9:

    a result set describe before a execute would fail for SQL Server 2012

1.5.8:

    Endian problem converting from network order to target order for *MAX() type
    on big endian platforms

1.5.7:

    If a procedure was not described, then named parameters were being ignored

1.5.6:

    Fix problem with return from parameters with output parameters

1.5.5:

    Fix endian problem on sparc platforms with XML data type
    Allow kerberos authentication in BCP. Enabled with -K flag, optionally 
    set the SPN with -M.
    
        bcp table out a.txt -S "192.168.0.26\SQLSRV2008" 
                -K -M MSSQLSvc/t28.easysoftloc.support:SQLSRV2008

1.5.4:

    New public release

1.5.3:
    
    Fix buffer overflow in tdshelper
    Fix problem with wide parameters when convw_to_utf is set
    Fix problems with OS X build
    Fix problem when passing UTF-8 parameters to NCHAR field using iconv conversion 
    Add problem that prevented data at execute and output parameters to be used together
    Fix BCP NCHAR insert problem
    Allow binding a SQL_SS_UDT type
    Fix issue with inserting a full 38.38 numeric

1.5.2:

    When SQLFreeStmt called before getting to end of result data possible
    transaction changes were not being seen. Process to EOD on close

    Some negative MONEYn value could be converted to characters incorrectly

    Initial release of BCP tool

1.5.1:

    Record col number in error record

1.5.0:

    New minor public release

1.4.43:

    Handle != as a synonym of <>
    Handle a string such as 20060801 as a valid date when passed as a parameter

1.4.42:

    Multiple statements were not returning more than the first error condition

1.4.41:

    Process 'C' comments to avoid detecting parameter markers within the comment block

1.4.40:

    Optionally pass 'C' style /* comments */ in the SQL to the server

        ALLOW_C_COMMENT = Yes

1.4.39:

    Add support for Linux 3.x.x kernel
    Add support for binding SQL_BINARY parameters as SQL_CHAR (for example TIMESTAMP types)

1.4.38:

    Avoid redundant end transactions

1.4.37:

    Allow falling over via Kerbrous, using (if needed)

        FailoverServerSPN = MSSQLSvc/FAILOVER.REALM.ORG:1433

1.4.36:

    Some of the attributes were SQLINTEGER, should be SQLULEN

1.4.35:

    Handle part read with initial packet

1.4.34:

    Include SQL_BINARY in DisguiseWide translation from 16 to 8 bit types

1.4.33:

    Alter OCTET_LENGTH when desgise_wide is in operation

1.4.32:

    Handle RPC calls with return parameter and output parameters

1.4.31:

    Port to OSX, and handle cases where sizeof( SQLWCHAR ) != 2

    Alter how EXEC proc is described

1.4.30:

    Avoid fault when output parameter used with a literal value

1.4.29:

    Add support for DENALI and TDSv116 (SQL Server 2011)

1.4.28:

    Possible array bound exception fixed
    Fix big endian code rewrite problem

1.4.27:

    Catch malloc(0) on AIX returns NULL

1.4.26:

    Include extra info in error strings

        OVERRIDE=32

1.4.25:

    Remove hard coded client process id value

1.4.24:

    Dont attempt to describe parameters via the server after a execute has
    been completed.

    Check SQL_INTEGER parameter validity when converting from SQL_CHAR

    Catch error token after execute

    Allow setting the display size of datetime types using

    STRFSIZE=34

    This is to match the non standard formats that can be set using STRFTIME

1.4.23:

    Add option to use strftime(3) to convert timestamp types to string

        STRFTIME=%d %h %Y %T

    produces

        11 May 2011 15:26:19

1.4.22:

    11042271: Bookmark fetch had been disabled at some point

1.4.21:

    11041772: 22002 not being returned when required

1.4.20:

    11032391: Cursor fetch with TEXT types could leave socket stream out of sync

1.4.19:

    Allow setting server name in connection specificaly for use with Azure

        ServerName = xyz12345yzx.database.windows.net

1.4.18:

    Return SQL_ERROR when error occurs in multiple statement

1.4.17:

    The EOF detection was failing to mark the statment as over (extension of 
    1.4.15 fix)

1.4.16:

    A "SSL requested but not supported by server" was not terminating the connection
    process, leading to a read failure before reporting the problem

1.4.15:

    The statement cleaned flag was being left set at end of packet on error
    so mutiple active statement detection was being triggered

1.4.14:

    Resolve kerberous deligation problem.

1.4.13:

    Catch SET syntax and dont try and describe the result set

1.4.12:

    Allow the use of GSS_C_NT_HOSTBASED_SERVICE as target principal name type. 

        GSSHOST = 1

    The default is to use GSS_C_NT_USER_NAME

    Fix problem with overflow and converting SQL_GUID parameters

1.4.11:

    Handle Kerberos GSS_C_MUTUAL_FLAG correctly.

1.4.10:

    Setting SQL_ROWSET_SIZE to > 1 with a forward only cursor uses a cursor fetch

1.4.9:

    Allow setting Kerberos req_flag to selected decimal value

        GSSFLAG=1

    will set GSS_C_DELEG_FLAG for example, the default if its not set will be
    GSS_C_REPLAY_FLAG set. Consult gssapi.h for bit values.

1.4.8: 

    A empty string in the user and password will still authenticate against Kerberos

1.4.7:

    Allow short time2 formats HH:MM in char bound parameters

1.4.6:

    Override Kerberos connection if username and password supplied (either in ini or 
    connection API).

1.4.5:

    Further changes to make play nicer with non unixODBC DM

1.4.4:

    Field some non standard info types

1.4.3:

    @@identity was breaking the parameter detection code

1.4.2:

    Initial support for SQLServer 2011 (DENALI) CTP1

1.4.1:

    Add ini flags to set float and double precision when converting to strings. Default is 6

        DPREC = 8
        FPREC = 4

    The string length from SQLGetColAttribute was twice what it should be.

1.4.0:

    New major release push to main download incorporate all fixes

1.3.27:

    10105998: The additional matching for describe param and sub queries was case senstitive

1.3.26:

    10105998: Added support for skipping sub queries when scanning before describing parameters

1.3.25:

    Removed double string free

1.3.24:

    Allow setting the ConvWToUTF flag before connection by setting

    [ODBC]
    SQLServerUTF = Yes

1.3.23:

    Add support for named parameters

1.3.22: 

    A problem with the 64UL builds and NUMERICs has been found and fixed
    10103635: Change the default mapping of SQL_TINYINT to the unsigned tiny, not the signed

1.3.21:

    10102180: multiple results sets were being missed from procedures
    if not fetched until SQL_NO_DATA before SQLMoreResults was called

1.3.20:

    Allow getting statement attributes via SQLGetConnectOption
    10096854: Make SQLCloseCursor send a flush in the same way as SQLFreeStmt

1.3.19:

    Avoid segfault after server disconnection

1.3.18:

    Statements were being incorrectly marked as prepared
    Allow binding using the SQL_SS_VARIANT parameter type
    Add support for Solaris 5.11

1.3.17:

    100082112: The switch from NCHAR(n) to NTEXT/NVARCHAR(max) was not 
    happening at the correct size.

1.3.16:

    Avoid a compiler optimisation leaving a variable uninitilized

1.3.15:

    Stop the precision of numeric input parameters from affecting the resultant 
    output precision.

1.3.14:

    Allow setting statement attributes via SQLSetConnectOption(W)

1.3.13:

    Check parameter value when inserting integer value to prevent overflow

1.3.12:

    Handing inserting XML parameter values

1.3.11:

    Prevent the driver from trying to allocate a huge memory buffer if its 
    passed into the driver via SQLBindCol buffer length.

1.3.10:

    10071272: When using SQLBulkOperations and SQLBindCol to insert a char/varchar value
    the driver was inserting as a CHAR(x) where X was the buffer_length value
    passed to SQLBindCol. This caused the text to be extended with spaces to the full 
    length. The MS Driver seems to use VARCHAR(x) on the insert so the string is terminated.
    the type has been changed from CHAR to VARCHAR to mimic the MS driver. There is no way to specify 
    SQL_VARCHAR with SQLBindCol as there is no SQL_C_VARCHAR type.

1.3.9:

    10060554: Datetime with scale of 6 was being incorrectly converted
    10070213: Numeric to string conversion fault corrected

1.3.8:

    Invalid precision size could be sent as a parameter

1.3.7:

    Allow setting packet size with 

        PacketSize = value

    where value < 64k

    Small speedups with MARS

    Change double to char conversion to handle large exponents

    Add support for Kerberos authentication, the ServerSPN is set in the ini file, for example

        ServerSPN =  MSSQLSvc/MACHINE.REALM.ORG:1433

    By default the driver will use the library 'libgssapi_krb5.so' however a alternative can be specified, for example

        GSSLIB = /opt/extension/lib/libgssapi.so

    Now ship with unixODBC 2.3.0

1.3.6:

    10030305: hostname lookup buffer was undersized

1.3.5:

    10030201: limit char precision size when using older TDS versions

1.3.4:

    XML type was not being reported as SQL_SS_XML

1.3.3:

    Allow setting socket recieve buffer size with 

        RcvBuffer = value

    Allow setting socket keepalive with

        SoKeepalive = Yes

1.3.2:

    10020368: Optimise numeric conversions

1.3.1:

    10020494: Allow C type comments in SQL

1.3.0:

    New Release

1.2.17:

    10020169: Allow parameters to come back out of order

1.2.16:

    10010558: Table name in [] quoting was not being processed correctly

1.2.15:

    10010426: Dont sign extend whrn converting from 8 to 16 bit strings

1.2.14:

    10010107: Fix seg fault with unbinding column as first action

1.2.13:

    09120234: Use local strlen to avoid multibyte problems

1.2.12:

    09120234: Converted nchar string length could be incorrectly applied

1.2.11:

    09120011: Incorrect length of char parameter was being derived
    09120185: Problem fixed combining connection timeout and MARS

1.2.10:

    09120045: Alter SQLDescribeCol to match thw MS spec for column size

1.2.9:

    09120011: Avoid attempting to allocate 0 bytes

1.2.8:

    09090598: USE statements were not being described as expected

1.2.7:

    09090247: Calling SQLDescribeParam before SQLDescribeCol 
    lost column information

1.2.6:

    09090259: Defer preparing a statement if it has parameters

1.2.5:

    09090054: Read failure when using MARS was not being passed back to app

1.2.4:

    09080483: Handle peer shutting down on recv

1.2.3:

    Fix memory leak
    Build prepared for FGL customers
    Allow setting the server collation via:

        LCID = LocaleId

    for example

        LCID = 0x20804

    To set to Chinese_PRC_Stroke

1.2.2:

    09080178: Remove C++ comments from sqlncli.h
    Fix problem introduced in 1.2.1 for numeric types
    Add support for SQL_CO_FFO (fast forward cursor)
    iconv when applied to data at exec was using the wrong conversion handle
    Add extra _SS_ diag values to SQLGetDiagField

1.2.1:

    09080075: Incorrect error mapping fixed
    09080072: Trim trailing zeros
    09080048: Allow setting SQL_SOPT_SS_CURSOR_OPTIONS
    09080094: Use 2008 time parameters if connecting to a 2008 server
    09080085: Fix problem with freeing uninitilised pointer
    09080070: Handle socket interrupts and sighandler calling SQLCancel

1.2.0:

    Public release

1.1.30:

    09070257: SQLServer 2008 UDT types wehere being misread

    09070258: Problem with unconvertable character stream and iconv resolved

1.1.29:

    After a deadlock, any attempt to commit or rollback was failing because 
    the transaction was not being restarted, so it was falling back
    into autocommit. Fixed now.

1.1.28:

    09070004: Fix problem when describing parameters on a table without 
    select permission.

1.1.27:

    09060465: SQLDESC_FIXED_PREC_SCALE was being incorrectly set for a 
    SQL_NUMERIC/SQL_DECIMAL

1.1.26:

    09050148: getting data from a longvarchar was not setting the return 
    status correctly

1.1.25:

	1.1.24 fix for XML had broken normal XML processing in scrolable cursors

1.1.24:

	Inserting WLONGVARCHAR via SQLPutData inserting wrong length, now fixed

	Converting from char to wchar and the otehr way round via SQLPutData
	was getting the length wrong. Filed

	09040302: XML types were not being processed correctly

1.1.23:

	09040161: Incorrect range check converting a numeric to a unsigned tinyint

1.1.22:

	09030362: LONGVARCHAR data at exec was ignoring the supplied length field

1.1.21:

	Fix problem with the handling of XML types

1.1.20:

	Add option to force the driver to treat the server as Shiloh (SQL Server 2000)

		ForceShiloh = Yes

	in the odbc.ini DSN entry

	Allow SQL_CHAR parameters to be parsed as SQLGUID types

1.1.19:

	09030181: Fix problem with XML fields

1.1.18:

	Disguise wide types in SQLGetInfo is flag is set

1.1.17:

	Expand max column size to 8000
	iconv translated scrollable char were not being converted correctly

1.1.16:

	09030018: SQLRowCount was returning the wrong value for cursors

1.1.15:

	09020116: Remove problem when badly alligned data is used with 
	SQL_BIGINT

1.1.14:

	Fix SQLColAttribute problem introduces in 1.1.12

1.1.13:

	Add extra logging when decoding timestamp parameters

1.1.12:

	Alter the 32/64 bit size of some values as per 
	http://msdn.microsoft.com/en-us/library/ms716287(VS.85).aspx

1.1.11:

	09010165: Fix problem with sparse row decoding

1.1.10:

	The length of a SQL_LONGVARBINARY was double the size when described

1.1.9:

	Trying to write to a read only log file caused a deadlock

1.1.8:

	08090078: Parameters queries with aggregate functions were failing to
	be described correctly

	The protype created for varbinary and varchar max types was incorrect 
	(perl DBD::ODBC problem)

1.1.7:

	There was a problem changing catalog with quoted id off

	the conv_to_utf flag was not being set correctly

	Allow setting a local character set and use this when converting 
	to/from WCHAR types. For example:

		Client_CSet		= EUC-JP

	08090057: Problems fixed updating via SQLSetPos with multi part table name

1.1.6:

	08080315: TDS_COLINFO was decoding renamed keys incorrectly

1.1.5:

	A problen with SQLServer 7 had been reintroduced, caused a failure of the
	Perl DBD::ODBC test package

1.1.4:

	Checked out as ready for use with SQLServer 2008 RC0

1.1.3:

	08041511: Fix sign extension problem that was causing a problem under Pike

1.1.2:

	Alter internal function naming for MD4 functions to avoid conflict

1.1.1:

	Add option to handle Unicode as UTF8, its wrong, but given there 
	are apps out there that expect it, there is no alternative.

		ConvWToUTF = Yes

1.1.0:

	New public release including all changes and support for 2008 up to the
	November CTP

1.0.58

	Add support for the January CTP of SQL Server 2008

1.0.57

	Add option to use NTLMv2 authentication when using trusted authentication.
	Enabled in ini file and connection string with

		NTLMv2 = Yes

1.0.56

	Further TABLENAME packet fix

1.0.55

	Fix problem using NTLM auth with SQL Server 2008

	Fix decoding problems with TABLENAME packet and SQLServer 8 and before

1.0.54

	Fix problem when connecting to server with enforced FIPS 140-2

1.0.53:

	Fix problem with decoding of TABLENAME packet

1.0.52:

	Allow C Types of TIME and DATE

1.0.51:

	Add DisguideGuid option to hide GUID types from HSODBC

1.0.50:

	08020223: Fix parsing problem in SQLDescribeParam

1.0.49:

	MARS + SSL now can both be used together

1.0.48:

	Add missing table name parameter to sp_cursor RPC calls

	Fix problem with SQLBulkOperations and MARS

1.0.47:

	08010480: Using SSL and database mirroring together failed on failover

1.0.46:

	SQLSetPos was not returning SQL_SUCCESS_WITH_INFO if a row error happened.

1.0.45:

	Its been found that PYODBC uses SQL_DATA_AT_EXECUTION but resets the
	parameter between calling SQLExecute and SQLParamData. In this case use
	the value that was in place at the time of SQLExecute

	Release IRN and IPD descriptors when SQLFreeStmt( SQL_CLOSE ) is called

	SQLGetData(SQL_BIGINT) was not returning the correct value in all cases

	08010411: SQLSetPos could fail as the precision from the SQLBindCol was
	being replaced with the data length

	Allow setting the SQL_COPT_SS_PRESERVE_CURSORS attribute via the ini file
	
		PreserveCursor = Yes

1.0.44:

	08010218: Getting column count via SQLColAttributes was not
	stripping ROWSET column from cursor results.

1.0.43

	08010152: Prevent zero length parameters to rpc CALLS

	07110432: Flag parameter markers without leading space or comma

1.0.42

	DSN less connections were ignoring instance names

1.0.41

	Added support for SQL_SOPT_SS_DEFER_PREPARE

	Change the way that output parameters are marshaled

	Allow data at exec without a SQL_LEN_DATA_AT_EXEC for 
	TEXT, IMAGE, and NTEXT

1.0.40

	07120151: Mapping for ODBC 2 applications for SQLColAttributes and
	datetime types, was not as per the spec, changed now, to map from
	SQL_DATETIME to SQL_TIMESTAMP, SQL_DATE or SQL_TIME

1.0.39

	Output parameters were being missed with exec proc and 
	SQLPrepare + SQLExecute and the fixup of parameter types was incorrect

1.0.38

	07120110: Parsing of RPC args was failing if the string contained a ","

1.0.37

	07110432: Don't attempt to describe EXEC if not all parameters are bound

1.0.36

	Initial support for November CTP of 2008

	The sense of the SQL_PRESERVE_CURSOR check was inverted

1.0.35

	Handle multiple packet messages using SSL handshake

1.0.34

	07110147: The internal process to extract parameters for a
	SQLDescribeParam was parsing a "where termidappliedfor = ?" as 
	"where termidappliedf OR = ?

1.0.33

	07110021: Autocommit state changes were not being handled correctly when
	set before connect for 2005 and later

1.0.32

	07110012: Further mimicry of the WVARCHAR with precision 0
	handling from MS Native client and > 2005 servers

	07110035: DYNAMIC cursors with Absolute fetches of 0, were 
	starting from the last row, not the first.

1.0.31

	Alter how timeout is handled if socket > FD_SETSIZE

1.0.30

	The logintimeout was being interpreted as msec not sec

	Fix incorrect column name in SQLStatistics result set

	Inserted strings from ASTERISK was failing to find a string length

	NVARCHAR transfer was broken in 1.0.28 for 7 and 2000, now fixed

1.0.29

	The concurrency setting could miss being set after a query was
	executed.

	Check if a query is finished if there are no rows.

	If ODBC3 is in use, return SQL_NO_DATA_FOUND from a searched delete
	or update

1.0.28

	NCHAR/NVARCHAR were getting the wrong length when described

	Change the message prefix back to [SQL Server from [ODBC-SQL Server
	the change was breaking Perl DBD::ODBC

	07100557: Cursor/Conncurrency changes was issuing extra warning records

	07100588: Don't switch cursor type when executing a a delete query

1.0.27

	Fix incorrect KATMA version checking that was failing for 
	parameterised inserts

	Allow logging of input text when ConvToUtf is in use

	07100450: The transmission of decimal values used the wrong scale
	information

1.0.26

	Add initial support for SQLServer 2008 (Katmai)

	Add option to ini and connection string to set the Cypher list
	used for encrypted connections. For example:

		Cypher = MD4-SHA

	for more details of the format of the string, see CYPHERS(1) in the
	openssl documentation

	07100222: The flushing of non read var*(max) data could cause the 
	driver to loop forever

	07100145: Allow mapping of UTF8 <-> SQLWCHAR when enabled in odbc.ini 
	with

		ConvToUtf = Yes

1.0.25

	The processing of suppled arguments (in the query text) for stored 
	procedures could not transfer the values into the rpc_param area

	Describing procedure arguments of type bit was return a scale of -7

1.0.24

	07090163: Fix problem returning WCHAR from static result sets

1.0.23

	Add LimitLong ini option to restrict ithe length returned when 
	describing image, text, ntext and max types

	LimitLong = number

	Where number is the max length in bytes used when describing the
	column

1.0.22

	Fix buffer overrun in logging (only happens if logging is on)
	Add option to log to a file per process, set by either

	Logging = process

	or

	Logging = 63

1.0.21

	DSNless connections were broken by 1.0.12. Now fixed

1.0.20

	07071054: Fix problem with processing of INFO messages

1.0.19:

	Added non UNICODE version of driver for use with old and
	non conformant driver managers. This driver as a _a suffix
	to the lib name. Should normally not be required.

1.0.18:

	07070780: Add extra error status mapping

1.0.17:

	Alter some of the error states from SQLGetData

	Remove redundant transction mode change

	Fix problem with MARS and packet flushing

	Not having a DisguiseLong entry in the ini would cause the
	DisguiseWide flag to be reset

	Add support for SQL_COPT_SS_INTEGRATED_SECURITY via SQLSetConnectAttr
	but it needs a domain setting in the ini to work, as unlike Windows
	we are not a member of a domain

	Added tdshelper.sh script to avoid library path problems some customers
	were having

1.0.16:

    07070495: Add support for the connect attr SQL_PRESERVE_CURSOR
    to allow server side cursors to remain open after a commit or rollback

1.0.15

	07070770: Fix a problem with describe parameter when used on query 
	containing "val >= ?" type constructs.

	07070710: NCHAR precision was not being passed on correctly. And
	when nchar parameters were passed with a SQL_NTS length, the length
	was not correctly extracted.

	07070787: call to exec fixup was creating invalid SQL.

	Fixed conditions where a timeout could cause a seg fault in the 
	connection process when trusted authentication was being used

1.0.14

	Alter the way fetches from dynamic cursors are done to allow the 
	absolute fetch type

1.0.13

	Allow setting the connection timeout with a milisecond precision by the
	odbc.ini entry

	ConnectionTimeout = 75

	This example will set the timeout to be 75 miliseconds. If the normal 
	connection timeout is set via SQLSetConnectAttr it will override the 
	ini setting

1.0.12

	Add support for IPv6. IPv6 flag added to ini file, so (for example)

		Server          = fec0::3\SQLEXPRESS
		IPv6			= yes

	To specify a port as part of the string, use an asterix to seperate

		Server          = fec0::3*1433
		IPv6			= yes

	IPv6 MULTICAST is not supported for instance discovery, so the tdshelper
	probe function is not available for IPv6

	Add extra support for DTC type transaction control with SQL Server 2005

	Allow setting the logon timeout with a milisecond precision by the
	odbc.ini entry

	LogonTimeout = 500

	This example will set the timeout to be half a second. If the normal login
	timeout is set via SQLSetConnectAttr it will override the ini setting

1.0.11

	07060379: Calls using EXEC were not being processed as RPC calls. This
	was causing PHP problems.

1.0.10

	Add version information to log output

	07060304: The driver was incorrectly reporting the SQL_DBMS_NAME string
	as being 22 characters long.

1.0.9

	07050035: Extension to this, it was failing if a procedure with 
	no args was called

	Long types in scrollable cursors weree not being skipped as they should

	07040649: The SQLGetData reread process for scrollable cursors and large 
	objects was bot working as it should. 

	Scrollable cursors were being prepared for a describe as a forward only cursor

	Cursor name setting was failing for pre 2005 servers

1.0.8

	The SQL and C type passed to SQLBindParameter wasn't being checked
	until the execute. Check the types now at the call to SQLBindParameter.

	07050035: SQLNumColumns on a stored procedure failed to return the 
	column count.  This is exactly the same behaviour as the MS driver, 
	however we have added a extension that will allow this to succeed in 
	most cases

1.0.7

	07050035: The RPC parameter processing was not copying the ',' into the 
	parameter string

1.0.6

	07040424: Alter the test SQL at the end of the full install, sys.tables
	has permission issues prior to 2005

	07040581: Describe param on a stored procedure was encountering an
	unexpected type

1.0.5

	The internal parameter number calculation could generate a negative
	parameter

1.0.4

	07040231: The default type mapping for SQL_NUMERIC was incorrect.

1.0.3

	07030634: Flag statement finished on end of data read.

1.0.2

	07030634: Relax checking on active statement to mimic MS driver 
	(but avoid bleeding of data between statements unlike MS).

	Add DisguiseLong option to work around Oracle HS restriction.

1.0.1

	Allow setting of DOMAIN to use for windows authentication without
	including in user name through the ini values

		Trusted_Connection = [Yes|No]
		Trusted_Domain = DOMAIN_NAME

	07030578: Add DisguiseWide option to allow NVARCHAR/NCHAR to be described as 
	VARCHAR/CHAR to overcome the restriction in Oracle HS.

	07030429: Fix buffer overrun on big-endian platforms.

1.0.0

	Full release

0.1.9

	Match MS handling of mirrored servers, and login timeout
	processing

0.1.8

	Allow extra values in extended procedure calls

	Force the closing of all statements on commit or rollback on SQLEndTran 
	(0.1.3 only did this on SQLTransact)

0.1.7

	Add missing comma in RPC parsed code

0.1.6

	Change output parameter parsing to allow return from function 
	parameters with EXEC type execution

	Fix lex truncation problem

	Add setting VarMaxAsLong to make the driver return a varchar(max) as
	SQL_LONGVARCHAR instead of the default SQL_VARCHAR with a zero length

0.1.5

	Clear column count after SQLMoreResults IF its not a prepared stmt

	Break SQLFetch on error, leave error in stream for following SQLMoreResults

	Allow the Logging flag to be Yes/No/On/Off or a bitmask in 
	decimal (non zero prefix), hex (0x prefix) or octal (0 prefix). 
	Yes/On enables full logging

0.1.4

	Remove conflict between SSL login mode and timeouts

	Add support for SQL Server Failover (database mirroring) via the
	ini entry failover_partner

	Fix problem with stored procedure processing (sql lex parsing)

0.1.3

	Force the closing of all statements on commit or rollback

	RPC calls could lose return results

	Fix problem with SSL login only and background queries

	Allow setting the port as part of the server string as "server:port", 
	  for example 
	  
	  Server = dbserver:1433

	Allow the use of multiple server entries to the server string to allow 
	  connection time failover, for example 

	  Server = dbserver1:1433,dbserver2:1433,dbserver3:2644

	Allow client side load balancing, setting 

	  ClientLB = yes

	and providing a list of servers, the client will pick a server at random to use

	Fix problem that cuased output parameters to be offset

	Remove trailing decimal point from numeric fields

0.1.2

	Fix problem inserting into NTEXT

	Fix problem working with SQL Server 7

0.1.1

	Avoid sending short packets with versions of SQLServer prior to 9

01-01-2007:

	Public release of driver. Beta version 0.1.0
