CAdodc
1264
0
Использую Visual C++/MFC.
Есть база Access с двумя таблицами.
В первой хранится инфа о отделах:
id, dept_name
Во второй - о сотрудниках, в этих отделах работающих:
id, name, dept
где dept - это индекс (id) отдела из первой таблицы.
Необходимо на форме информации о сотруднике отобразить его принадлежность к соответствующему отделу с возможностью редактирования этой информации.
Использую CAdodc для получения данных из таблиц и CDataCombo (Microsoft DataCombo Control) для отображения. В качестве свойства DataSource контрола CDataCombo как и следует прописываю ID контрола CAdodc (IDC_ADODC1).
НО! Запрос для получения информации о сотруднике (в частности, о его отделе) формируется в рантайме, поскольку сотрудник выбирается из списка и сразу прописать запрос нельзя. Сответственно, текст sql-запроса должен вставляться в CAdodc динамически.
Делаю:
m_Info.SetRecordSource("select * from empl where id = " + EmpID);
m_Info.Refresh();
где m_Info - объект класса CAdodc.
EmpID - идентификатор сотрудника (приведенный к CString)
Вылазит ошибка:
[ADODC]: no RecordSource specified. [ADO]:Command text was not set for the command object.
Идентификатор сотрудника (EmpID) является членом класса окна информации о сотруднике, а значение передается ему из родительского окна так:
CEmpDtaDlg dlg;
dlg.EmpID = "3";
dlg.DoModal();
Как успеть забить RecordSource, чтобы данные корректно отображались?
Спасибо.
Есть база Access с двумя таблицами.
В первой хранится инфа о отделах:
id, dept_name
Во второй - о сотрудниках, в этих отделах работающих:
id, name, dept
где dept - это индекс (id) отдела из первой таблицы.
Необходимо на форме информации о сотруднике отобразить его принадлежность к соответствующему отделу с возможностью редактирования этой информации.
Использую CAdodc для получения данных из таблиц и CDataCombo (Microsoft DataCombo Control) для отображения. В качестве свойства DataSource контрола CDataCombo как и следует прописываю ID контрола CAdodc (IDC_ADODC1).
НО! Запрос для получения информации о сотруднике (в частности, о его отделе) формируется в рантайме, поскольку сотрудник выбирается из списка и сразу прописать запрос нельзя. Сответственно, текст sql-запроса должен вставляться в CAdodc динамически.
Делаю:
m_Info.SetRecordSource("select * from empl where id = " + EmpID);
m_Info.Refresh();
где m_Info - объект класса CAdodc.
EmpID - идентификатор сотрудника (приведенный к CString)
Вылазит ошибка:
[ADODC]: no RecordSource specified. [ADO]:Command text was not set for the command object.
Идентификатор сотрудника (EmpID) является членом класса окна информации о сотруднике, а значение передается ему из родительского окна так:
CEmpDtaDlg dlg;
dlg.EmpID = "3";
dlg.DoModal();
Как успеть забить RecordSource, чтобы данные корректно отображались?
Спасибо.