プログラムファイルディレクトリのサブフォルダにデータベースファイルを保存するアプリケーションがあります。これらのファイルは、VistaおよびWindows 7のVirtualStoreにリダイレクトされます。MicrosoftDataReports(VB6)を使用してデータベースからのデータを表します。ここまでは順調ですね。
ただし、CrystalReportsXIを使用してデータベースのデータを表す必要があります。私たちのアイデアは、このデータをプログラムからCRに渡すのではなく、ODBCを介してシステムDSNを使用してデータベースからCRにデータを取得させることです。このようにして、ユーザーが独自のレポートをより柔軟に設計できるようにしたいと考えています。ただし、ユーザーがプログラムをインストールしたとき、またはプログラムがCrystal Reportを呼び出したときに、これらのシステムDSNが正しく構成されていることを確認したいと思います。
たとえば、OSのバージョン、OSでUACが有効になっているかどうか、Program Filesフォルダーの書き込み制限が解除されているかどうかをチェックするルーチンを作成する代わりに、システム変数を使用してこれを行うスマートな方法はありますか?次に、C:\ Program Files \ OurApp \ DataフォルダーまたはC:\ Users \ User \ AppData \ VirtualStore \ Program Files \ OurApp \ Dataフォルダーのいずれかを指すようにシステムDSNを調整しますか?
まったく異なるアプローチの提案も歓迎します!