AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Was ist besser? .EDIT / .POST oder ein UPDATE-Query?
Thema durchsuchen
Ansicht
Themen-Optionen

Was ist besser? .EDIT / .POST oder ein UPDATE-Query?

Ein Thema von Sharky · begonnen am 24. Feb 2004 · letzter Beitrag vom 24. Feb 2004
Antwort Antwort
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#1

Was ist besser? .EDIT / .POST oder ein UPDATE-Query?

  Alt 24. Feb 2004, 07:52
Hai,

mal ne Frage *g*

Was ist denn vorzuziehen um Datensätze zu ändern?

Delphi-Quellcode:
begin
  Query1.Edit;
  Query1.FieldByName ('spalte').AsString := 'la le lu';
  Query1.FieldByName ('noch_ne_spalte').AsInteger := 0815;
  .
  .
  Query1.Post;
end;
Oder ein UpdateQuery:

Delphi-Quellcode:
begin
  Query1.SQL.Text := 'UPDATE tabelle SET spalte = :spalte, noch_ne_spalte = :noch_ne_spalte WHERE id = :id';
  Query1.ParamsByName ('spalte').AsString := 'la le lu';
  Query1.ParamsByName ('noch_ne_spalte').AsInteger := 'la le lu';
  Query1.ParamsByName ('id').AsInteger := 1;
  Query1.ExecSQL;
end;
Hat das eine gegenüber dem anderen vor/nachteile?
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.029 Beiträge
 
Delphi XE3 Enterprise
 
#2

Re: Was ist besser? .EDIT / .POST oder ein UPDATE-Query?

  Alt 24. Feb 2004, 08:38
Moin Sharky,

Wenn man über Deine musikalischen Integer im 2.Beispiel hinwegsieht
erreichst Du mit beiden Varianten im Datenbankergebnis das Gleiche:

Einen aktualiserten Datensatz in der Tabelle.

Mit dem direkten Update-Befehl sogar schneller und meiner Ansicht auch
übersichtlicher als die Post-Variante.Es ist übrigens die einzige Möglichkeit
bei BDE und Paradox Kombination gewesen Tabellen gemischte edierbare
Datenmengenzu erhalten, da das Standart UpdateSQL Object das nicht unterstützte.

Soweit - sogut. Meines Erachtens dürfte allerdings die aktualiserung der
datensensitiven Elemente (DBGrid) im zweiten Beispiel auf der Strecke bleiben,
da ExecSQL keine Datenmenge zurückliefert. Post führt aber eine Wiederabfrage
der Datenmenge durch

Grüße aus dem frosteligen Hannover

// Martin
Martin Schaefer
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Was ist besser? .EDIT / .POST oder ein UPDATE-Query?

  Alt 24. Feb 2004, 09:11
..ich finde beide Varianten sind wichtig und habe ihren Zweck, da zB. TADOTable Events hat wie BeforePost und AfterPost auf die man im Programmverlauf reagieren kann...

..bei TADOQuery kann man eine WHERE-Klausel ja direkt integrieren, wohingegen man bie TADOTable den Umweg über Locate gehen muss..

..es gibt demnach Vor- und Nachteile für beide Varianten..

..letztendlich kommt es mehr drauf an, was man genau erreichen möchte..

..ich denke auch, daß TADQuery schneller sein müsste..
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#4

Re: Was ist besser? .EDIT / .POST oder ein UPDATE-Query?

  Alt 24. Feb 2004, 09:42
Ich glaube dieses Edit,Post,... macht nur Sinn wenn es schnell (im Sinne von husch-husch hinprogrammiert) gehen muss und man daraufhin auf DBEdits,... ausweichen muss.
Ich persönlich finde die Benutzerfreundlichkeit des DBGrids unzumutbar und verwende deshalb lieber String-/DrawGrids.
Zur Speicherung wird dann ein/mehrere UPDATE-Statement(s) anhand der Änderungen seit der letzten Speicherung zusammengebaut.
Auf die Art bombardiert man die DB nicht mit Updates jedesmal wenn der User die Zeile wechselt und ein String-/DrawGrid ist einfach benutzerfreundlicher.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Was ist besser? .EDIT / .POST oder ein UPDATE-Query?

  Alt 24. Feb 2004, 21:23
Zitat von mschaefer:
...dürfte allerdings die aktualiserung der
datensensitiven Elemente (DBGrid) ...
Jep, das ist "klar" aber darum muss man sich als Programierer auch so immer kümmern.
Da ich es mir abgewöhnt habe mit DB-Sensitiven Objekten (DBEdit, EDLabel, DBGrid usw.) zu arbeiten muss ich für eine aktualisierung immer selber sorgen.

BTW: "La Le Lu" ist doch ein lustiger Fehler für den Compiler? Oder

Spass bei seite:

Was geschiet wenn ich z.B. folgenden Schwachsinn mache.

Delphi-Quellcode:
begin
  Query1.Edit
  ... Delay für 5 Minuten ...;
  Query1.FieldByName ('mein_lied_').AsString := 'La Le Lu';
  .... Dely für noch einmal 5 Minunten...;
  Query1.Post;
end;
Ab wann wird denn der DatenSatz von meiner Datenbank (MS-SQL, MySQL) bearbeitet? Sobald das .EDIT kommt oder erst bei dem .POST?
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Antwort Antwort


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 07:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz