Problem pewnie z dziedziny newbe albo poległem. Zapisuję dane do Accesa z pętli a konkretnie dwóch pętlach. Nie wiem z jakiego powodu część danych się nie zapisuje, chociaż wszystkie dane są (sprawdzałem co konkretnie się zapisuje) a w Accesie nie mam żadnych primary kolumn czy innych ograniczeń które mogłyby mi blokowac zapis. Próbowałem zapisywać przez ADOTable i ADOCommand. W obydwu przypadach taki sam rezultat. Kod wygląda mniej więcej tak:
ADOTable.Close;
ADOTable.TableName := 'mojatablica';
ADOTable.Open;
ADOTable.DisableControls;
for i := 0 to 300 do
begin
wyniki := dane[i];
with ADOTable do
for j := 0 to 80 do
begin
Append; //próbowałem też z Insert
FieldByName('pole1').AsInteger := wyniki[j].pole1;
FieldByName('pole2').AsFloat := wyniki[j].pole2;
FieldByName('pole3').AsFloat := wyniki[j].pole3;
Post;
end;
end;
Efekt jest taki że nie dla każdego 'j' zapisuje mi wyniki. I to jest bardzo dziwne bo dla jednego wartości 'i' mam j od 0 do 80 a dla innej np. od 15 do 20, dla kolejnego od 0 do 13. Trochę losowo chociaż w większości 'i' są dla całego zbioru 'j'. Za to te które nie są dla wszystkich wartości 'j' to powtarzają się np. dla i=279 j jest zawsze zapisywane tylko od 3 do 8. Przy zapisie przez ADOCommand mam to samo. Próbowałem dawać Application.ProcessMessages że niby coś się nie zdąża zapisać ale to raczej nie to. Jak wspominałem wrzuciłem sobie messageboxa w pętle i podglądałem np. co się zapisuje do i=279. Wyskoczyło 80 okienek z poprawnymi wartościami a do bazy zapisało jedynie od 3 do 8. HELP!
Przeszukałem sieć i nic nie znalazłem. Ktoś spotkał się z czymś takim?