Borland C++ Builder6での話なんだけど。。
ソースの記述どおりにコンパイルされないってこと、ありますか?

ODBCでMS-Accessデータベース(ユーザ名なし、パスなし)にログインさせようと
  thDB_wk->DatabaseName = "sample_db" ;
*1 thDB_wk->Params->Add( "USER NAME=" ) ;
*1 thDB_wk->Params->Add( "PASSWORD=" ) ;
  thDB_wk->LoginPrompt = false;
としたんです。
ユーザ名とパスワードに、なにか文字をいれても
(例) thDB_wk->Params->Add( "USER NAME=ほげほげ" ) ;
*1の2文を削除しても
LoginPromptをtrueにしても、オブジェクトファイルを削除や全コンパイルしても、
なにをどうしてもログインダイアログが出なくて、
ソースの記述を変更せずにフォームを1つ追加すると、ダイアログが出るようになるんです。
なにがなんだかわからないと思う。

ヘルプを読むと、LoginPromptの値で、ダイアログの出る/出ないが決まるらしいんだけど
それがどうコンパイルしても反映されず、常時出ないコンパイルされてしまうんです。
にもかかわらず、フォームを1つ追加するだけで、loginPromptの値が反映されるようになる。

わけわかんないですよね。
ソースの記述通りにコンパイルされないと、使うのが怖くなります。