MLM>Всем привет!
MLM>Сразу к делу. MLM>CBlockInfo recBlock(pDB); // CBlockInfo — класс, сгенерированный мастером для доступа к таблице BlockInfo
MLM>Открываю Access'ую БД(перекрестный запросик):
MLM>SQL = MLM> "SELECT * " MLM> "FROM BlockInfo " MLM> "WHERE BlockID " MLM> "IN (SELECT BlockInfo.BlockID " MLM> "FROM ((KursInfo LEFT JOIN RazdelInfo ON KursInfo.KursID = RazdelInfo.KursID) LEFT JOIN TemaInfo ON RazdelInfo.RazdelID = TemaInfo.RazdelID) LEFT JOIN (BlockInfo LEFT JOIN StepInfo ON BlockInfo.BlockID = StepInfo.BlockID) ON TemaInfo.TemaID = BlockInfo.TemaID )"
MLM> recBlock.Open(CRecordset::dynaset,SQL);
MLM>Возникает exception "Ошибка при получении записи".
Мучился, мучился. В итоге получилось:
Вместо
SQL = ".....";
recBlock.Open(CRecordset::dynaset, SQL);
Надо написать в данном случае
recBlock.m_strFilter = "BlockID IN (SELECT BlockInfo.BlockID "
"FROM ((KursInfo LEFT JOIN RazdelInfo ON KursInfo.KursID = RazdelInfo.KursID) LEFT JOIN TemaInfo ON RazdelInfo.RazdelID = TemaInfo.RazdelID) LEFT JOIN (BlockInfo LEFT JOIN StepInfo ON BlockInfo.BlockID = StepInfo.BlockID) ON TemaInfo.TemaID = BlockInfo.TemaID )";