У меня есть приложение master / detail, написанное на Delphi 2010 / dbExpress с использованием firebird 2.3. Я обнаружил проблему.
Если у меня есть две или три или более идентичных строк данных в деталях, изменение любых данных в одной из них также изменяет данные в других строках, я думаю, это связано с тем, что обновление использует только invoice_id и serial в качестве ключей и данных одинаково в обоих случаях, обновление выполняется в двух случаях.
Основные данные Invoice_id, serial, customer_id, date 1, A, 1.12 / 12/2010
Подробные данные Invoice_id, серийный номер, количество, описание, Цена 1, A, 10, КОРОБКИ НЕКОТОРЫХ ВЕЩЕСТВ, 52,52 1, A, 10, КОРОБКИ НЕКОТОРЫХ ВЕЩЕСТВ, 52,52
Думаю, я могу исправить это, используя поле ltes name ir line_no, в котором каждая строка будет иметь другой номер, и поэтому данные можно будет различить, чтобы сделать обновление следующим образом:
Line_no, Invoice_id, serial, qty, description, Price 1.1, A, 10, КОРОБКИ НЕКОТОРЫХ ВЕЩЕСТВ, 52.52 2.1, A, 10, КОРОБКИ НЕКОТОРЫХ ВЕЩЕСТВ, 52.52
Таким образом, информация такая же, но у нее также есть line_no, чтобы различать информацию в обновлении.
Кто угодно знает, как это сделать на стороне клиента, в наборе clientdataset,
Большое спасибо и привет