Условие на редактирование записей

Bora2015
Дата: 30.07.2019 19:19:20
Здравствуйте!

if  not Table2.Locate('Isid',Table1.FieldByName('Projid').AsInteger,[]) then
      begin
   for i:=0 to n do
  begin
  Table2.Insert;
         Table3.FieldByName('Cy1').AsString:=floattostr(Cy1[i]);
.........
 Table2.Post;
end;
end
else
begin
 for i:=0 to n  do
  begin
         Table2.Edit;
Table2.FieldByName('Cy1').AsString:=floattostr(Cy1[i]);
.........
 Table2.Post;
end;
end;

Не понятно почему заменяется только первый элемент массива на последний. Когда в Table2 в столбце Isid находятся значения Projid, то по условию else должно замениться все элементы, а заменяется новым (причем последним элементом) только первый элемент.
Или вместо
if  not Table2.Locate('Isid',Table1.FieldByName('Projid').AsInteger,[])
условия надо другое?
Dimitry Sibiryakov
Дата: 30.07.2019 19:30:03

Bora2015
а заменяется новым (причем последним элементом)

Ну так перечитай свой цикл внимательно. Ты сам обновляешь одно и то же поле всеми
значениями из массива последовательно. Естественно выживает только одно (последнее).

Posted via ActualForum NNTP Server 1.5

Gator
Дата: 30.07.2019 19:48:52
+ Когда ж вы кнопку SRC нажимать будете?
if not Table2.Locate('Isid',Table1.FieldByName('Projid').AsInteger,[]) then
begin
  for i:=0 to n do
    begin
      Table2.Insert;
      Table3.FieldByName('Cy1').AsString:=floattostr(Cy1[i]);
//.........
      Table2.Post;
    end;
  end
else
begin
  for i:=0 to n do
  begin
    Table2.Edit;
    Table2.FieldByName('Cy1').AsString:=floattostr(Cy1[i]);
//.........
    Table2.Post;
  end;
end;

Bora2015
Дата: 30.07.2019 20:46:04
Gator,
Не заметил
Bora2015
Дата: 30.07.2019 20:48:26
Dimitry Sibiryakov
Bora2015
а заменяется новым (причем последним элементом)

Ну так перечитай свой цикл внимательно. Ты сам обновляешь одно и то же поле всеми
значениями из массива последовательно. Естественно выживает только одно (последнее).

А как правильно?
DimaBr
Дата: 30.07.2019 21:37:37
Правильно обновлять значения ЗАПРОСОМ
Dimitry Sibiryakov
Дата: 30.07.2019 22:06:03

DimaBr
ЗАПРОСОМ

Запрос это не очень хорошая идея при использовании локальных навигационных СУБд класса BDE.

Posted via ActualForum NNTP Server 1.5

DimaBr
Дата: 30.07.2019 22:23:23
Dimitry Sibiryakov
Запрос это не очень хорошая идея при использовании локальных навигационных СУБд класса BDE.

Точно !!! Лучше 100 раз сделать Edit/Post !!!
Dimitry Sibiryakov
Дата: 30.07.2019 22:28:17

DimaBr
Лучше 100 раз сделать Edit/Post !!!

В названном случае - да. Потому что всё всё равно сведётся к этому, только не будет лишних
прокладок.

Posted via ActualForum NNTP Server 1.5

white_nigger
Дата: 30.07.2019 22:41:54
Bora2015
А как правильно?
Правильно пробегать по записям, а не менять одну и ту же