habe gerade ein Problem, das ich nicht verstehe, weil an anderen Stelle (andere Tabelle) nach dem gleichen Muster verfahren wird. Habe in einem Frame ein DBGrid, in dem ich,
über ein DatasetGrid, alle Datensätze der Tabelle einzeige. Mit einem Doppelklick auf auf die Tabelle, hole ich mir einen Datensatz, mit der entsprechenden ID und ein IBDataSetAdressen , in die EditFelder. Eine Änderung eines Feldes und das Abspeichern, bewirkt das alle Datensätze dieser Tabelle mit den selben Änderungen überschrieben werden. Was mich jetzt auch wundert, dass auch die Felder ID ebenfalls mit der aktl. ID beschrieben werden. als ob es eine Kopie des Datensatzes auf alle Sätze der Tabelle gemacht werden. An einer anderen Stelle mit einer anderen Tabelle funktioniert es.
Code: Alles auswählen
procedure TFrameAdressen.ButtonSpeichernClick(Sender: TObject);
begin
DataModule_AdressenStamm.IBTransactionAdressen.Active:= true;
DataModule_AdressenStamm.IBDataSetAdressen.Open;
LabelTest2.Caption:= IntToStr(AdressenID); //Hier wird die aktl. ID des Datensatzes angezeigt
DataModule_AdressenStamm.IBDataSetAdressen.Edit;
if EditKurzbezeichnung.Text = '' THEN
DataModule_AdressenStamm.IBDataSetAdressenADRESSENCODE.Clear
else
DataModule_AdressenStamm.IBDataSetAdressenADRESSENCODE.AsString := EditKurzbezeichnung.Text;
if MemoAdresse.Text = '' then
DataModule_AdressenStamm.IBDataSetAdressenADRESSE.Clear
else
DataModule_AdressenStamm.IBDataSetAdressenADRESSE.AsString := MemoAdresse.Text;
if EditAdressenLand.Text = '' then
DataModule_AdressenStamm.IBDataSetAdressenLAND.Clear
else
DataModule_AdressenStamm.IBDataSetAdressenLAND.AsString := EditAdressenLand.Text;
if EditAdressenPlz.Text = '' then
DataModule_AdressenStamm.IBDataSetAdressenPLZ.Clear
else
DataModule_AdressenStamm.IBDataSetAdressenPLZ.AsInteger := StrToInt(EditAdressenPlz.Text);
if EditAdressenOrt.Text = '' then
DataModule_AdressenStamm.IBDataSetAdressenORT.Clear
else
DataModule_AdressenStamm.IBDataSetAdressenORT.AsString := EditAdressenOrt.Text;
if EditAdressenVorwahlTel.Text = '' then
DataModule_AdressenStamm.IBDataSetAdressenFON_VORWAHL.Clear
else
DataModule_AdressenStamm.IBDataSetAdressenFON_VORWAHL.AsInteger := StrToInt(EditAdressenVorwahlTel.Text);
if EditAdressenTelNr.Text = '' then
DataModule_AdressenStamm.IBDataSetAdressenFON_NUMMER.Clear
else
DataModule_AdressenStamm.IBDataSetAdressenFON_NUMMER.AsInteger := StrToInt(EditAdressenTelNr.Text);
DataModule_AdressenStamm.IBDataSetAdressen.Post;
if DataModule_AdressenStamm.IBTransactionAdressen.InTransaction then DataModule_AdressenStamm.IBTransactionAdressen.Commit;
DataModule_AdressenStamm.IBTransactionAdressen.StartTransaction;
end;
Schreibe eine funktionierende Anwendung, die unter Delphi 7 programmiert worden ist auf Lazarus.
Bitte um Hilfe.
Danke, Andreas