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) por meio de programação. Isso permite flexibilidade para acessar dados sem obrigar o usuário a usar explicitamente o administrador do ODBC ou outros programas para especificar os nomes das fontes de dados.
Normalmente, um usuário executa o administrador do 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 por meio do administrador do ODBC, você terá duas opções: Você pode selecionar um arquivo. mdb existente, ou você pode criar um novo arquivo. mdb. Não há nenhuma maneira programática de criar o arquivo. mdb do seu aplicativo MFC ODBC. Portanto, se seu aplicativo requer que você coloque os dados em uma fonte de dados do Microsoft Access (arquivo. mdb), é provável que tenha um arquivo. mdb de vazio que você pode usar ou copiar sempre que precisar.
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 fonte de dados é armazenada em um arquivo separado (no caso do dBASE, cada tabela é um arquivo. dbf). Drivers para outros bancos de dados ODBC, como, por exemplo, o Microsoft Access e SQL Server, exigem que alguns critérios específicos ser atendidas antes de 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 a :: SQLConfigDataSource a função de API do ODBC para criar uma nova fonte de dados do Excel chamada 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 a fonte de dados: Programaticamente, criando 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 ODBC. Para usar :: SQLConfigDataSource, você deve incluir o arquivo de cabeçalho de Odbcinst.h e usar a biblioteca de importação de Odbcinst.lib. Além disso, Odbccp32. dll deve ser o caminho em tempo de execução (ou Odbcinst para 16 bits).
Você pode criar um nome de fonte de dados ODBC usando o administrador de 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 ODBC Driver Manager consulta este arquivo para obter as informações necessárias sobre a fonte de dados. É importante saber quais informações precisam ser colocado no registro, pois você precisa fornecer a ele com a chamada para :: SQLConfigDataSource.
Embora essa informação poderia sejam gravada diretamente no 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 ODBC Driver Manager implementa mantendo 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ável de 16 bits para 32 bits se você usar o :: SQLConfigDataSource funcionar, porque a função corretamente grava o arquivo Odbc.ini ou no registro.
Parâmetros de SQLConfigDataSource
A seguir explica os parâmetros da :: SQLConfigDataSource função. Muitas das informações é obtida da API do ODBC referência do programador fornecido com o Visual C++ versão 1.5 e posterior.
Protótipo de função
BOOL SQLConfigDataSource(HWND hwndParent,UINT fRequest, LPCSTR lpszDriver, LPCSTR lpszAttributes);
Remarks
Parâmetros e uso
hwndParent
A janela especificada como o proprietário de quaisquer caixas de diálogo Gerenciador de Driver ODBC ou de driver ODBC específico cria para obter informações adicionais do usuário sobre a nova fonte de dados. Se a lpszAttributes parâmetro não fornecer 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 de usar o nome do driver física (DLL).lpszAttributes
Lista de atributos no formulário "keyname = value". Essas cadeias de caracteres são separadas por terminadores nulos com dois terminadores consecutivos de nulos no final da lista. Esses atributos são principalmente específica do driver entradas padrão, que vá para o registro da nova fonte de dados. Uma chave importante não mencionados na referência da API do ODBC para essa função é "dsn" ("fonte de dados nome"), que especifica o nome da nova fonte de dados. O restante das entradas são específicos para o driver para a nova fonte de dados. Geralmente não é necessário fornecer todas as entradas, porque o driver pode solicitar que o usuário com caixas de diálogo para os novos valores. (Definir hwndParent para Nulo para fazer isso.) Talvez você queira fornecer explicitamente os valores padrão para que o usuário não será solicitado.
Para determinar a descrição de um driver para o parâmetro lpszDriver usando o administrador de ODBC
Execute o administrador do ODBC.
Click Add.
Isso lhe dá uma lista de drivers instalados e suas descrições. Use essa descrição de como o lpszDriver parâmetro. Observe que você use a descrição completa, como, por exemplo, "Arquivos do Excel (*.xls)", incluindo a extensão de nome de arquivo e parênteses, se existirem na descrição.
Como alternativa, você pode examinar o registro (ou, para o arquivo de Odbcinst.ini de 16 bits), 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 ODBC] Odbcinst.ini).
Uma maneira de localizar os keynames e os 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
Executar o editor do registro do Windows (ou, para 16 bits, abra o arquivo de Odbc.ini).
Localize as informações de fontes de dados ODBC usando um destes procedimentos:
Para 32 bits, encontrar a chave HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources no painel esquerdo.
O painel direito lista de 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 desejado, por exemplo, o SQL Server. Os itens a seguir a seqüência de caracteres "pub:" são, na ordem, keyname e valor para usar em seu lpszAttributes parâmetro.
De 16 bits, localize a seção no arquivo Odbc.ini marcado por < nome da fonte de dados >.
As linhas que esta linha a seguir são do formulário "keyname = value". Essas são exatamente as entradas para usar em 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, executando o administrador do ODBC. Esses arquivos de ajuda geralmente são colocados no diretório WINDOWS\SYSTEM para Windows 95, Windows 3.1 ou Windows NT.
Para obter ajuda on-line para seu driver de ODBC
Execute o administrador do ODBC.
Click Add.
Selecione o nome do driver.
Click OK.
Quando o administrador do ODBC exibe as informações para criar uma nova fonte de dados para esse driver específico, clique em Help. Isso abre o arquivo de ajuda para esse driver específico, que geralmente contém informações importantes sobre o uso do driver.