如何使用 ODBC .accdb 驱动程序压缩 Access 数据库

问题描述 投票:0回答:0

我正在尝试确定如何使用 .accdb ODBC 驱动程序压缩 Access 数据库。请注意,我知道如何使用旧的 .mdb 驱动程序来完成此操作,基本上是这样的:

  const TCHAR *Driver = TEXT("Microsoft Access Driver (*.mdb)");
  TCHAR *DatabasePath = GetRegDBPath() ;

  _stprintf_s(Attr, sizeof(Attr)/sizeof(TCHAR), TEXT("COMPACT_DB=%s%s %s%s General"), DatabasePath,
                                                  DBName,
                                                  DatabasePath,
                                                  DBName ) ;
  Ret = SQLConfigDataSource(hPar,
                            ODBC_ADD_DSN,
                            Driver,
                            Attr);

但是用 Microsoft Access Driver (.mdb, .accdb) 替换驱动程序字符串,调用失败并调用 *SQLInstallerError * 以获取错误信息返回(相当无用)消息:Driver's ConfigDSN, ConfigDriver,或者 ConfigTranslator 失败.

我尝试了上述语法的变体,使用不同的输出数据库路径,省略了 General 参数,所有结果都相同。

此链接表明它无法完成,但我持怀疑态度,因为可以从 ODBC 管理员面板执行此操作。此外,通过 ACEODBC.DLL 查找字符串内容显示了 COMPACT_DB 字符串的存在:

jon@monolith:~/temp$ strings -t x -e l ACEODBC.DLL | grep -i 紧凑型 395f0 COMPACT_DB 39978 COMPACT_DB=%s

所有建议如果我知道正确的语法是什么应该是可能的。

c++ c ms-access odbc
© www.soinside.com 2019 - 2024. All rights reserved.