Может кто-нибудь объяснить это странное поведение?
CString A, B;
CRecordset rs.Open( forwardOnly, "select A,B from table", readOnly);
// does not work:
rs.GetFieldValue( "A", A); // ok
rs.GetFieldValue( "B", B); // throws; m_nRetCode is set to -1;
//trace says "dbcore.cpp(174) : AppMsg - invalid descriptor index."
// works:
rs.GetFieldValue( (short) 0, A); // ok
rs.GetFieldValue( (short) 1, B); // ok
// does´nt work either !?
rs.GetFieldValue( rs.GetFieldIndexByName( "A"), A); // ok
rs.GetFieldValue( rs.GetFieldIndexByName( "B"), B); // asserts !?
// throws a different exception:
rs.GetFieldValue( "A", A); // ok
rs.GetFieldValue( "A", A); // throws, but m_nRetCode is 100 now and the trace is saying "data allready fetched" !?
// strange...
rs.GetFieldValue( (short) 0, A); // ok
rs.GetFieldValue( "B", B); // this works
rs.GetFieldValue( "A", A); // this asserts ???
Я обыскал полученную подсказку, сказав, forwardOnly - неправильный курсор, но использование снимка ничего не меняет. Кто-нибудь может объяснить?
Есть ли способ это исправить?