自分で考え出した。他の人が利益を得ることができるように、ここに投稿してください。DBGridに移動し、オブジェクトインスペクターで、イベントの下でOnCellClickを選択しました。
procedure TfrmOne.dbgOneCellClick(Column: TColumn);
begin
var
line : integer;
begin
line := DataSource1.DataSet.FieldValues['ID'];
ご覧のとおり、lineは選択した行のフィールド値(この場合はID)を取得します。各行には、データベースからリンク/取得する一意のID(主キー)があります。この主キーを使用して、簡単なIFステートメントを実行しました。
tblOne.Close;
tblOne.Open;
tblOne.First
while not tblOne.Eof do
if tblOne['ID'] = line then
begin
if OpenDialog1.Execute then
{*Insert Code here*}
Exit;
end else
tblOne.Next;
end;
基本的に、2番目のコードで発生するのは、IDが現在のテーブル行と一致することです。一致しない場合、データベースは最終的に一致するまで1行移動します。ここから、その行(DBGridで最初に表示/選択されたもの)を具体的に操作し、フィールド(OLEオブジェクト)を更新できます。
これは、[追加]または[編集]コマンドに代わるものではなく、ユーザーがopendialogを実行して、それらのファイルをDBGridの選択したフィールドに保存できるようにするだけです。データベース(jpeg)に写真を追加するには、blobstreamなどが必要になることに注意してください。完全なガイドはここにあります:http ://delphi.about.com/od/database/l/aa030601a.htm