Если я вас правильно понял, вы хотите ввести несколько значений для [Item Name]
и равное количество значений для [stock in]
и [stock out]
И затем вы хотите найти запись, соответствующую каждомузначение для [Item Name]
и обновить его в вашей базе данных
Один вариант будет использовать 3 Memo controls
вместо 3 Edit controls
, тогда вы можете набрать несколько значений одновременно.
Теперь все вынужно поместить код, который у вас уже есть, в цикл, который читает все значения из первой заметки.
вот пример
var
i: integer;
begin
ADOQuery1.Open;
for i := 0 to MemoItemNames.Lines.Count - 1 do
begin
// ALWAYS test if the record can be located, else you are editing a random record !!!!
if ADOQuery1.Locate('Item name', MemoItemNames.Lines[i], [])) then
begin
ADOQuery1.Edit;
ADOQuery1.FieldValues['stock in'] := MemoStockIn.Lines[i];
ADOQuery1.FieldValues['stock out'] := MemoStockOut.Lines[i];
ADOQuery1.post;
end;
end;
Это требует дополнительного кодирования вне курса, чтобыпроверьте, является ли что-либо действительным, например, число строк в каждой заметке должно быть одинаковым, или формат значения stock in
и т. д. ...
Возможно, существуют более эффективные решения вашей проблемыпоэтому, если вы сообщите нам, какую проблему вы пытаетесь решить, возможно, мы можем предложить более элегантное решение