in reply to DBD::ODBC won't read past a certain record

When in doubt - check the data.

I very much doubt that DBI or DBD::ODBC are playing tricks. Instead the most likely issue is that the TransactionID sequence isn't continuous, or has duplicates. On a Unix box I'd do a quick fetch of all the transactionID values into an OS file and then run wc on it to get the number of lines - there are probably similar tools on Windows.

You can also check for duplicates with

select TransactionID, count(*) from Transaction group by TransactionID having count(*) > 1
This will list all the TransactionID values that exist more than once.

Michael