Dlaczego TFDMemTable.POST robi NEXT

Dlaczego TFDMemTable.POST robi NEXT
woolfik
  • Rejestracja:ponad 17 lat
  • Ostatnio:około 4 godziny
  • Postów:1598
0

Witajcie

Mam dziwne zachowanie TFDMemTable. Ten sam kod (poniżej) inaczej zachowuje się u mnie, inaczej u pozostałych developerów

Kopiuj
procedure TKBSSRUIFramePatternsAttributes.OnEditPattern(
  const pPatternName: string);
begin
    FDSMemTable.DisableControls;
    try
        FDSMemTable.First;
        while not FDSMemTable.Eof do
        begin
            FDSMemTable.Edit;
            FDSMemTable.FieldByName('pPatternName').AsString := pPatternName;
            FDSMemTable.Post;
//            FDSMemTable.Next;  //tu jest problem
        end;
    finally
        FDSMemTable.EnableControls;
    end;
end;

Chodzi o ten fragment FDSMemTable.Next. Na moim komputerze FDSMemTable.Post; powoduje automatycznie NEXT dlatego FDSMemTable.Next jest zakomentowane. W efekcie dla np 4 rekordów w FDSMemTable mam 4 iteracje pętli. Niestety u innych developerów ten sam kod powoduje niekończącą się pętlę. Dodam, że wcześniej next był ale dla 4 rekordów w FDMemTable iteracje miałem tylko 2 dlatego NEXT został zakomentowany. Czy możecie coś podpowiedzieć?

PD
  • Rejestracja:ponad 22 lata
  • Ostatnio:10 minut
1

wg info na necie Unidirectional dla tabeli musi być ustawion na False: http://docwiki.appmethod.com/appmethod/1.13/topics/en/TFDMemTable_Questions


pozdrawiam
paweld
robertz68
  • Rejestracja:ponad 18 lat
  • Ostatnio:11 minut
  • Lokalizacja:Zielona Góra
2

także uważam że to kwestia ustawień kontrolki w Object Inspektorze chociaż nie rozumiem dlaczego miałyby być inne ustawienia u różnych developerów. No chyba że to nie jest ten sam projekt a tylko skopiowany kawałek kodu.

woolfik
  • Rejestracja:ponad 17 lat
  • Ostatnio:około 4 godziny
  • Postów:1598
0

Dzięki za podpowiedź ale to chyba nie to. Może też wpływ ma na to fakt, że FDSMemTable ma ustawione filtered = true i filter := 'patternname = ' + pPatternName ?

abrakadaber
abrakadaber
  • Rejestracja:prawie 13 lat
  • Ostatnio:9 miesięcy
  • Postów:6610
2

a nie jest tak, że jak zmienisz wartość pola to się nie łapie do wyfiltrowanych rekordów i automatycznie przechodzi do następnego?


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.
woolfik
  • Rejestracja:ponad 17 lat
  • Ostatnio:około 4 godziny
  • Postów:1598
0
abrakadaber napisał(a):

a nie jest tak, że jak zmienisz wartość pola to się nie łapie do wyfiltrowanych rekordów i automatycznie przechodzi do następnego?

Tak i nie. Faktycznie przy ustawionym filter i zmianie tej wartości automatycznie zmniejsza się count i faktycznie przechodzi do następnego rekordu ale tylko u mnie. U innego developera efekt jest taki, że pętla while jest nieskończona i nie wiem dlaczego. Ogólnie problem już rozwiązałem robiąc trochę obejście na około dlatego nie będę się nim chwalił ale jakby główny problem dalej pozostał i nie wiem z czego on wynika.

edytowany 1x, ostatnio: woolfik

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.