0

Firebird 2.3 を使用して Delphi 2010 / dbExpress で作成されたマスター / 詳細アプリケーションがあります。問題が見つかりました。

詳細に同一のデータ行が 2 つまたは 3 つ以上ある場合、そのうちの 1 つのデータを変更すると、他の行のデータも変更されます。これは、更新で、invoice_id とシリアルのみがキーとデータとして使用されるためだと思います。どちらの場合も等しい場合、更新は 2 つの場合で行われます。

マスター データ Invoice_id、シリアル、customer_id、日付 1、A、1.12 / 12 / 2010

詳細データ Invoice_id, serial, qty, description, Price 1, A, 10, BOXES OF SOME STUFF, 52.52 1, A, 10, BOXES OF SOME STUFF, 52.52

これを修正するには、フィールド ltes name ir line_no を使用します。このフィールドでは、各行が異なる番号を持つため、次のようにデータを区別して更新できます。

Line_no, Invoice_id, serial, qty, description, Price 1.1, A, 10, BOXES OF SOME STUFF, 52.52 2.1, A, 10, BOXES OF SOME STUFF, 52.52

したがって、情報は同じですが、更新の情報を区別するために line_no もあります

clientdataset で、クライアント側でこれを行う方法を知っている人は誰でも、

どうもありがとうございました

4

1 に答える 1

1

詳細テーブルに主キーがないようです (invoice_id がマスター テーブルへの外部キーであると仮定します。FireBird (または任意の dbExpress 接続データベース) が正しいレコードを更新することを確認するには、主キー (autoinc フィールド) を追加する必要があります)。詳細表へ。

于 2010-12-17T07:45:16.250 に答える