Fonte de dados: Configurando programaticamente uma fonte de dados ODBC

Este tópico explica como você pode configurar nomes de fonte de dados Open Database Connectivity (ODBC) programaticamente.Isso permite flexibilidade para acessar dados sem forçar o usuário usar explicitamente o administrador ODBC ou outros programas para especificar os nomes de fontes de dados.

Normalmente, um usuário executa administrador ODBC para criar uma fonte de dados se o sistema de gerenciamento de banco de dados associado (DBMS) oferece suporte a esta operação.

Ao criar uma fonte de dados ODBC do Microsoft Access através de ODBC administrador, você terá duas opções: você pode selecionar um arquivo. mdb existente ou criar um novo arquivo. mdb.Não há nenhuma maneira programática de criar o arquivo. mdb do seu aplicativo de ODBC do MFC.Portanto, se seu aplicativo requer que você coloque dados em uma fonte de dados do Microsoft Access (arquivo. mdb), você provavelmente deseja ter um arquivo. mdb vazio que pode usar ou copiar sempre que necessário.

Entretanto, muitos DBMSs permitem a criação de fonte de dados através de programação.Algumas fontes de dados mantêm uma especificação de diretório para bancos de dados.Ou seja, um diretório é a fonte de dados e cada tabela de dados é armazenada em um arquivo separado (no caso do dBASE, cada tabela é um arquivo. dbf).Drivers para outros bancos de dados ODBC, como o Microsoft Access e SQL Server, exigem que alguns critérios específicos ser atendida antes que uma fonte de dados pode ser estabelecida.Por exemplo, ao usar o driver ODBC do SQL Server, você precisa ter estabelecido um computador SQL Server.

Exemplo de SQLConfigDataSource

O exemplo a seguir usa o :: SQLConfigDataSource nova fonte de dados do Excel chamada de função de API de ODBC para criar uma nova fonte de dados do Excel:

SQLConfigDataSource(NULL,ODBC_ADD_DSN, "Excel Files (*.xls)", 
                   "DSN=New Excel Data Source\0" 
                   "Description=New Excel Data Source\0" 
                   "FileType=Excel\0" 
                   "DataDirectory=C:\\EXCELDIR\0" 
                   "MaxScanRows=20\0");

Observe que a fonte de dados é realmente um diretório (C:\EXCELDIR); Este diretório deve existir.O driver do Excel usa diretórios como suas fontes de dados e arquivos como as tabelas individuais (uma tabela por arquivo. xls).

Para obter mais informações sobre como criar tabelas, consulte fonte de dados: criar programaticamente uma tabela em uma fonte de dados ODBC.

As informações a seguir descreve os parâmetros que precisam ser passados para o :: SQLConfigDataSource a função de API de ODBC.Usar :: SQLConfigDataSource, você deve incluir o arquivo de cabeçalho Odbcinst.h e usar a biblioteca de importação de Odbcinst.lib.Além disso, Odbccp32. dll deve estar no caminho em tempo de execução (ou Odbcinst para 16 bits).

Você pode criar um nome de fonte de dados ODBC usando o administrador ODBC ou um utilitário semelhante.No entanto, às vezes é desejável para criar um nome de fonte de dados diretamente do seu aplicativo para obter acesso sem exigir do usuário executar um utilitário separado.

Administrador de ODBC (normalmente instalado no painel de controle) cria uma nova fonte de dados, colocando entradas no registro do Windows (ou, para 16 bits, no arquivo Odbc.ini).O Gerenciador de Driver ODBC consulta esse arquivo para obter as informações necessárias sobre a fonte de dados.É importante saber que informações precisam ser colocado no registro porque você precisa fornecer a ele com a chamada para :: SQLConfigDataSource.

Embora esta informações podem ser gravadas diretamente para o registro sem usar :: SQLConfigDataSource, qualquer aplicativo que faz isso é contar com a técnica atual que o Gerenciador de Driver usa para manter seus dados.Se uma revisão posterior ao registro implementa Gerenciador de Driver ODBC manter sobre fontes de dados de maneira diferente, qualquer aplicativo que usa essa técnica é quebrado.É geralmente aconselhável usar uma função API quando é fornecida.Por exemplo, seu código é portátil de 16 bits para 32 bits se você usar o :: SQLConfigDataSource funcionar, porque a função corretamente grava o arquivo Odbc.ini ou o registro.

Parâmetros de SQLConfigDataSource

A seguir explica os parâmetros da :: SQLConfigDataSource função.Muitas das informações é obtida do API ODBC referência do programador de fornecido com o Visual C++ versão 1.5 e posterior.

ck4z6wwt.collapse_all(pt-br,VS.110).gifProtótipo de função

BOOL SQLConfigDataSource(HWND hwndParent,UINT fRequest, LPCSTR lpszDriver, LPCSTR lpszAttributes);

ck4z6wwt.collapse_all(pt-br,VS.110).gifComentários

ck4z6wwt.collapse_all(pt-br,VS.110).gifParâmetros e uso

  • hwndParent
    Na janela especificada como o proprietário de quaisquer caixas de diálogo que cria o Gerenciador de Driver ODBC ou driver ODBC específico para obter informações adicionais do usuário sobre a nova fonte de dados.Se o lpszAttributes parâmetro não fornece informações suficientes, será exibida uma caixa de diálogo.O hwndParent parâmetro pode ser Nulo.

  • lpszDriver
    A descrição do driver.Este é o nome apresentado para os usuários em vez do nome de driver físico (DLL).

  • lpszAttributes
    Lista de atributos no formulário "keyname = valor".Essas seqüências são separadas por terminadores nulos com dois terminadores nulos consecutivos no final da lista.Esses atributos são principalmente padrão específicos do driver entradas, que vá para o registro para a nova fonte de dados.Uma chave importante que não é mencionada na referência da API do ODBC para essa função é "DSN" ("data source name"), que especifica o nome da nova fonte de dados.O restante das entradas são específicas para o driver para a nova fonte de dados.Geralmente não é necessário fornecer todas as entradas porque o driver pode avisar o usuário com caixas de diálogo para os novos valores.(Definir hwndParent para Nulo para fazer isso.) Convém fornecer explicitamente valores padrão para que o usuário não é solicitado.

Para determinar a descrição de um driver para o parâmetro lpszDriver usando o administrador ODBC

  1. Execute o administrador de ODBC.

  2. Clique em Adicionar.

Isso lhe dá uma lista de drivers instalados e suas descrições.Use esta descrição como o lpszDriver parâmetro.Observe que usar a descrição inteira, como "Arquivos do Excel (*.xls)", incluindo a extensão de nome de arquivo e o parênteses se existirem na descrição.

Como alternativa, você pode examinar o registro (ou, para 16 bits, o arquivo Odbcinst.ini), que contém uma lista de todas as entradas de driver e as descrições na chave do Registro "ODBC Drivers" (ou a seção [Drivers de ODBC] Odbcinst.ini).

Uma maneira de localizar keynames e valores para o lpszAttributes parâmetro é examinar o arquivo Odbc.ini para uma fonte de dados já configurado (talvez um que tenha sido configurado pelo administrador do ODBC).

Para localizar keynames e valores para o parâmetro lpszAttributes

  1. Execute o editor do registro do Windows (ou, para 16 bits, abra o arquivo Odbc.ini).

  2. Localize informações de fontes de dados ODBC usando um dos seguintes:

    • Para 32 bits, localize a chave HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources no painel esquerdo.

      O painel direito lista as entradas do formulário: "pub: REG_SZ:< nome da fonte de dados >", onde < nome da fonte de dados > é uma fonte de dados já foi configurada com as configurações desejadas para o driver que você pretende usar.Selecione a fonte de dados desejada, por exemplo, SQL Server.Os itens a seguir a seqüência de caracteres "pub:" são, na ordem, keyname e valor para usar no seu lpszAttributes parâmetro.

    • Para 16 bits, localize a seção no arquivo Odbc.ini marcado por < nome da fonte de dados >.

      São as linhas a seguir essa linha do formulário "keyname = valor".Essas são exatamente as entradas para usar no seu lpszAttributes parâmetro.

Também convém examinar a documentação do driver específico que você pretende usar.Você pode encontrar informações úteis na Ajuda online do driver, você pode acessar usando o administrador ODBC.Esses arquivos de ajuda geralmente são colocados na pasta WINDOWS\SYSTEM para Windows NT, Windows 3.1 ou Windows 95.

Para obter ajuda online para o seu driver de ODBC

  1. Execute o administrador de ODBC.

  2. Clique em Adicionar.

  3. Selecione o nome do driver.

  4. Clique em OK.

Quando o administrador ODBC exibe as informações para criar uma nova fonte de dados para esse driver específico, clique em Ajuda.Isso abre o arquivo de ajuda para esse driver específico, que geralmente contém informações importantes sobre o uso do driver.

Consulte também

Conceitos

Fonte de dados (ODBC)