コードベースのコンポーネント ファイルには次のものがあります。
{$IFDEF ADO}
FDatabase : TADODatabase;
{$ELSE}
FDatabase : TODBCDatabase;
{$ENDIF}
その理由は、さまざまなレガシー アプリケーションで、いずれかのタイプのデータベース接続と一連のクラスが使用されるためです。
ただし、新しいマシンの構成中に、条件が考慮されていないようです。プロジェクト設定では、「ADO;DEBUG」と表示されていますが、上記のコードを代わりに odbc タイプでコンパイルします。
奇妙なことは、それが一貫していないということです。同じプロジェクトの一部として構築された 2 つの異なるユニットは、別々の設定を使用します。つまり、ある場所では条件文が表示され、別の場所では表示されません。
間違ってコンパイルされたファイルには、{$UNDEF または同様のディレクティブがなく、ファイルも含まれていません。
ここで何が欠けていますか?
解決済み (うーん) : そうです、Delphi は頭がおかしくなっているだけです。
これらが見つかりました:
どちらも「Platform=BNB」設定について言及しています。診断出力を有効にすると、正確な値が表示されます。そのため、記事に従ってそれを上書きしようとしますが、運が悪く、まだ BNB です。次に、プロジェクト設定に移動し、そこでもオーバーライドできることが判明したので、それも行いますが、まだうまくいきません。
Delphi インストーラーなどによって、オペレーティング システム レベルで「Platform=BNB」環境変数が追加され、それが削除され、Delphi が再起動されたことが判明しました。すべて問題ありません。
まあ、期待できるのと同じように。ただし、まだ Delphi を使用する必要があります。