レコードの操作

InterBase7.5で作ったデータベースを、Delphiから表示させることができました。
やっと入り口に立てたところかな。

今度はレコードの操作をやってみます。
実は、便利なコンポーネントがあるんですよ。「TDBNavigator」コンポーネントです。
↓こんなボタンの集合体です。

interbase-24

しかし、ここでは勉強なので、ボタンを作って、ボタンをクリックしたときに作業するようにプログラムを書いてみようと思います。
こんな便利なのがあるんだから、実際はこれを使うほうが楽だと思いますが・・・
ボタンを5個配置しました。「TButton」コンポーネントです。

interbase-25

ボタンの上でダブルクリックをすると、イベントプロシジャーが開きますので、それぞれのイベントにコードを書きます。

プログラムのソース

//1つ前のレコードへ移動
procedure TfrmMain.btnAddClick(Sender: TObject);
begin
  //レコードを追加する
  DataModule2.tblAddress.Append;
end;

procedure TfrmMain.btnBackClick(Sender: TObject);
begin
  //1つ前のレコードへ移動
 DataModule2.tblAddress.Prior;
end;

procedure TfrmMain.btnDeleteClick(Sender: TObject);
begin
  if MessageDlg('削除してもいいですか?',mtConfirmation,
    [mbYes,mbNo],0) = mrYes then
    DataModule2.tblAddress.Delete;//レコードの削除
end;

//次のレコードへ移動
procedure TfrmMain.btnNextClick(Sender: TObject);
begin
  DataModule2.tblAddress.Next;
end;

procedure TfrmMain.btnSaveClick(Sender: TObject);
begin
  //データを保存する
  DataModule2.tblAddress.ApplyUpdates(-1);
end;

フィルターをかける

フィルターをかけるというのは、「指定したデータを探して取り出す」ということです。
一番簡単そうなヤツをやってみようと思います。

メインフォームの上のほうに、[TLabel]2つと[TEdit]を1つ[TButton]を2つ配置します。
「選択」「解除」のイベントプロシージャに次のコードを入力します。

  //フィルターを解除する
  DataModule2.tblAddress.Filtered := False;
  //名前でフィルター(選択)する
  DataModule2.tblAddress.Filter := 'NAME=''' + edtName.Text + '''';
  DataModule2.tblAddress.Filtered := True;

実行結果

interbase-26

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です