identities
"_identity_method" is set to @@identity, as SCOPE_IDENTITY() doesn't work with DBD::ADO. See
"IMPLEMENTATION NOTES" in DBIx::Class::Storage::DBI::MSSQL for caveats regarding this.
truncationbug
There is a bug with MSSQL ADO providers where data gets truncated based on the size of the bind sizes in
the first prepare call:
<https://rt.cpan.org/Ticket/Display.html?id=52048>
The "ado_size" workaround is used (see "ADO providers" in DBD::ADO) with the approximate maximum size of
the data_type of the bound column, or 8000 (maximum VARCHAR size) if the data_type is not available.
Please report problems with this driver and send patches.
LongReadLen
"LongReadLen" is set to "LongReadLen * 2 + 1" on connection as it is necessary for some LOB types. Be
aware of this if you localize this value on the $dbh directly.
binarydata
Due perhaps to the ado_size workaround we use, and/or other reasons, binary data such as "varbinary"
column data comes back padded with trailing "NULL" chars. The Cursor class for this driver
(DBIx::Class::Storage::DBI::ADO::Microsoft_SQL_Server::Cursor) removes them, of course if your binary
data is actually "NULL" padded that may be an issue to keep in mind when using this driver.
uniqueidentifiercolumns
uniqueidentifier columns come back from ADO wrapped in braces and must be submitted to the MSSQL ADO
driver wrapped in braces. We take care of this transparently in this driver and the associated Cursor
class (DBIx::Class::Storage::DBI::ADO::Microsoft_SQL_Server::Cursor) so that you don't have to use braces
in most cases (except in literal SQL, in those cases you will have to add the braces yourself.)
fractionalseconds
Fractional seconds with DBIx::Class::InflateColumn::DateTime are not currently supported, datetimes are
truncated at the second.