2012-02-09 94 views
1

使用C,我試圖通過SQLConfigDataSource函數使用ODBC創建Access 2007數據庫文件。如何在創建數據庫時指定ODBC訪問驅動程序格式

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管理器中指定12.x(accdb)或4.x(mdb),如下圖所示,但是如何通過ODBC API執行此操作?

Create Database with ODBC Microsoft Access drivers

我能夠創建用戶DSN,但我覺得這也是錯誤的格式,因爲我沒有測試它。

如何使用ODBC/Access API定義格式版本?

回答

2

使用CREATE_DBV12:

char szDriverName[] = "Microsoft Access Driver (*.mdb, *.accdb)"; 
char szAttr[] = "CREATE_DBV12=c:\access2007.accdb"; 
SQLConfigDataSource(NULL, ODBC_ADD_DSN, szDriverName, szAttr); 
+0

你有此信息的來源或者是它只是一個猜測?我搜索並搜索了這些信息,但從未找到'CREATE_DBV12'屬性。即使現在我知道這一點,谷歌搜索'CREATE_DBV12'返回0結果。 – Monty0018 2012-02-15 04:45:32

+0

我結束了在記事本中打開Microsoft Access ODBC dll(ACEODBC.DLL)並搜索字符串常量。我首先搜索了CREATE_DB(它們是unicode字符串,因此我搜索了「C R E A」)常量,而且我碰到的第一件事是CREATE_DBV12,所以我嘗試了它,並且它工作正常。有可能讓你瀏覽字符串常量的工具,但對我來說,在記事本中打開DLL並不是什麼大問題。 – 2012-02-15 12:18:48

相關問題