Compartilhar via


Fonte de dados: gerenciando conexões (ODBC)

Este tópico aplica-se às classes ODBC do MFC.

Este tópico explica:

Conectar-se a uma fonte de dados significa estabelecer comunicações com um DBMS para acessar os dados. Quando você se conecta a uma fonte de dados de um aplicativo por meio de um driver ODBC, o driver faz a conexão para você, localmente ou em uma rede.

Você pode se conectar a qualquer fonte de dados para a qual você tem um driver ODBC. Os usuários do aplicativo também precisam ter o mesmo driver ODBC para a fonte de dados deles. Para obter mais informações sobre como redistribuir drivers ODBC, confira Redistribuindo componentes ODBC para seus clientes.

Configurando uma fonte de dados

O Administrador ODBC é usado para configurar suas fontes de dados. Você também pode usar o Administrador ODBC após a instalação para adicionar ou remover fontes de dados. Ao criar aplicativos, você pode direcionar seus usuários para o Administrador ODBC para permitir que eles adicionem fontes de dados ou você pode criar essa funcionalidade em seu aplicativo fazendo chamadas diretas de instalação ODBC. Para obter mais informações, confira Administrador ODBC.

Você pode usar um arquivo do Excel como fonte de dados e configurar o arquivo para que ele seja registrado e apareça na caixa de diálogo Selecionar Fonte de Dados.

Para usar um arquivo do Excel como fonte de dados

  1. Configure o arquivo com o Administrador da Fonte de Dados ODBC.

  2. Na guia DSN do arquivo, clique em Adicionar.

  3. Na caixa de diálogo Criar Fonte de Dados, selecione um driver do Excel e clique em Avançar.

  4. Clique em Procurar e selecione o nome do arquivo a ser usado como uma fonte de dados.

Observação

Talvez seja necessário selecionar Todos os Arquivos no menu suspenso para exibir os arquivos .xls.

  1. Clique em Avançare em Concluir.

  2. Na caixa de diálogo Configuração do Microsoft Excel do ODBC, selecione a versão e a pasta de trabalho do banco de dados.

Trabalhando em um ambiente multiusuário

Se vários usuários estiverem conectados a uma fonte de dados, eles poderão alterar dados enquanto você manipula essa fonte de dados em seus conjuntos de registros. Da mesma forma, suas alterações podem afetar os conjuntos de registros de outros usuários. Para obter mais informações, confira Conjuntos de registros: como conjuntos de registros atualizam registros (ODBC) e Transação (ODBC).

Generalizando a cadeia de conexão

Os assistentes usam uma cadeia de conexão padrão para estabelecer uma conexão com uma fonte de dados. Você usa essa conexão para exibir tabelas e colunas enquanto está desenvolvendo seu aplicativo. No entanto, essa cadeia de conexão padrão pode não ser apropriada para as conexões dos usuários com a fonte de dados por meio do aplicativo. Por exemplo, a fonte de dados deles e o caminho para o local dela podem ser diferentes daqueles usados no desenvolvimento do aplicativo. Nesse caso, você deve reimplementar a função membro CRecordset::GetDefaultConnect de maneira mais genérica e descartar a implementação do assistente. Para fazer isso, use uma das seguintes abordagens:

  • Registre e gerencie as cadeias de conexão usando o Administrador ODBC.

  • Edite a cadeia de conexão e remova o nome da fonte de dados. A estrutura fornece ODBC como a fonte de dados; em tempo de execução, o ODBC exibe uma caixa de diálogo solicitando o nome da fonte de dados e todas as outras informações de conexão necessárias.

  • Forneça apenas o nome da fonte de dados. O ODBC solicita a ID do usuário e a senha, se necessário. Por exemplo, antes de generalizar, a cadeia de conexão tem esta aparência:

    CString CApp1Set::GetDefaultConnect()
    {
       return "ODBC;DSN=afx;Trusted_Connection=Yes;";
    }
    

    Essa cadeia de conexão especifica uma conexão confiável, que usa a segurança integrada do Windows NT. Você deve evitar codificar uma senha ou especificar uma senha em branco, pois fazer isso cria uma fraqueza de segurança significativa. Em vez disso, você pode fornecer uma nova cadeia de conexão a GetDefaultConnect para que ela consulte uma ID de usuário e senha.

    // User must select data source and supply user ID and password:
        return "ODBC;";
    // User ID and password required:
        return "ODBC;DSN=mydb;";
    // Password required (myuserid must be replaced with a valid user ID):
        return "ODBC;DSN=mydb;UID=myuserid;";
    // Hard-coded user ID and password (SECURITY WEAKNESS--AVOID):
        return "ODBC;DSN=mydb;UID=sa;PWD=777;";
    

Conectando-se a uma fonte de dados específica

Para se conectar a uma fonte de dados específica, sua fonte de dados precisa já ter sido configurada com o Administrador ODBC.

Para conectar-se a uma fonte de dados específica

  1. Construir um objeto CDatabase.

  2. Chame a função de membro OpenEx ou Open desse objeto.

Para obter mais informações sobre como especificar a fonte de dados se ela for diferente daquela especificada com um assistente, confira CDatabase::OpenEx ou CDatabase::Open na Referência do MFC.

Desconectando uma fonte de dados

Você precisa fechar todos os conjuntos de registros abertos antes de chamar a função membro Close de CDatabase. Em conjuntos de registros associados ao objeto CDatabase que você deseja fechar, todas as instruções AddNew ou Edit pendentes são canceladas e todas as transações pendentes são revertidas.

Para se desconectar de uma fonte de dados

  1. Chame a função de membro Close do objeto CDatabase.

  2. Destrua o objeto, a menos que você queira reutilizá-lo.

Reutilizando um objeto CDatabase

Você pode reutilizar um objeto CDatabase depois de desconectá-lo, seja para reconectá-lo à mesma fonte de dados ou para conectá-lo a uma fonte de dados diferente.

Para reutilizar um objeto CDatabase

  1. Feche a conexão original do objeto.

  2. Em vez de destruir o objeto, chame novamente a respectiva função membro OpenEx ou Open.

Confira também

Fonte de dados (ODBC)
Fonte de dados: determinando o esquema da fonte de dados (ODBC)
Classe CRecordset