Announcement

Collapse
No announcement yet.

Probleme mit APPEND

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Probleme mit APPEND

    Hallo,

    folgender code hängt einen Datensatz an eine tabelle an und trägt dann werte in felder ein:

    <pre>
    with KfzData,KfzExpData do
    begin
    // Datensatz an IntExp anhängen
    IntExpTable.append;
    //Daten aus KfzData.KufTable übernehmen Kundenfahrzeuge
    IntExpTable.FieldByName('NUMMER').AsString := KufTable.fieldbyname('NUMMER').AsString;
    IntExpTable.FieldByName('Fahrzeug_Typ').AsString := KufTable.fieldbyname('TYP').AsString;
    IntExpTable.FieldByName('KATALysator').AsBoolean := KufTable.fieldbyname('KAT').AsBoolean;
    IntExpTable.FieldByName('PREIS').AsFloat := KufTable.fieldbyname('VKBRUTTO').AsFloat;
    IntExpTable.FieldByName('VORBESITZER').AsFloat := KufTable.fieldbyname('VORBESITZER').AsFloat;
    IntExpTable.post;
    AnzahlDS;
    end;
    </pre>

    beim ersten beschreiben eines Feldes bekomme ich die Meldung, dass die datenmenge nicht im editierzustand ist! woran kann das liegen bzw. was tue ich dagegen?
    append versetzt doch die datenmenge automatisch in den editiermodus oder nicht?

    Gruß

    Markus
    Herzliche Grüße

    Markus Lemcke
    barrierefreies Webdesign

  • #2
    Theoretisch ja.
    Allerdings gibt es ein paar Fälle, bei denen das nicht so ist.
    1. Dein DataSet (TQuery oder TTable) ist auf ReadOnly, bzw RequestLive ist auf False.
    2. Du benutzt ein TQuery mit entsprechender SQL-Abfrage. Einige SQL-Abfrage geben keine änderbare Datenmenge zurück. Das ist aber abhängig von der SQL-Anweisung und der Datenbank

    Comment


    • #3
      hi jasocul,

      habe nix auf readonly und benutze eine abgleitete ttable-komponente
      Herzliche Grüße

      Markus Lemcke
      barrierefreies Webdesign

      Comment


      • #4
        Hallo Markus,

        ein <b>TTable.Append</b> fügt einen neuen leeren Datensatz der Datei hinzu und macht diesen zum aktuellen Datensatz.

        Wenn nun die Fehlermeldung auf einen fehlenden Editiermodus hinweist (<b>TTable.Edit</b>), wird m. E. der Befehl <b>Append</b> nicht durchgeführt. Versuchs mal mit <b>TTable.Insert</b>.

        Gruß

        Pete

        Comment


        • #5
          hi,

          habe es so gelöst:
          <pre>
          if (IntExpTable.State = dsedit) or (IntExpTable.State = dsinsert)
          then IntExpTable.Post;
          // Datensatz an IntExp anhängen
          IntExpTable.append;
          //Daten aus KfzData.KfzTable übernehmen Fahrzeug neu/gebraucht
          IntExpTable.FieldByName('NUMMER').AsString := KfzTable.fieldbyname('NUMMER').AsString;
          </pre>

          die if-abfrage mit dem nachfolgenden post war wohl wichtig!

          gruß

          marku
          Herzliche Grüße

          Markus Lemcke
          barrierefreies Webdesign

          Comment

          Working...
          X