А вот ещё ошибка с падением. Возникает при ОбновитьСтроки(). Эту ошибку, кстати, я славливал неоднократно, с таким же примерно стеком.
Стек такой:
BKEND! 200014f2()
CProviderRS::InjectParamValues(CString & {"select top 23 ...", CV7ODBCDataRow * 0x0510ead8) line 574 + 30 bytes
CProviderRS::ExecuteQuery(CV7ODBCDataRow * 0x0510ead8, int 23) line 633
CV7ODBCProvider::QueryRows(CDataRow * 0x0510ead8, int 23, int 23) line 738 + 22 bytes
CCursorGridCtrl::Reset(CDataRow * 0x0510ead8) line 3778
CCursorGridCtrl::ActivateRow(CDataRow * 0x0510ead8) line 3764
CV7CursorGridCtrl::SetCurrentRow(const CValue & {...}) line 409
CV7TableField::SetPropCurrentRow(const CValue & {...}) line 1161
CMyContextBase::SetPropVal(int 21, const CValue & {...}) line 269
CComponentClass::SetPropVal(int 22, const CValue & {...}) line 1356 + 22 bytes
CComponentClass::SetPropVal(int 43, const CValue & {...}) line 1356 + 22 bytes
BLANG! 2100907d()
Ошибка судя по всему в CProviderRS::InjectParamValues(), в строке
pRowFrom->SQLFormatValue(*pRowFrom->m_values[pParam->m_nFieldIndex], strTmp);
Здесь pRowFrom->m_values - это CPtrArray, размер его 8, и pParam->m_nFieldIndex - равно 8. Получаем выход за границу массива, и падение. Почему так получается, я понять не могу. Может, кого-нибудь (скажем trad'а или DmitrO
) это наведёт на какие-нибудь мысли?