ClientDataSet error
Hejsa.Jeg bruger en ClientDataSet til hente data fra min mysql.
Mit problem er at jeg ikke kan inserte og opdatere data, uden at få en fejl der siger *record not found or changed by another* user.
For god ordens skyld vil jeg lige sige at begge databaser indtil videre ligger på min PC. så der er ikke andre der kan have ændret data.
Findes der en bedre måde at contecte til Mysql end bruge ClienDataset, SqlQuery, DataSetProvider, SqlConnection.
LocalData.First;
while not LocalData.Eof do begin
if ClientDataSet1.Locate('Nummer',LocalData.FieldByname('Nummer').AsString,[loCaseInsensitive]) then begin
ClientDataSet1.Edit;
ClientDataSet1.FieldByName('Navn').AsString := LocalData.FieldByName('Navn').AsString;
ClientDataSet1.FieldByName('Adresse').AsString := LocalData.FieldByName('Adresse').AsString;
ClientDataSet1.FieldByName('Postnr').AsString := LocalData.FieldByName('Postnummer').AsString;
ClientDataSet1.FieldByName('City').AsString := LocalData.FieldByName('City').AsString;
ClientDataSet1.FieldByName('Telefon').AsString := LocalData.FieldByName('HjTlf').AsString;
ClientDataSet1.FieldByName('Mobil').AsString := LocalData.FieldByName('MoTlf').AsString;
ClientDataSet1.FieldByName('Mail').AsString := LocalData.FieldByName('Mail').AsString;
ClientDataSet1.Post;
end
else begin
ClientDataSet1.Insert;
ClientDataSet1.FieldByName('Nummer').AsInteger := LocalData.FieldByName('Nummer').AsInteger;
ClientDataSet1.FieldByName('Navn').AsString := LocalData.FieldByName('Navn').AsString;
ClientDataSet1.FieldByName('Adresse').AsString := LocalData.FieldByName('Adresse').AsString;
ClientDataSet1.FieldByName('Postnr').AsString := LocalData.FieldByName('Postnummer').AsString;
ClientDataSet1.FieldByName('City').AsString := LocalData.FieldByName('City').AsString;
ClientDataSet1.FieldByName('Telefon').AsString := LocalData.FieldByName('HjTlf').AsString;
ClientDataSet1.FieldByName('Mobil').AsString := LocalData.FieldByName('MoTlf').AsString;
ClientDataSet1.FieldByName('Mail').AsString := LocalData.FieldByName('Mail').AsString;
ClientDataSet1.FieldByName('Login').AsInteger := LocalData.FieldByName('Login').AsInteger;
ClientDataSet1.FieldByName('Password').AsInteger := LocalData.FieldByName('Pass').AsInteger;
ClientDataSet1.FieldByName('Question').AsInteger := 0;
ClientDataSet1.FieldByName('Admin').AsInteger := 0;
ClientDataSet1.Post;
end;
LocalData.Next;
end;
if (ClientDataSet1.ChangeCount > 0) then
ClientDataSet1.ApplyUpdates(-1);
StatusBar1.Panels[0].Text := IntToStr(LocalData.RecordCount)+' på local';
StatusBar1.Panels[1].Text := IntToStr(WebData.RecordCount)+' på web';
