AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Probleme mit .edit und .post auf eine mySQL Tabelle
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme mit .edit und .post auf eine mySQL Tabelle

Ein Thema von mapolat · begonnen am 1. Mär 2005 · letzter Beitrag vom 2. Mär 2005
 
mapolat

Registriert seit: 1. Mär 2005
Ort: Wuppertal
4 Beiträge
 
#1

Probleme mit .edit und .post auf eine mySQL Tabelle

  Alt 1. Mär 2005, 08:20
Datenbank: mySQL • Version: 4.1.08 • Zugriff über: ZEOS 6.5.1 oder ADO
Habe Probleme mit TTabel.Post. Beim ausführen des "Post" Befehls auf eine mySQL Tabelle (mit und ohne ZEOS 6.5.1 Komponente) wird die Felhlermeldung : "Tabelle weder im Einfüge- noch Editier- Modus!". Komme einfach nicht mehr weiter und brauche dringend Hilfe. (evtl krz. Beschreibung welche Befehle man zum editieren auf jeden Fall benutzen müsste (.edit, .commit, .update, .updateRecords?????)

Ich habe zwar gefunden wo genau dieses Problem verursacht wird, weiss aber immer noch nicht warum und wie ich es beheben könnte.

Das formular hat 3 tabellen die miteinander in der Tabellen-Eigenschaften über Master-Detail verknüpft sind. Tabelle1 ist Master Tabelle vom Tabelle2. Tabelle3 ist wiederum die Detail-Tabelle vom Tabelle2.

Nun zum besseren Fehlerbeschreibung : Tabelle1, Tabelle2, Tabelle3 sind alle active, also Status = Open. Wird es im Tabelle 3 eine Änderung vorgenommen so wird im "After.Post" eigenschaft diese änderung an Tabelle2 übergeben wo dann der Fahler passiert.

Delphi-Quellcode:
procedure TFrm_01.BTN_1Click(Sender: TObject);
begin
  Tabelle_3.Edit;
  Tabelle_3.FieldByName('Zahl_1').Value := 3;
  Tabelle_3.FieldByName('Zahl_2').Value := 5;
  Tabelle_3.FieldByName('Zahl_3').Value := 11;
  if MessageBox(0, 'Möchten Sie die Änderungen wirklich übernehmen?', 'WARNUNG', MB_YESNO) = IDYES then
    Tabelle_3.Post
  else Tabelle_3.Cancel;
end;
 
procedure TFrm_01.Tabelle_3AfterPost(DataSet: TDataSet);
var Summe_1, Summe_2, Summe_3 : integer;
begin
  Summe_1 := 0;
  Summe_2 := 0;
  Summe_3 := 0;
 
  with Tabelle_3 do
  begin
    first;
    while not EOF do
    begin
      Summe_1 := Summe_1 + FieldByName('Zahl_1').AsInteger;
      Summe_2 := Summe_2 + FieldByName('Zahl_2').AsInteger;
      Summe_3 := Summe_3 + FieldByName('Zahl_3').AsInteger;
      next;
    end;
  end;

  Tabelle_2.Edit;
// Tabelle 2 ist hier in Tabelle_2.State = dsEdit - soweit noch alles OK.
 
  Tabelle_2.FieldByName('DetailSumme_1').asVariant := Summe_1;
// alles noch im grünen Bereich. 1.Wertzuweisung wird noch übernommen

// Hier (nach dem 1. Wertzuweisung) aber passiert der Fehler..
// Hier springt die Tabelle 2 unerwünscht und für mich unerklärlich auf Tabelle_2.State = dsBrowse

  Tabelle_2.FieldByName('DetailSumme_2').asVariant := Summe_2;
  Tabelle_2.FieldByName('DetailSumme_3').asVariant := Summe_3;
// diese beiden Wertzuweisungen werden nicht mehr übernommen da Tabelle_3 im dsBrowse Status ist.

  Tabelle_2.Post;
// während der post ausführung kommt dann die Fehlermeldung "Tabelle_2 weder in EDIT- noch in INSERT- Modus !"
end;
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz