DetailPage-MSS-KB

Base de Dados de Conhecimento

ID do artigo: 118609 - Última revisão: terça-feira, 21 de novembro de 2006 - Revisão: 3.2

 

Sumário

Observação: Para obter informações sobre como criar arquivos .mdb programaticamente usando o Visual C++ versão 4.x ou posterior, consulte o seguinte artigo na Base de dados de Conhecimento da Microsoft:
126606  (http://support.microsoft.com/kb/126606/EN-US/ ) INFO: Acessando CREATE_DB REPAIR_DB e COMPACT_DB
Um arquivo .mdb é sempre necessário para configurar uma fonte de dados Microsoft Access usando o administrador do ODBC (Open Database Connectivity) ou configurando a fonte de dados programaticamente. Um arquivo .mdb não pode ser criado usando as classes de banco de dados MFC ou a interface de programação de aplicativo (API) do ODBC.

Você pode usar um dos seguintes métodos para ter um aplicativo de configurar uma fonte de dados no seu computador:

  • Enviar e instalar o arquivo .mdb juntamente com o aplicativo.
  • Transformar o arquivo .mdb em um recurso definido pelo usuário. Em seguida, copie o arquivo .mdb em tempo de execução.
Este artigo descreve o segundo método, transformar o arquivo .mdb em um recurso definido pelo usuário.

Mais Informações

Você pode usar um recurso definido pelo usuário para anexar diversos dados para um arquivo .exe. Se um arquivo .mdb for feito em um recurso, o recurso pode ser carregado no tempo de execução e, em seguida, gravado em um arquivo .mdb. As etapas necessárias para fazer isso são:

  1. Crie um arquivo .mdb usando o Microsoft Access ou o MSQuery.
  2. Criar o arquivo .mdb como um recurso definido pelo usuário adicionando a seguinte linha ao seu arquivo .RC:
          mdb_file  MDB_RESOURCE filename.mdb
    						
    onde:
          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. Carregar o recurso e grave-para um arquivo .mdb. Você pode usar a função a seguir, de qualquer lugar em seu aplicativo, para criar o arquivo .mdb. (Um local comum para criar o arquivo .mdb seria a substituição da função 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);
             }
          }
    						
A uma desvantagem desse método é que ele aumenta o tamanho do arquivo .exe de acordo com o tamanho do arquivo .mdb. Como até mesmo um arquivo .mdb vazio é 64 K de tamanho, o .exe é aumentado em pelo menos 64 K. Uma maneira para reduzir o tamanho do .exe é armazenar um arquivo .mdb compactado para o .exe e expandi-lo em execução ao armazenar o recurso de tempo.

Referências

Para obter mais informações sobre recursos definida pelo usuário, consulte a Ajuda do SDK do Windows.

Para obter informações adicional sobre como configurar uma fonte de dados programaticamente, consulte os seguintes artigos na Base de dados de Conhecimento da Microsoft:
110507  (http://support.microsoft.com/kb/110507/EN-US/ ) Como configurar fontes de dados ODBC na surgir

110508  (http://support.microsoft.com/kb/110508/EN-US/ ) Como criar tabelas com Foundation Classes de banco de dados

A informação contida neste artigo aplica-se a:
  • Microsoft Foundation Class Library 4.2 nas seguintes 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
Palavras-chave: 
kbmt kbdatabase kbhowto kbprogramming KB118609 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 118609  (http://support.microsoft.com/kb/118609/en-us/ )
Retired KB ArticleAviso de Isenção de Responsabilidade sobre Conteúdo do KB Aposentado
Este artigo trata de produtos para os quais a Microsoft não mais oferece suporte. Por esta razão, este artigo é oferecido "como está" e não será mais atualizado.
Compartilhar
Opções de suporte adicionais
Fóruns de Suporte do Microsoft Community
Contate-nos diretamente
Localize um parceiro certificado da Microsoft
Microsoft Store