DBGridが以前の状態が保持されたままになり困っています


もも  2009-09-15 02:25:18  No: 35689

いつもお世話になります。
  フォームに貼り付けたDBGridのテーブル切り替えたいのですが、
以下のような現象で困っています。

  DBGridの列状態を保存するため、DBGrid1.Columns.SaveToFile()で
Form3_DBGrid.datというファイルを作成しています。
  DBGrid1.Columns.LoadFromFile()でForm3_DBGrid.datロードした後、
ADOQuery1.SQL.Add()で以前とは別のテーブルに切り替えたいのですが、
以前ロードしたForm3_DBGrid.datのテーブルを保持したままになって
しまいます。
  Form3_DBGrid.datのロードのコーディングを注釈にして無効にすると、
正常に指定したテーブルを表示します。ただ、DBGrid1.Columns.SaveToFile()
とDBGrid1.Columns.LoadFromFile()を使用しなければ、列情報の保存・
復元が出来ません。
  どうすればよいでしょうか?
  どなたかご教授頂けますでしょうか?
-----------------------------------------------------------------------
//--- FORM3:初期表示 ---
procedure TForm3.FormShow(Sender: TObject);
var
  str_wk : string;
begin
  str_wk := 'Form3_DBGrid.dat';
  if FileExists(ExtractFilePath(Application.ExeName) + str_wk) then
    begin
      DBGrid1.Columns.LoadFromFile
                     (ExtractFilePath(Application.ExeName) + str_wk)

    end;

  Form1.ADOQuery1.Close;
  Form1.ADOQuery1.SQL.Clear;
  Form1.ADOQuery1.SQL.Add('SELECT * FROM Main_Table');
  Form1.ADOQuery1.Open;

end;
-----------------------------------------------------------------------


Ru  2009-09-17 23:23:15  No: 35690

テーブル毎に列情報は違うわけでしょうから,
テーブル単位で*.datファイルを切り替えるとか?


HOta  2009-09-18 05:08:40  No: 35691

TDBGridのDataSorceはどこで切り替えていますか?


もも  2009-09-19 01:53:13  No: 35692

Ru 様

  アドバイスありがとうございます。
  datファイル存在チェックを組み合わせて試してみます。


もも  2009-09-19 01:55:30  No: 35693

HOta  様

  アドバイスありがとうございます。
  勉強不足なのでピントのずれた質問と思いますが、テーブルの切り替えはADOQuery1.SQL.Add()の記述を変更するのみと思っておりましたが、何か
不足しておりましたら、どうかご教授下さい。
  また、DBGridでテーブルを切り替える際、よく使うテクニックなどござい
ましたら、ご教授下さい。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加