Announcement

Collapse
No announcement yet.

Datensätze ändern

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

  • Datensätze ändern

    Hallo, mit unten angeführten Anweisungen will ich die vorhandenen Namen, wenn diese gleich dem Wert der ComboBox sind ändern. Das funktioniert auch unbefriedigend, weil es ewig lang dauert und der letzte Datensatz nicht geändert wird. Meine Frage ist: Warum dauert das so lange, warum wird der letzte Datensatz nicht geändert, und ist das wie ich es mache überhaupt der richtige Weg. Vielen Dank für Hilfe. Gruss ph.

    Datamodule2.ErgebTable.First;

    while not DataModule2.ErgebTable.EOF do begin

    if DataModule2.ErgebTableHeimMann.Value = ComboBox2.Text then

    DataModule2.ErgebTable.Active := False;

    DataModule2.ErgebTable.IndexName := 'ByHeimMann';

    DataModule2.ErgebTable.Active := True;

    DataModule2.ErgebTable.SetKey;

    DataModule2.ErgebTable.FieldByName('HeimMann').AsS tring :=

    ComboBox2.Text;

    DataModule2.ErgebTable.GotoKey;

    DataModule2.ErgebTable.Edit;

    Datamodule2.ErgebTableHeimMann.Value := Edit1.Text;

    Datamodule2.ErgebTable.ApplyUpdates;

    Datamodule2.ErgebTable.CommitUpdates;

    Datamodule2.ErgebTable.Refresh;

    DataModule2.ErGebTable.Next;

    end;

  • #2
    Hallo,

    um welche Datenbank handelt es sich? Abgesehen davon ist das so ziemlich der umständlichste Weg für diese Aufgabe, den man sich vorstellen kann :-)

    Wenn es sich um eine SQL-Datenbank handelt oder wenn LOCAL SQL (BDE) zur Verfügung steht, erzielt ein einziger UPDATE-Aufruf das gleiche Ergebnis:
    <pre>
    UPDATE Tabellename
    SET HeimMann = :NeuerText
    WHERE HeimMann = :AlterText
    </pre>
    Wird diese UPDATE-Anweisung über den Objektinspektor einer TQuery-Instanz zugewiesen, so kann man die Parameter-Werte vor dem Aufruf ( ExecSQL) zuweisen. In der Delphi-Hilfe ist dazu das folgende Beispiel:

    <i>Mit dem folgenden Quelltext wird eine Einfügeabfrage ausgeführt, um einen Datensatz für 'Liechtenstein' in die Tabelle Country einzufügen.</i>
    <pre>
    Query2.SQL.Clear;

    Query2.SQL.Add('INSERT INTO COUNTRY (NAME, CAPITAL, POPULATION)');
    Query2.SQL.Add('VALUES (:Name, :Capital, :Population)');

    Query2.Params[0].AsString := 'Liechtenstein';
    Query2.Params[1].AsString := 'Vaduz';
    Query2.Params[2].AsInteger := 420000;
    Query2.ExecSQL;
    </pre&gt

    Comment

    Working...
    X