提示用户输入连接信息

如果应用程序使用 SQLConnect,并且需要提示用户输入任何连接信息(如用户名和密码),则必须自行执行此操作。 虽然这使应用程序能够控制其“外观”,但它可能会强迫应用程序包含特定于驱动程序的代码。 当应用程序需要提示用户输入特定于驱动程序的连接信息时,将发生这种情况。 这为泛型应用程序带来了不可能的情况,这些应用程序旨在处理任何和所有驱动程序,包括编写应用程序时不存在的驱动程序。

SQLDriverConnect 可以提示用户输入连接信息。 例如,前面提到的自定义程序可以将以下连接字符串传递给 SQLDriverConnect

DSN=XYZ Corp;  

然后,驱动程序可能会显示提示用户 ID 和密码的对话框,如下图所示。

Dialog box that prompts for user IDs and passwords

驱动程序可以提示输入连接信息的功能对于泛型和垂直应用程序特别有用。 这些应用程序不应包含特定于驱动程序的信息,让驱动程序提示输入它所需的信息可以将这些信息排除在应用程序之外。 如前面两个示例所示。 当应用程序仅将数据源名称传递给驱动程序时,应用程序不包含任何特定于驱动程序的信息,因此未绑定到特定驱动程序。 当应用程序将完整的连接字符串传递给驱动程序时,它将绑定到可以解释该字符串的驱动程序。

泛型应用程序可能更进一步,甚至不指定数据源。 当 SQLDriverConnect 收到空连接字符串时,驱动程序管理器将显示以下对话框。

Select Data Source dialog box

用户选择数据源后,驱动程序管理器将构造一个指定该数据源的连接字符串,并将其传递给驱动程序。 然后,驱动程序可以提示用户提供所需的任何其他信息。

驱动程序提示用户所处的条件受 DriverCompletion 标志控制;有始终提示、在必要时提示或从不提示等选项。 有关此标志的完整说明,请参阅 SQLDriverConnect 函数说明。