Re: как в wtl к серверу sql обратиться?
От: aShart Удмуртия  
Дата: 07.12.04 14:31
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Что для этого нужно? Нужен ли для этого 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
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.