提示用户输入连接信息

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

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

DSN=XYZ Corp;  

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

提示用户 ID 和密码 的对话框

驱动程序可以提示输入连接信息对于通用和垂直应用程序特别有用。 这些应用程序不应包含特定于驱动程序的信息,而应由驱动程序提示输入所需的信息,从而避免将这些信息包含在应用程序中。 前两个示例显示了这一点。 当应用程序仅将数据源名称传递给驱动程序时,应用程序不包含任何特定于驱动程序的信息,因此未绑定到特定驱动程序。 当应用程序将完整的连接字符串传递给驱动程序时,它绑定到可以解释该字符串的驱动程序。

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

“选择数据源”对话框

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

驱动程序提示用户的条件由 DriverCompletion 标志控制,这些选项包括始终提示、仅在必要时提示或从不提示。 有关此标志的完整说明,请参阅 SQLDriverConnect 函数说明。