画面の更新をしたいのですが?(DBGrid)

解決


久美  2003-09-08 23:41:45  No: 4712  IP: [192.*.*.*]

お世話になっております。
{DBGridでひとつのレコードを削除した後に
 DBGridの画面を更新したい(最新の情報に変更したい)
 のですがやり方がわかりません。
 以下は自分で考えたコードですがうまくいきません。
 どなたか、アドバイスをお願いします。}
procedure TForm1.Button1Click(Sender: TObject);
begin
 query2.SQL.Clear;
 query2.sql.Add('DELETE FROM TEST  WHERE(EmpNo='+trim(edit1.Text)+')');                                        
 query2.ExecSQL;
 form1.Refresh;
 DBgrid1.Refresh;
end;

編集    削除
通りすがり  2003-09-09 01:49:59  No: 4713  IP: [192.*.*.*]

以前「DBGridが空になってしまいます??」で
にしのさんがレスした方法ではダメだったのでしょうか。

もしかして DBGrid1 に接続している DataSet は query2 なのでしょうか?
そうならば、
ExecSQL 後 query2 に SELECT 文を記述し Open しなければならないのでは...

勘違いでしたら、ごめんなさい.

編集    削除
masayan  2003-09-09 02:48:30  No: 4714  IP: [192.*.*.*]

TQueryの内容をDBGridで表示している場合、TQueryをCloseしてOpenしなおさないと表示は更新されないと思います。

ただし、更新した後にDBGridのカーソルが先頭行になってしまうので、TQueryをCloseする前にレコード位置(主キーの値を記録するなど)を確認してOpen後にTQueryのカレントレコードを移動する必要があると思います。

編集    削除
久美  2003-09-09 03:17:19  No: 4715  IP: [192.*.*.*]

皆様ありがとうございました。
解決することができました。
まだ初心者で、TQueryをCloseしてOpenをうまく
プログラムに組めていなかったようです。
ありがとうございました。

編集    削除