How to create an .mdb file for Microsoft Access databases in Visual C++ (149558)
The information in this article applies to:
- The DAO SDK 3.0
- The DAO SDK 3.5
- The DAO SDK 3.51
- The DAO SDK 3.6
- Microsoft Visual C++ 2005 Express Edition
- Microsoft Visual C++ .NET (2003)
- Microsoft Visual C++ .NET (2002)
This article was previously published under Q149558 Note Microsoft Visual C++ .NET 2002 and Microsoft Visual C++ .NET 2003 support both the managed code model that is provided by the Microsoft .NET Framework and the unmanaged native Microsoft Windows code model. The information in this article applies only to unmanaged Visual C++ code. Microsoft Visual C++ 2005 supports both the managed
code model that is provided by the Microsoft .NET Framework and the unmanaged native
Microsoft Windows code model. SUMMARY Prior to the release of the Microsoft ODBC Desktop Driver
Pack version 2.0, there was no way to programmatically create a Microsoft
Access database (an .mdb file). For more details about this, please see the
following article in the Microsoft Knowledge Base: 118609
How To Create an .MDB File for Microsoft Access Databases
With the release of the version 2.0 driver pack and higher, MFC
ODBC applications can now create .mdb files. Additionally, with the
incorporation of DAO into Visual C++ 4.x or higher, you have another way to
create Microsoft Access databases programmatically. MORE INFORMATIONUsing the Microsoft Access ODBC Driver to Create .MDB Files Kyle Geiger's book "Inside ODBC" provides a sample program,
ODBCACC, that nicely demonstrates how to use the ODBC installer DLL API
function SQLConfigDataSource to create an .mdb file. The syntax of the function
call is:
BOOL SQLConfigDataSource(hwndParent, fRequest, lpszDriver,
lpszAttributes)
Where:
hwndParent is either NULL if no dialogs are to be displayed or a
valid hwnd to act as parent to any driver generated
dialogs.
fRequest is ODBC_ADD_DSN to specify creation of the .mdb file.
lpszDriver is Microsoft Access Driver (*.mdb).
lpszAttributes is "CREATE_DB=<path><filename>.mdb <sort order>\0"
where the <path><filename> combination identifies where
the file should be created and <sort order> is language
sorting order (for example, General). <path> must be
specified even if the .mdb is to be created in the current
working directory. Use standard relative path syntax.
NOTE: Unlike most other ODBC API functions, SQLConfigDataSource
returns a boolean value. This return value is TRUE if the .mdb was created,
FALSE if creation failed. To use the installer DLL functions, you
must: - Use #include <ODBCINST.H>.
- Link with Odbcinst.lib for 16-bit applications.
- Link with Odbccp32.lib for 32-bit applications.
NOTE: The functionality of SQLConfigDataSource is available
through the ODBC Administrator. If you choose to add a new Microsoft Access
datasource, the driver dialog includes a Create button that you can use to
create an .mdb file interactively. Using DAO to Create .MDB Files DAO allows applications developed with Visual C++ 4.x to
interface with the Microsoft Jet database engine directly. This allows more
efficient manipulation of Microsoft Access objects than can be achieved through
ODBC, including the creation of .mdb files. For a sample program that
demonstrates how to create databases and other objects, search the Microsoft
Knowledge Base for the DAOTABLE sample. Note To compile this sample in Visual C++ .NET 2002 and Visual C++
.NET 2002, change the following line or lines in the code: pDX->m_hWndLastControl =
theControl->m_hWnd; to pDX->m_idLastControl =
(UINT)theControl->m_hWnd;) Sample Code Use of SQLConfigDataSource ODBC installer DLL API function:
BOOL fCreated;
fCreated = SQLConfigDataSource(NULL,
ODBC_ADD_DSN,
"Microsoft Access Driver (*.mdb)",
"CREATE_DB=.\\ATest.mdb General\0" );
This will create ATest.mdb in the application's working directory using
general sorting. REFERENCES "Inside ODBC" by Kyle Geiger, Microsoft Press ISBN
1-55615-815-7. For more information, please see the following
article in the Microsoft Knowledge Base in the ODBC collection: 126606
INFO: Accessing CREATE_DB, REPAIR_DB, and COMPACT_DB
Modification Type: | Major | Last Reviewed: | 12/31/2005 |
---|
Keywords: | kbDatabase kbhowto kbProgramming KB149558 kbAudDeveloper |
---|
|