Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Umgang mit Query's (https://www.delphipraxis.net/191048-umgang-mit-querys.html)

mikhal 2. Dez 2016 13:24

AW: Umgang mit Query's
 
Nein, bei Änderungen übergibt UniQuery die Feldinhalte an die Parameter, du kümmerst dich nur um die zu ändernden Felder - entweder durch eine direkte Zuweisung (z.B. im Event BeforePost der UniQuery) oder ohne eigene Aktion, wenn du die verpönten datensensitiven Komponenten einsetzt (für irgendwas müssen die ja gut sein...).

Wenn du das in einer Klasse einsetzt, verwaltest du dort die Feldinhalte und schreibst letztlich wirklich alle Feldinhalte in die Parameter (weil der Verwaltungsaufwand, welches Feld geändert wurde, zu aufwändig ist).

Grüße
Mikhal

p80286 2. Dez 2016 15:53

AW: Umgang mit Query's
 
Noch eine Anmerkung zu "Datum":
Falls Du das aktuelle Datum und oder die aktuelle Zeit benötigst solltest du auf das SYSDATE() der DB zurück greifen. Bei
Delphi-Quellcode:
Now
bekommst Du das lokale Datum und Zeit zurück, und das könnte unterschiedlich sein zu dem der DB.
"Brauch ich nicht, ist alles lokal" haben schon viele gesagt, und aus lauter Gewohnheit im entscheidenden Moment Fehler in die DB hineingeschoben.

Gruß
K-H

Bebe 2. Dez 2016 19:18

AW: Umgang mit Query's
 
Hallo,

so funktioniert es nicht.

Bei den UniDac Komponenten führst du das Statement nur von UniQuery4.sql aus. Wenn du die anderen Statements ausführen willst, dann musst du sie über
Delphi-Quellcode:
UniQuery4.sql.Text := UniQuery4.SQLInsert.Text
zuweisen. Dann hast du auch die richtigen Parameter.

Deswegen auch...
Zitat:

Zitat von Ykcim (Beitrag 1355231)
Der Parameter Ticket_ID stammt aus dem Select Statement.

Die Statements InsertSQL, InsertUpdate usw. musst du alle übergeben, dann kannst du sie ausführen.

Ausserdem ist BeforeInsert nicht der richtige Ort die Parameter zu übergeben.
Einfach eine Prozedure schreiben, zuerst das Stement zuweisen und dann die Parameter übergeben. Je nach Statement Open, Execute oder ExecSQL ausführen.

Ich hoffe ich konnte ein wenig helfen.

Gruß
Matze


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:41 Uhr.
Seite 2 von 2     12   

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