Как определить, что приводит к сбою запросов к базе данных MS Access через драйвер MS ODBC в неуправляемой среде C ++?

Я пытаюсь отладить клиентское приложение.
Приложение встроено в MSVC (неуправляемый) C ++.
Он подключается к БД MS Access (через ODBC).

Когда БД MS Access находится на локальном диске, все запросы отправляются
через ODBC работают нормально до завершения.

Когда БД находится на сетевом диске, мы сталкиваемся с проблемами.
Кажется, что все запросы, основанные на «Select» (как в «Select * from FOO»), возвращают
успешно.

Когда мы пытаемся протолкнуть запрос, который либо удаляет, вставляет или обновляет данные,
вызов ODBC не выполняется. Звонок не возвращает особо полезную информацию. Возвращает -1 как результат (указывает на ошибку). Я проверил дескриптор (SQL_HANDLE_ENV, SQL_HANDLE_DBC, SQL_HANDLE_STMT), чтобы увидеть, была ли дополнительная информация об ошибке, связанная с ошибкой.

Например, когда мы пытаемся удалить, мы получаем сообщение об ошибке:
«[Microsoft] [ODBC Microsoft Access Driver] Не удалось удалить из указанных таблиц.»

Нам трудно понять, в чем проблема. Есть ли способ получить более полезную информацию об ошибке (трассировка ODBC и т. Д.)?

Странно, что простые операции выбора, кажется, работают нормально, в то время как все, что добавляет / удаляет / изменяет данные, похоже, не работает.

Какова лучшая стратегия для отладки этого?
Есть ли у кого-нибудь идеи, которые могут помочь нам отточить этот вопрос (ы)?

Являются ли эти симптомы проблемы с доступностью пользователя / привилегии?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]