Escolher uma fonte de dados ou um driver
A fonte de dados ou o driver usado por um aplicativo às vezes é embutido em código no aplicativo. Por exemplo, um aplicativo personalizado escrito por um departamento MIS para transferir dados de uma fonte de dados para outra conteria os nomes dessas fontes de dados; o aplicativo simplesmente não funcionaria com nenhuma outra fonte de dados. Outro exemplo é um aplicativo vertical, como um usado para entrada de ordem. Esse aplicativo sempre usa a mesma fonte de dados, que tem um esquema predefinido conhecido pelo aplicativo.
Outros aplicativos selecionam a fonte de dados ou o driver em tempo de execução. Normalmente, eles são aplicativos genéricos que fazem consultas de ad hoc, como uma planilha que usa o ODBC para importar dados. Esses aplicativos geralmente listam as fontes de dados ou drivers disponíveis e permitem que os usuários escolham com quais desejam trabalhar. Um aplicativo genérico pode listar fontes de dados, drivers ou ambos frequentemente dependendo se o aplicativo usa drivers baseados em DBMS ou em arquivo.
Os drivers baseados em DBMS geralmente exigem um conjunto complexo de informações de conexão, como o endereço de rede, o protocolo de rede, o nome do banco de dados e assim em diante. O objetivo de uma fonte de dados é ocultar todas essas informações. Portanto, o paradigma de fonte de dados é adequado para ser usado com drivers baseados em DBMS. Um aplicativo pode exibir uma lista de fontes de dados para o usuário de duas maneiras. Ele pode chamar SQLDriverConnect com a palavra-chave DSN (Nome da fonte de dados) e sem valor associado. O Gerenciador de Driver exibirá uma lista dos nomes da fonte de dados. Se o aplicativo quiser controle sobre a aparência da lista, ele chamará SQLDataSources para recuperar uma lista de fontes de dados disponíveis e construirá sua própria caixa de diálogo. Esta função é implementada pelo Gerenciador de Driver e pode ser chamada antes de qualquer driver ser carregado. Em seguida, o aplicativo chama uma função de conexão e passa a ela o nome da fonte de dados escolhida.
Se uma fonte de dados não for especificada, a fonte de dados padrão indicada pelas informações do sistema é usada. (Para obter mais informações, consulte Subchave padrão). Se SQLConnect for chamado usando um argumento ServerName que não pode ser encontrado, é um ponteiro nulo ou é "PADRÃO", o Gerenciador de Driver se conecta à fonte de dados padrão. A fonte de dados padrão também é usada se a cadeia de conexão usada em uma chamada para SQLDriverConnect ou SQLBrowseConnect contiver a palavra-chave DSN definida como "PADRÃO" ou se a fonte de dados especificada não for encontrada. Além disso, a fonte de dados padrão será usada se a cadeia de conexão usada em uma chamada para SQLDriverConnect não contiver a palavra-chave DSN.
Com drivers baseados em arquivo, é possível usar um paradigma de arquivo. Para dados armazenados no computador local, os usuários frequentemente sabem que seus dados estão em um arquivo específico, como Employee.dbf. Em vez de selecionar uma fonte de dados desconhecida, é mais fácil para esses usuários selecionar o arquivo que conhecem. Para implementar isso, o aplicativo primeiro chama SQLDrivers. Esta função é implementada pelo Gerenciador de Driver e pode ser chamada antes de qualquer driver ser carregado. SQLDrivers retorna uma lista de drivers disponíveis e também retorna valores para as palavras-chave FileUsage e FileExtns. A palavra-chave FileUsage explica se os drivers baseados em arquivo tratam os arquivos como tabelas, como o Xbase, ou como bancos de dados, como o Microsoft Access. A palavra-chave FileExtns lista as extensões de nome de arquivo que o driver reconhece, como .dbf para um driver do Xbase. Usando essas informações, o aplicativo constrói uma caixa de diálogo pela qual o usuário escolhe um arquivo. Com base na extensão do arquivo escolhido, o aplicativo se conecta ao driver chamando SQLDriverConnect com a palavra-chave DRIVER.
Não há nada que impeça o aplicativo de usar uma fonte de dados com um driver baseado em arquivo ou chamar SQLDriverConnect com a palavra-chave DRIVER para se conectar a um driver baseado em DBMS. Aqui temos vários usos comuns da palavra-chave DRIVER para drivers baseados em DBMS.
Não criar fontes de dados Por exemplo, um aplicativo personalizado pode usar um driver e banco de dados específicos. Se o nome do driver e todas as informações necessárias para se conectar ao banco de dados estiverem embutidas em código no aplicativo, os usuários não precisarão criar uma fonte de dados no computador para executar o aplicativo. É necessário apenas instalar o aplicativo e o driver.
Uma desvantagem desse método é que o aplicativo deve ser recompilado e redistribuído se as informações de conexão forem alteradas. Se um nome da fonte de dados estiver embutido em código no aplicativo em vez de informações de conexão completas, cada usuário deve alterar apenas as informações na fonte de dados.
Acessando um DBMS específico uma única vez. Por exemplo, uma planilha que recupera dados chamando funções do ODBC pode conter a palavra-chave DRIVER para identificar um driver específico. Como o nome do driver é significativo para todos os usuários que têm esse driver, a planilha pode ser passada entre esses usuários. Se a planilha contivesse um nome da fonte de dados, cada usuário teria que criar a mesma fonte de dados para usar a planilha.
Procurando todos os bancos de dados acessíveis por um driver específico no sistema. Para obter mais informações, consulte Conectando-se com SQLBrowseConnect, mais adiante nesta seção.