SDI в Visual C++
BOOL CStform::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
_RecordsetPtr m_pRecordset;
CStudentApp *App;
_bstr_t bstrQuery("SELECT * FROM StudV");
_variant_t vRecsAffected(0L);
try {
_CommandPtr m_pCommand;
m_pCommand.CreateInstance (__uuidof (Command));
m_pCommand->ActiveConnection = App->m_pConn; // Formerly opened connection pointer
m_pCommand->CommandText = "Select * From Student";
//m_pRecordset = App.m_pConn->Execute(bstrQuery, vRecsAffected, adOptionUnspecified);
//if (!m_pRecordset->GetadoEOF()) {
}
}
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
error C2248: 'CStudentApp::m_pConn' : cannot access protected member declared in class 'CStudentApp'
error C2317: 'try' block starting on line '46' has no catch handlers
error C2059: syntax error : 'return'
error C2059: syntax error : '}'
error C2143: syntax error : missing ';' before '}'
error C2059: syntax error : '}'
Что я не так делаю:
BOOL CStform::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
_RecordsetPtr m_pRecordset;
CStudentApp *App;
_bstr_t bstrQuery("SELECT * FROM StudV");
_variant_t vRecsAffected(0L);
try {
_CommandPtr m_pCommand;
m_pCommand.CreateInstance (__uuidof (Command));
m_pCommand->ActiveConnection = App->m_pConn; // Formerly opened connection pointer
m_pCommand->CommandText = "Select * From Student";
//m_pRecordset = App.m_pConn->Execute(bstrQuery, vRecsAffected, adOptionUnspecified);
//if (!m_pRecordset->GetadoEOF()) {
}
}
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
error C2248: 'CStudentApp::m_pConn' : cannot access protected member declared in class 'CStudentApp'
error C2317: 'try' block starting on line '46' has no catch handlers
error C2059: syntax error : 'return'
error C2059: syntax error : '}'
error C2143: syntax error : missing ';' before '}'
error C2059: syntax error : '}'
По первой ошибке: либо сделай m_pConn public, либо добавь в класс CStudentApp что-то вроде
CConnaction /*или что там у тебя*/CStudentApp::GetConnection()
{
return m_pConn;
}
По второй ошибке: try блоки используются совместно с catch блоками.
все остальное: не закоментарил закрывающуюся операторную скобку if блока. Должно быть что-то вроде:
BOOL CStform::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
_RecordsetPtr m_pRecordset;
CStudentApp *App;
_bstr_t bstrQuery("SELECT * FROM StudV");
_variant_t vRecsAffected(0L);
try
{
_CommandPtr m_pCommand;
m_pCommand.CreateInstance (__uuidof (Command));
m_pCommand->ActiveConnection = App->m_pConn; // Formerly opened connection pointer
m_pCommand->CommandText = "Select * From Student";
//m_pRecordset = App.m_pConn->Execute(bstrQuery, vRecsAffected, adOptionUnspecified);
//if (!m_pRecordset->GetadoEOF()) {
}
catch(/*тут вставляеш exception который может выбросить одна из функций try блока*/)
{
//обработка exception
}
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
СПАСИБО.работает