DBGridにテーブルに存在しない項目を入れたいです。そのあと条件判定に用います。
編集 削除もし、そのレコードの内容から格納データが決まるなら、計算項目を使用する方法がありそうですが、いかがですか?
igyさんありがとうございます。レコードの内容からはデータが決まらないため計算項目は使えないと思ってました。
イメージとしては、テーブルに存在しない項目を作る→ほかのプロシージャーなどでデータを格納していく感じです。
格納したいデータ用に別のテーブルを用意し、Queryを利用して2つのテーブルからDBGridに表示するか、
DBGridをやめて、StringGridを使って表示するなど、考えられますが、いかがでしょうか?
//TCustomDBGrid = class(TCustomGrid)
TCustomDBGrid = class(TStringGrid)
でコンパイルしなおせば DBGrid でも Cells は使えるようになる
Queryを使いました。
DBGridに表示されたレコードに一括で処理をかける方法はありますか?
> Queryを使いました。
> DBGridに表示されたレコードに一括で処理をかける方法はありますか?
格納したいデータ用に別のテーブルを用意したのであれば、
そのテーブルに対し、Updateを使ったSQL文を実行するというのは、いかがですか?
TDBGrid は,基本的にデータセットのデータをグリッド状に表示します.
そのためには TxxTable, TxxQuery などにその項目が必要です.
そのことを示唆しているのが igy さんのレスです.
現在は SQL 文を使用するのが一般的と言えます.
SQL を使用すれば,計算項目も,他の表の項目のデータも,少し面倒ですが,他のデータベースの表のデータも項目として追加できます.
TxxQuery のイベントで SQL で取得する (した) データを処理できます.
計算項目であれば,例えば OnCalcFields というイベントがありますが,イベントの種類にこだわる必要はありません.データが取得処理できさえすれば AfterXXX などのイベントも使えます.
また,ちょっと複雑になりますが,イベントを使用しないで SQL 文だけでも処理できます.
も,SQL に詳しくないのであれば,例えば次のような参考書で勉強されることをお勧めします.
[ はじめての SQL ― 基礎からはじめるデータベース操作 ]
https://www.amazon.co.jp/%E3%81%AF%E3%81%98%E3%82%81%E3%81%A6%E3%81%AESQL%E2%80%95%E5%9F%BA%E7%A4%8E%E3%81%8B%E3%82%89%E3%81%AF%E3%81%98%E3%82%81%E3%82%8B%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E6%93%8D%E4%BD%9C-%E8%90%8C%E6%9C%A8-%E5%B0%A8/dp/4774103349?&camp=759&linkCode=wey&tag=mx0d-22&creative=3827
※ SQL を使用しなければならないと言うことではありません.
> [ はじめての SQL ― 基礎からはじめるデータベース操作 ]
旧版も新版も持っていますが,個人的には旧版の方がいいと思っています.