Я пытаюсь отладить клиентское приложение.
Приложение встроено в 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 и т. Д.)?
Странно, что простые операции выбора, кажется, работают нормально, в то время как все, что добавляет / удаляет / изменяет данные, похоже, не работает.
Какова лучшая стратегия для отладки этого?
Есть ли у кого-нибудь идеи, которые могут помочь нам отточить этот вопрос (ы)?
Являются ли эти симптомы проблемы с доступностью пользователя / привилегии?
Задача ещё не решена.
Других решений пока нет …