I quickly found that you need to abort that loop if a record is NOT delete, or you will get an infanet loop. bool answersDeleted = true;
DCAnswerBO dcAnswer = new DCAnswerBO();
dcAnswer.FillByQuestionID(vDCQuestID,"");
if (dcAnswer.MoveFirst())
do
{
if (dcAnswer.DeleteCurrentRow() == 0)
answersDeleted = false;
//} while (dcAnswer.Count > 0);
} while (dcAnswer.Count > 0 && answersDeleted);