TDataSet.FindKeyを使用すると、レコードを見つけることができます。Trueの場合、データセットカーソルは見つかったレコードに配置されます。Falseになると、カーソルは移動しません。これにより、FindKeyが発行される前のレコードデータがデータ対応コンポーネントに表示されます。
FindKeyの結果をコーディングして、空のレコードを返すにはどうすればよいですか?
if Not tblSomeTable.FindKey([SomeSearchData]) then
begin
< code to return empty or move data cursor to neutral position >
end;
更新:(それは習慣であり、それ以上のフィードバックを思いとどまらせたくなかったので、正しい答えを選択する前に数日待っていました。)正しい答えはマルセロからのものであると私は信じていますが、この状況に取り組むためのいくつかの提案がありましたカーソルをレコード上に置かないようにすることはできません。いくつかの回避策が提案されました。私は自分のものを選びました。それは次のようになりました:
If Not tblSomeTable.FindKey([SomeSearchData]) then
begin
tblSomeTable.FindKey([-1,2010]);
end
私が行ったことは、実際のデータにはなり得ないインデックスを使用して、ダミーの空白のレコードを作成することです。つまり、最初のインデックス値が-1になることはありません。最初の検索が空になると、FindKeyはこの空のレコードにカーソルを置きます。これは私が求めていた視覚効果を提供します。