Мне нужно выполнить простой запрос к базе данных MS-SQL из C ++ (VC6, если это имеет значение).Я знаю, что база данных открыта.Я знаю, что мой CRecordset имеет правильное количество и тип членов.Я могу выполнить запрос непосредственно в базе данных успешно.Однако, когда я пытаюсь выполнить тот же запрос программным способом, я получаю «недопустимый индекс дескриптора».Я перепробовал все виды вариаций, упрощая запросы и еще много чего, но безрезультатно.Кто-нибудь может подсказать, что я тут не так делаю?Данный код (отредактированный для простоты):
CDatabase db;
db.OpenEx("DSN=NRSUP;Description=Test;APP=DbTest Application;WSID=RFLD-PUNDRWOOD;Trusted_Connection=Yes", CDatabase::noOdbcDialog | CDatabase::useCursorLib);
if(db.IsOpen())
{
//Subclassed from CRecordset
m_pDBRoRRecordSet = new CDBRoRRecordSet(&db));
CString query;
query.Format("SELECT idx FROM [dbo].[RoRRecordSet] WHERE Railroad = 'one' AND Subdivision = 'two' AND Track = 'three';");
TRY
{
m_pDBRoRRecordSet->Open(CRecordset::snapshot,query,CRecordset::readOnly | CRecordset::executeDirect); //Invalid descriptor index
}
CATCH
{
//invalid descriptor index
}
}