接続情報をユーザーに確認する
アプリケーションが SQLConnect を使用していて、ユーザー名やパスワードなどの接続情報をユーザーに求める必要がある場合は、それ自体で行う必要があります。 これにより、アプリケーションはその「外観」を制御できるようになりますが、アプリケーションにドライバー固有のコードを含めることが強制される可能性があります。 これは、アプリケーションがドライバー固有の接続情報をユーザーに求める必要がある場合に発生します。 これは、アプリケーションの作成時に存在しないドライバーも含め、あらゆるドライバーで動作するように設計された汎用アプリケーションでは不可能な状況になります。
SQLDriverConnect は、ユーザーに接続情報の入力を求めることができます。 たとえば、前述のカスタム プログラムでは、次の接続文字列を SQLDriverConnect に渡すことができます。
DSN=XYZ Corp;
次の図のように、ドライバーにユーザー ID とパスワードの入力を求めるダイアログ ボックスが表示される場合があります。
ドライバーが接続情報の入力を求めることができるのは、汎用アプリケーションやバーティカル アプリケーションに特に役立ちます。 これらのアプリケーションにはドライバー固有の情報を含めず、必要な情報を求めるドライバー プロンプトを表示すると、その情報はアプリケーションから保護されます。 これは、上記の 2 つの例で示されています。 アプリケーションがデータ ソース名のみをドライバーに渡した場合、アプリケーションにはドライバー固有の情報が含まれなかったため、特定のドライバーに関連付けられませんでした。 アプリケーションが完全な接続文字列をドライバーに渡すと、その文字列を解釈できるドライバーに関連付けられていました。
汎用アプリケーションでは、これをさらに 1 ステップ進めて、データ ソースを指定しない場合もあります。 SQLDriverConnect が空の接続文字列を受け取ると、ドライバー マネージャーに次のダイアログ ボックスが表示されます。
ユーザーがデータ ソースを選択すると、ドライバー マネージャーは、そのデータ ソースを指定する接続文字列を構築し、ドライバーに渡します。 その後、ドライバーは、必要な追加情報をユーザーに求めることができます。
ドライバーがユーザーにプロンプトを表示する条件は、DriverCompletion フラグによって制御され、常にプロンプトを表示したり、必要に応じてプロンプトを表示したり、プロンプトを表示したりしないオプションがあります。 このフラグの詳細については、SQLDriverConnect 関数の説明を参照してください。