Koledzy
Niby prosta rzecz, a nie mogę sobie z nią poradzić.
Mam plik .xml z zapisanymi w nim danymi.
Dane dodaję do niego za pomocą komponentu clientdataset.
Dodaje je tak:
clientdataset1.active:=true;
clientdataset1.Append;
clientdataset1.fields[1].asstring:=cos_tam;
clientdataset1.post;
clientdataset1.active:=false;
Wszystko ładnie się dodaje, jak chcę usunąć to wybieram numer rekordu i usuwam poprzez clientdataset1.delete i wszystko się pięknie usuwa.
Problem pojawia się jak chcę edytować jakiś rekord.
Robię to tak:
clientdataset1.filename:=nazwapliku_xml;
clientdataset1.Open;
clientdataset1.recno:=1;
clientdataset1.Edit;
clientdataset1.fields[1].asstring:=clientdataset1.fields[1].asstring+'*';
clientdataset1.post;
clientdataset1.Close;
Edycja się dokonuje, ale zedytowany rekord z pozycji 1 jest automatycznie przenoszony na ostatnią pozycję. Jakim cudem tak się dzieje?
Jak po clientdataset1.post dodam clientdataset1.refresh to pojawia mi się komunikat: "must apply updates before refreshing data", ale edycja też się dokonuje, z tym że tak jak w pierwszym przypadku rekord zostaje przeniesiony na koniec tabeli. Czy da się jakoś zapobiec przenoszeniu rekordu na koniec po edycji?
A KONKRETNEJ odpowiedzi (czyli dopasowanej do mojego przypadku) na komunikat "must apply..." w internecie nie mogę znaleźć za czorta jasnego. Any help?
Delphi 2007.