Problem with MSDASQL passing large numerics to SQL Server from Progress database
Posted on 2006-07-12
I've built DTS packages to synchronize tables from a Progress database to SQL Server. One of the packages bombs with the error:
"Insert error, column 9 (tr_begin_qoh, DBTYPE_NUMERIC), status 12: Invalid status for bound data. Unspecified error."
I've narrowed down the offending record and one of the fields has a value of "-14513785.863839400". I know this because MSQuery has no problem retrieving this data via the ODBC connection to the Progress database.
Using SQL Query Analyzer to look at the data (via a linked server) I get this:
Server: Msg 7341, Level 16, State 2, Line 1
Could not get the current row value of column '[MSDASQL].tr_begin_qoh' from the OLE DB provider 'MSDASQL'. Conversion failed because the data value overflowed the data type used by the provider.
[OLE/DB provider returned message: Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.]
OLE DB error trace [OLE/DB Provider 'MSDASQL' IRowset::GetData returned 0x80040e21: Data status returned from the provider: [COLUMN_NAME=tr_begin_qoh STATUS=DBSTATUS_E_DATAOVERFLOW]].
Any way to get MSDASQL to pass these values?