Cómo crear un archivo .mdb para bases de datos de Microsoft

Id. de artículo: 118609 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

Resumen

Nota: Para obtener información acerca cómo crear archivos .mdb mediante programación utilizando Visual C++ versión 4.x o posterior, por favor, consulte el artículo siguiente en Microsoft Knowledge Base:
126606INFORMACIÓN: Accessing CREATE_DB REPAIR_DB y COMPACT_DB
Un archivo .mdb siempre es necesario para configurar un origen de datos de Microsoft Access utilizando el administrador (Open Database CONNECTIVITY) o configurando el origen de datos mediante programación. Imposible crear un archivo .mdb mediante las clases de base de datos de MFC o de la interfaz de programación de aplicaciones (API) de ODBC.

Puede utilizar uno de los métodos siguientes para tener una aplicación de configurar un origen de datos en el equipo:

  • Enviar e instale el archivo .mdb junto con la aplicación.
  • Convertir el archivo .mdb en un recurso definido por el usuario. A continuación, copie el archivo .mdb en tiempo de ejecución.
En este artículo se describe el segundo método, convertir el archivo .mdb en un recurso definida por el usuario.

Más información

Puede utilizar un recurso definido por el usuario para adjuntar varios datos a un archivo .exe. Si un archivo .mdb se realiza en un recurso, el recurso se puede cargar en tiempo de ejecución y, a continuación, se escribe en un archivo .mdb. Los pasos necesarios para ello son:

  1. Crear un archivo .mdb mediante Microsoft Access o MSQuery.
  2. Crear el archivo .mdb como un recurso definido por el usuario agregando la línea siguiente al archivo .rc:
          mdb_file  MDB_RESOURCE filename.mdb
    						
    donde:
          mdb_file      is  a name for identifying the resource.
          MDB_RESOURCE  is  a name for identifying the type of the resource
                            and can be any user-defined type.
          filename.mdb  is  the name of the .mdb file.
    						
  3. Cargar el recurso y escríbala en un archivo .mdb. Puede utilizar la siguiente función, desde cualquier lugar en la aplicación, para crear el archivo .mdb. (Un lugar típico para crear el archivo .mdb sería el reemplazo de la función CWinApp::InitInstance().)
       CreateMDBFile()
       {
          // Get the instance handle - required for loading the resource
          HINSTANCE hInst = AfxGetInstanceHandle();
    
          // Load the user-defined resource.
          HRSRC hmdbFile = ::FindResource(hInst, "mdb_file", "MDB_RESOURCE");
             HGLOBAL hRes = ::LoadResource(hInst, hmdbFile);
             DWORD dwResSize = ::SizeofResource(hInst, hmdbFile);
    
             if (hRes != NULL)
             {
                UINT FAR* lpnRes = (UINT FAR*)::LockResource(hRes);
                CString szFileName = "Filename.mdb";
    
                TRY
                {
                   // Create the .mdb file
                   CFile f( szFileName, CFile::modeCreate | CFile::modeWrite );
    
                   // Write the user-defined resource to the .mdb file
                   f.WriteHuge(lpnRes, dwResSize);
                   f.Flush();
                }
                CATCH( CFileException, e )
                {
          #ifdef _DEBUG
                 afxDump << "File could not be opened " << e->m_cause << "\n";
          #endif
                }
                END_CATCH
    
          #ifndef WIN32 //Unlock Resource is obsolete in the Win32 API
                ::UnlockResource(hRes);
          #endif
                ::FreeResource(hRes);
             }
          }
    						
La desventaja de uno de este método es que aumenta el tamaño del archivo .exe según al tamaño de archivo .mdb. Dado que incluso un archivo .mdb vacío es 64 KB de tamaño, el archivo .exe se incrementa en al menos 64 KB. Una forma de reducir el tamaño del archivo .exe es almacenar un archivo .mdb comprimido en el archivo .exe y expanda en ejecución al almacenar el recurso de tiempo.

Referencias

Para obtener más información sobre los recursos definidos por el usuario, consulte la Ayuda de Windows SDK.

Para obtener información adicional acerca de cómo configurar un origen de datos mediante programación, consulte en contacto con los artículos siguientes en Microsoft Knowledge Base:
110507Cómo configurar orígenes de datos ODBC al instante

110508Cómo crear tablas con clases de base de datos de MFC

Propiedades

Id. de artículo: 118609 - Última revisión: martes, 21 de noviembre de 2006 - Versión: 3.2
La información de este artículo se refiere a:
  • Microsoft Foundation Class Library 4.2 sobre las siguientes plataformas
    • Microsoft Visual C++ 1.5 Professional Edition
    • Microsoft Visual C++ 1.51
    • Microsoft Visual C++ 1.52 Professional Edition
    • Microsoft Visual C++ 2.0 Professional Edition
    • Microsoft Visual C++ 2.1
Palabras clave: 
kbmt kbdatabase kbhowto kbprogramming KB118609 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 118609
Renuncia a responsabilidad de los contenidos de la KB sobre productos a los que ya no se ofrece asistencia alguna
El presente artículo se escribió para productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

Enviar comentarios