Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Zeos DBO - Ändern von Datensätzen (https://www.delphipraxis.net/4321-zeos-dbo-aendern-von-datensaetzen.html)

Vitus 24. Apr 2003 12:02


Zeos DBO - Ändern von Datensätzen
 
Hallo zusammen,

ich stehe vor folgendem Problem:
bisher habe ich mit Delphi 5 und Zeos DBO Komponenten der Version 5.4 gearbeitet. Aber man ist ja modern und will mithalten. Inzwischen nutze ich Delphi 7 und habe mir auch die aktuellen DBOs runtergeladen.
Unglücklicherweise ist meine Lieblingskomponente - das Table Objekt - aus der Bibliothek verschwunden und nun muss ich wohl oder übel mit den Querys arbeiten.

Das Anzeigen von Datensätzen funktioniert ja noch ganz prima:

Delphi-Quellcode:
qusers.SQL.Add('select * from patusers where Name='''+myuser+'''');
qusers.open;
Das ganze mit einer Datasource verknüpft und läuft.


Aber wie kann ich denn jetzt Datensätze einfügen, löschen oder ändern??
Mit einer Table Komponente war das sooo schön einfach:

Delphi-Quellcode:
table.edit;
table.FieldByName('name').AsString := meinName;
table.post;
oder:

Delphi-Quellcode:
table.insert;
Aber die Zeiten sind ja nun leider vorbei... :roll:

Wo schreibe ich nun welchen SQL Befehl rein? Was ist der Unterschied zwischen den Methode "open" und ExecSQL, bzw. der Eigenschaft "active"?

Wäre über eine Hilfestellung oder den Link zu einem Tutorial wirklich froh.

Gruß
Vitus

woki 24. Apr 2003 12:37

Hallo,

also ich kenne nicht wirklich die Zeos Komponenten, aber die einfachen Zeiten sollten erstmal nicht vorbei sein, da alle mir bekannten Query-Komponenten, nämlich solche, die von TDataset abgeleitet sind auch über die Methoden Append, insert etc verfügen, also

Also einfach gesagt, ein Query auf eine Tabelle (also kein Join) ist editierbar, Query definieren wie Du das schon machst, requestlive auf true setzen und dann weitermachen wie bis jetzt mit den Table-Komponenten, nur filtern geht bei den meisten Query-Komp. nur über die where Klausel und nicht über die Filtereigenschaft (Das hat aber auch deutliche Vorteile).

Open ist identisch mit active := true und wird verwandt für Statements die eine Ergebnismenge zurückliefern, ExeqSql für Statements (z.B. Update, insert), die keine Ergebnismenge zurückliefern.

Grüsse
Wolfgang

Vitus 24. Apr 2003 15:43

Waaaaaaaaaaaaaaah! Ich fass es nicht! Das klappt tatsächlich :D

Vielen Dank *bows*


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