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.

Dialog box that prompts for user IDs and passwords

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.

Select Data Source dialog box

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.