Why do tests 1, 2 and 6 of 20Sqlserver test in DBD::ODBC fail when using the ODBC-ODBC Bridge?

The failure output for tests 1, 2 and 6 of the 20Sqlserver test is:

t/20SqlServer....NOK 1Please upgrade your ODBC drivers to the latest
SQL Server drivers available.
t/20SqlServer....FAILED tests 1-2, 6
Failed 3/25 tests, 88.00% okay

If you run the test again with TEST_VERBOSE=1, the relevant failures are:

t/20SqlServer....1..25
Inserting: 0, string length 13
Inserting: 1, 2001-01-01 01:01:01.110 string length 12
Inserting: 2, 2002-02-02 02:02:02.123 string length 114
Inserting: 3, 2003-03-03 03:03:03.333 string length 251
Inserting: 4, 2004-04-04 04:04:04.443 string length 282
Inserting: 5, 2005-05-05 05:05:05.557 string length 131
Retrieving: 0, string length 13
Retrieving: 1, 2001-01-01 01:01:00.000 string length 12 !time
Retrieving: 2, 2002-02-02 02:02:02.123 string length 114
Retrieving: 3, 2003-03-03 03:03:03.333 string length 251
Retrieving: 4, 2004-04-04 04:04:04.443 string length 282
Retrieving: 5, 2005-05-05 05:05:05.557 string length 131
not ok 1
f ne foo
Please upgrade your ODBC drivers to the latest SQL Server drivers available.
not ok 2
1
2
3
ok 3
CREATE PROCEDURE PERL_DBD_PROC1 (@i int, @result int OUTPUT)
AS BEGIN     SET @result = @i+1;END
ok 4
ok 5
2002-07-12 05:09:00.000
not ok 6

Test 1 fails because the DATETIME it inserts is not retrieved correctly (the seconds and milliseconds are zeroed). Test 2 fails because the string it inserts, "foo", is retrieved as "f". The cause of this problem is a bug in the Microsoft SQL Server ODBC driver. If you open ODBC Data Source Administrator on your ODBC-ODBC Bridge server machine and click on Drivers, the version of your SQL Server ODBC driver is likely to be 2000.80.194.00. (If it isn't, let us know.)

The solution is to upgrade your SQL Server ODBC driver. The version in MDAC 2.7+ appears to work OK. Version 2000.81.9030.04 of the SQL Server ODBC driver is also OK.