Здравствуйте, Аноним, Вы писали:
А>Что для этого нужно? Нужен ли для этого ODBC драйвер или можно по-другому, не хочется, что бы приложение сильно выросло.
Используй OLEDB
extern CDataSource DS;
extern CSession Ss;
HRESULT CMainFrame::ConnectDB()
{
WTL::CString capt;
if (OpenDataSource() !=S_OK){
MessageBox(_T("Не удалось установить соединение с БД"));
return S_FALSE;
}
CComVariant var;
if SUCCEEDED(DS.GetProperty(DBPROPSET_DATASOURCEINFO, DBPROP_DATASOURCENAME, &var))
m_strConnect = var.bstrVal;
else
m_strConnect.LoadString(IDS_NONAME_SPECIFIED);
capt = "[" + m_strConnect+"]";
SetWindowText(capt);
return S_OK;
}
HRESULT CMainFrame::OpenDataSource()
{
HRESULT hr;
if (DS.m_spInit != NULL){
Ss.Close();
DS.m_spInit.Release();
};
LPOLESTR strCon=OLESTR("Provider=MSDASQL.1;Persist Security Info=False;Data Source=Olimp");
hr=DS.OpenFromInitializationString(strCon);
if(FAILED(hr)) throw _T("Не могу открыть источник данных");
if (FAILED(hr))
return hr;
return Ss.Open(DS);
}
Рабочий код из программы на WTl