Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datensatz überschreiben lassen (https://www.delphipraxis.net/14329-datensatz-ueberschreiben-lassen.html)

SilverMoonGirl 7. Jan 2004 07:47


Datensatz überschreiben lassen
 
Guten morgen@all

Ich möchte gerne, das ich einen Datensatz ändern kann, wie kann man das Programmtechnisch lösen. Den DBNavigator wollte ich eigentlich nicht benutzen

r_kerber 7. Jan 2004 07:49

Re: Datensatz überschreiben lassen
 
Hallo silberner Mond,

ich würde hier mit TQuery arbeiten und ein UPDATE-Statement an dei DB schicken.

SilverMoonGirl 7. Jan 2004 07:54

Re: Datensatz überschreiben lassen
 
Ok ich werd mal mein Glück versuchen,

r_kerber 7. Jan 2004 08:01

Re: Datensatz überschreiben lassen
 
Andere Möglichkeit wäre auch in TTable/TQuery (als aktualisierbare Datenmenge) auf den entsprechenden Datensatz zu positionieren und dann:
Delphi-Quellcode:
  Table1.Edit;
  Table1.FieldByName('spalte').Value := neuer_wert;
  ... // Für alle Tabellenfelder wiederholen
  Table1.Post;

SilverMoonGirl 7. Jan 2004 08:08

Re: Datensatz überschreiben lassen
 
wenn ich

Delphi-Quellcode:
Table1.FieldByName('Name').AsValue:= Edit1.Text;
eingebe, bekomm ich ne dicke Fehlermeldung

r_kerber 7. Jan 2004 08:09

Re: Datensatz überschreiben lassen
 
Was für eine?

SilverMoonGirl 7. Jan 2004 08:13

Re: Datensatz überschreiben lassen
 
[Fehler] Haupt.pas(223): Undefinierter Bezeichner: 'AsValue'

mikhal 7. Jan 2004 08:15

Re: Datensatz überschreiben lassen
 
Statt AsValue solltest du hier AsString verwenden. Es gibt da noch AsFloat, AsInteger, AsBoolean...

Grüße
Mikhal

SilverMoonGirl 7. Jan 2004 08:16

Re: Datensatz überschreiben lassen
 
Wenn ich AsString verwende bin ich ja wieder da wo ich vorher schonmal war

mikhal 7. Jan 2004 08:20

Re: Datensatz überschreiben lassen
 
Wieso? Erst die Datenbank in den Edit-Modus setzen, dann Wert eingeben und anschließend mit Post den Wert in die Datenbank schreiben, das ist die normale Vorgehensweise, wenn du TTable oder TQuery verwendest. Also genauso, wie es R_Kerber geschrieben hat. Ich meinte lediglich, daß du dort statt AsValue wie bei R_Kerber AsString verwenden solltest.

Grüße
Mikhal

r_kerber 7. Jan 2004 08:21

Re: Datensatz überschreiben lassen
 
Oops, es muß natürlich Value heißen. ich korrigiere das gleich im Beispielcode.

SilverMoonGirl 7. Jan 2004 08:30

Re: Datensatz überschreiben lassen
 
Alles klar, es funktioniert,

vielen Dank.
Jetzt müsste ich nur noch wissen, wie ich einen NAmen mehrmals eintragen lassen kann, d.h. es gibt sicherlich viele Personen die Müller heißen und z.B in Berlin wohnen :-D

r_kerber 7. Jan 2004 08:36

Re: Datensatz überschreiben lassen
 
Wie mehrfach? Dann sollten das doch mehrere Datensätze werden. Datensätze werden mittels TQuery über ein INSERT-Statment eingefügt. Alternativ kannst Du auch Table1.Append verwenden. Du solltest für die Tabelle jedoch möglichst einen eindeutigen Primärschlüssel verwenden, notfalls einen Zähler.

SilverMoonGirl 7. Jan 2004 08:48

Re: Datensatz überschreiben lassen
 
So ich hab die Tabelle jetzt umstrukturiert. werde mich dann mal weiter versuchen

SilverMoonGirl 7. Jan 2004 08:52

Re: Datensatz überschreiben lassen
 
es funktioniert, vielen vielen Dank :)

Sharky 7. Jan 2004 08:53

Re: Datensatz überschreiben lassen
 
Zitat:

Zitat von SilverMoonGirl
....Jetzt müsste ich nur noch wissen, wie ich einen NAmen mehrmals eintragen lassen kann,...

Hai MondMädchen ;-)

Wenn ich dich richtig verstehe möchtest Du in mehreren Datensätzen für ein Feld den selben Wert eintragen wenn eine bestimmte Bedingung erfüllt ist?

Das würde ich dann mit einem Query machen.

Delphi-Quellcode:
begin
  with Query1 do
    begin
      Close;
      SQL.Clear;
      SQL.Add ('UPDATE tabelle SET vorname = ' + QuotedStr ('Sharky'));
      SQL.Add ('WHERE name = ' + QuotedStr ('Müller') + ' AND ort = ' + QuotedStr ('Berlin'));
      ExecSQL;
    end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:23 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