Solicitar o usuário para informações de conexão
Se o aplicativo usa SQLConnect e precisa solicitar ao usuário qualquer informação de conexão, como nome de usuário e senha, ele mesmo deve fazer isso. Embora isso permita que o aplicativo controle sua "aparência", pode forçar o aplicativo a conter código específico do driver. Isso acontece quando o aplicativo precisa solicitar ao usuário informações de conexão específicas do driver. Isso apresenta uma situação impossível para aplicativos genéricos, que são projetados para funcionar com todo e qualquer driver, incluindo aqueles que não existem quando o aplicativo é escrito.
O SQLDriverConnect pode solicitar informações de conexão ao usuário. Por exemplo, o programa personalizado mencionado antes poderia passar a seguinte cadeia de conexão para SQLDriverConnect:
DSN=XYZ Corp;
O driver então pode exibir uma caixa de diálogo que solicita IDs de usuário e senhas, semelhante à ilustração a seguir.
O driver poder solicitar informações de conexão é particularmente útil para aplicativos genéricos e verticais. Esses aplicativos não devem conter informações específicas do driver, e fazer o driver solicitar as informações necessárias mantém essas informações fora do aplicativo. Isso é mostrado pelos dois exemplos anteriores. Quando o aplicativo passava apenas o nome da fonte de dados para o driver, o aplicativo não continha nenhuma informação específica do driver, portanto, não estava vinculado a um driver específico. Quando o aplicativo passou uma cadeia de conexão completa para o driver, ele foi vinculado ao driver que poderia interpretá-la.
Um aplicativo genérico pode levar isso além e nem mesmo especificar uma fonte de dados. Quando o SQLDriverConnect recebe uma cadeia de conexão vazia, o Gerenciador de Driver exibe a seguinte caixa de diálogo.
Depois que o usuário seleciona uma fonte de dados, o Gerenciador de Driver constrói uma cadeia de conexão especificando essa fonte de dados e a passa para o driver. O driver então pode solicitar ao usuário qualquer informação adicional de que ele precise.
As condições sob as quais o driver solicita ao usuário são controladas pelo sinalizador DriverComplete; há opções para sempre solicitar, avisar se necessário ou nunca solicitar. Para obter uma descrição completa desse sinalizador, confira a descrição da função SQLDriverConnect.