いつもお世話になります。
フォームに貼り付けた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;
-----------------------------------------------------------------------
テーブル毎に列情報は違うわけでしょうから,
テーブル単位で*.datファイルを切り替えるとか?
TDBGridのDataSorceはどこで切り替えていますか?
Ru 様
アドバイスありがとうございます。
datファイル存在チェックを組み合わせて試してみます。
HOta 様
アドバイスありがとうございます。
勉強不足なのでピントのずれた質問と思いますが、テーブルの切り替えはADOQuery1.SQL.Add()の記述を変更するのみと思っておりましたが、何か
不足しておりましたら、どうかご教授下さい。
また、DBGridでテーブルを切り替える際、よく使うテクニックなどござい
ましたら、ご教授下さい。
ツイート | ![]() |