Шаг 13 - Использование DAO в ATL

-----Исходное сообщение-----
От: Oleg Udovenko 
Дата: 10 января 2000 г. 2:53
Тема: ActiveXByStep
Привет Артем.
Один вопрос.
- Как при разработке ATL COM компонента подключить DAO(используется Access)?
With best regards, Oleg.

Ну спасибо Олег ;-) А то я вот тут сижу :-) Незнаю чем заняться ;-) Ну ладно. Я только покажу принцип и получу версию DAO, а уж дальше... Видно будет...

Нам надо повторить "Шаг 10 - Создаем ActiveX с ATL", только имя проекту дайте TestAtlDao и не забудьте подключить support MFC.

13_1.gif (2555 b)

Добавим новый ATL Object, а тип Simple Object имя ему дайте CATLDaoTest. Добавьте метод MessageTest.

STDMETHODIMP CCATLDaoTest::MessageTest()
{
	return S_OK;
}

А теперь смотрите "Шаг 78 - Управление приложениями из VC++". У вас должна быть Dao2535.tlb, используя её необходимо создать _DBEngine класс.

Теперь модифицируем функцию.

STDMETHODIMP CTestDao::GetInitPath()
{
	AFX_MANAGE_STATE(AfxGetStaticModuleState())

	_DBEngine dbing;
	dbing.CreateDispatch("DAO.DBEngine.35");
	AfxMessageBox (dbing.GetVersion() );

	return S_OK;
}

Компилируем. А теперь тестируем в VBA:

Sub TestAtlDao()
	Dim dbAtlDao As CATLDaoTest
	Set dbAtlDao = New CATLDaoTest
	dbAtlDao.MessageTest
End Sub

Результат ...

13_2.gif (3482 b)

Вообще-то нужно было использовать MessageBox, а не AfxMessageBox... Но посмотрите сработало...


Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 11.01.2000