Member 12677926 Ответов: 1

Afxdaoterm когда использовать этот термин


у меня есть ocx, в котором я входил в базу данных, и в этом экземпляре выхода я написал afxdaoint

функция в конструкторе patricular list control у меня была init база данных

и ocx exist экземпляр, который я вызвал afxdaoterm, но его цикл ...то есть не закрывая exe acces vialotion ошибка пришла.

Что я уже пробовал:

если бы я использовал AfxDaoTerm в экземпляре exist, то он не закрывал бы базу данных, а происходил бы рекурсивно, в чем могла бы быть проблема.

OriginalGriff

Это не очень хороший вопрос - мы не можем понять из этого малого, что вы пытаетесь сделать.
Помните, что мы не можем видеть ваш экран, получить доступ к вашему жесткому диску или прочитать ваши мысли - мы получаем только то, что вы печатаете для работы. Так что покажите нам код, который вы используете, объясните, что происходит,и не пытайтесь печатать как можно меньше!
Помогите нам помочь вам!

Используйте виджет" улучшить вопрос", чтобы отредактировать свой вопрос и предоставить более подробную информацию.

1 Ответов

Рейтинг:
0

Jochen Arndt

AfxDaoTerm не закрывает базу данных. Совсем наоборот он требует, чтобы все объекты MFC DAO были разрушенный прежде чем позвонить. Поэтому вы не должны использовать экземпляры объектов DAO, а выделять их с помощью new и удалите их перед звонком AfxDaoTerm:

CDaoDatabase *pDb = NULL;

// In InitInstance for global objects or function entry for local objects
pDb = new CDaoDatabase;

// Usage
pDb->Open();
// ...

// In ExitInstance for global objects or function exit for local objects
if (pDb)
{
    if (pDb->IsOpen())
        pDb->Close();
    delete pDb;
}

// ExitInstance
AfxDaoTerm();