2012-02-09 8 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 Adminから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'のGoogle検索では0の結果が返されます。 – Monty0018

+0

私はメモ帳でMicrosoft Access ODBC dll(ACEODBC.DLL)を開き、文字列定数を検索してしまいました。私は最初にCREATE_DBを探しました(ユニコードストリングなので、「C R E A」を検索しました)。最初にヒットしたのはCREATE_DBV12なので、試してみました。おそらくあなたは文字列の定数を閲覧させるツールがありますが、メモ帳でDLLを開くのはそれほど大きな問題ではありません。 –

関連する問題