创建数据库时如何指定 ODBC 访问驱动程序格式
Posted
技术标签:
【中文标题】创建数据库时如何指定 ODBC 访问驱动程序格式【英文标题】:How do I specify the ODBC Access Driver Format when creating the database 【发布时间】:2012-02-09 04:55:55 【问题描述】:使用 C,我试图通过 SQLConfigDataSource 函数使用 ODBC 创建一个 Access 2007 数据库文件。
char szDriverName[] = "Microsoft Access Driver (*.mdb, *.accdb)";
char szAttr[] = "CREATE_DB=c:\access2007.accdb";
SQLConfigDataSource(NULL, ODBC_ADD_DSN, szDriverName, szAttr);
我希望新数据库的文件扩展名是 .accdb,但是当我运行上面的代码时,我总是得到 c:\access2007.accdb.mdb。我可以从 ODBC Admin 中指定 12.x (accdb) 或 4.x (mdb),如下图所示,但是如何通过 ODBC API 来实现呢?
我可以创建用户 DSN,但是我觉得它的格式也不正确,因为我没有测试过。
如何使用 ODBC/Access API 定义格式版本?
【问题讨论】:
【参考方案1】:使用 CREATE_DBV12:
char szDriverName[] = "Microsoft Access Driver (*.mdb, *.accdb)";
char szAttr[] = "CREATE_DBV12=c:\access2007.accdb";
SQLConfigDataSource(NULL, ODBC_ADD_DSN, szDriverName, szAttr);
【讨论】:
您有此信息的来源还是只是猜测?我搜索并搜索了此信息,但从未找到“CREATE_DBV12”属性。即使现在我知道这一点,谷歌搜索“CREATE_DBV12”仍返回 0 个结果。 我最终在记事本中打开了 Microsoft Access ODBC dll (ACEODBC.DLL) 并搜索了字符串常量。我首先搜索了 CREATE_DB(它们是 unicode 字符串,所以我搜索了“C R E A”)常量,我首先找到的是 CREATE_DBV12,所以我尝试了它并且它起作用了。可能有一些工具可以让您浏览字符串常量,但对我来说,在记事本中打开 DLL 并不是什么大问题。以上是关于创建数据库时如何指定 ODBC 访问驱动程序格式的主要内容,如果未能解决你的问题,请参考以下文章