improvements for MSSQL driver via DBD::ADO
Various improvements and bug fixes:
- Fix transaction support by changing CursorLocation on connection to
adUseClient.
- Support for VARCHAR(MAX)/VARBINARY(MAX)/NVARCHAR(MAX), add a catch
for size => 'max' in _dbi_attrs_for_bind to set the ado_size workaround
to LongReadLen, add a mapping to the data_type for literal
'varchar(max)' entries as well. Tests for these types have been added
as well.
- Set $dbh->{LongReadLen} * 2 + 1 on connection, necessary for some LOB
types.
- Remove trailing null padding from BINARY/VARBINARY/IMAGE data via a
custom Cursor class.
- uniqueidentifier brace removal from data returned from ADO via Cursor
class and re-addition via _dbi_attrs_for_bind and insert_bulk
override for data sent to ADO.
- Add type mappings for some missing MSSQL types and the types from other
databases for cross-deployment.
- Full set of tests, stolen from the MS Access tests, for savepoints,
LOB support and GUIDs.
The trailing null padding and GUID brace removal is in utilities in
::DBI::ADO::CursorUtils which both ::DBI::ADO::MS_Jet (Access) and this
driver use, in their respective Cursor classes and in the drivers
themselves in select_single.