我正在尝试调试客户端的应用程序。该应用程序使用 MSVC(非托管)C++ 构建。它连接到 MS Access DB(通过 ODBC)。
当 MS Access DB 位于本地驱动器上时,通过 ODBC 提交的所有查询都可以正常完成。
当数据库位于网络驱动器上时,我们会遇到问题。似乎所有基于“Select”的查询(如“Select * from FOO”)都成功返回。
当我们尝试通过删除、插入或更新数据来推送查询时,ODBC 调用会失败。该调用不会返回任何特别有用的信息。它返回 -1 作为结果(表示失败)。我检查了句柄(SQL_HANDLE_ENV、SQL_HANDLE_DBC、SQL_HANDLE_STMT)以查看是否有与失败相关的其他错误信息。
例如,当我们尝试删除时,我们得到的错误消息是:“[Microsoft][ODBC Microsoft Access Driver] 无法从指定的表中删除。”
我们很难弄清楚问题是什么。有没有办法我们可以获得有关错误的更多有用信息(ODBC 跟踪等)?
奇怪的是,简单的选择似乎工作正常,而任何添加/删除/修改数据的操作似乎都失败了。
调试这个的最佳策略是什么?有没有人有任何想法可以帮助我们解决这个问题?
这些是用户/特权可访问性问题的症状吗?