Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL Syntax (https://www.delphipraxis.net/46855-sql-syntax.html)

Hansa 2. Jun 2005 21:26

Re: SQL Syntax
 
Zitat:

Zitat von omata
also ADD liefert einen Integer zurück (die Einfügeposition) und ist deshalb eine Funktion. APPEND liefert keinen Rückgabewert und ist deshalb eine Prozedur.
...
Ich schreibe aber häufiger mal SQL-Anweisungen mit >200 Zeilen und da macht dann diese ADD-/APPEND-Geschichte keinen Spass mehr.

Wen interessiert denn welche Einfügeposition ? :shock: Ehrlich gesagt verstehe ich nicht, was du meinst. Und wenn die SQL-Anweisung sehr groß wird, na und ? 200 Zeilen sind doch nicht die Welt. Dann wirds allerdings Zeit, einiges aus Delphi zu verlagern. Frage mal Daniel, was Software-Engineering bedeutet. 8)

omata 3. Jun 2005 02:02

Re: SQL Syntax
 
@xaverras
Also, ich versuche es gern nochmal...

Die Eigenschaft SQL in einer TQuery oder auch TZQuery ist vom Typ TStrings und diese Liste enthält dann einfach den SQL-String. Mit Add oder Append können dann Zeilen hinzugefügt werden. Bei dieser Vorgehensweise muss man aber darauf achten, dass man SQL.Clear aufruft. Damit die alte SQL-Anweisung gelöscht wird, weil die Add bzw. Append Methode nur neue Zeilen anhängt.
Deshalb habe ich erwähnt, dass es sinnvoll ist mit SQL.Text:=''; den SQL-String zusetzen, dann hat man niemals Probleme mit irgendwelchen alten SQL-Resten. Man setzt einfach den kompletten SQL-String neu. Übrigens das haben sich wohl auch die Designer der neuen Datenbankkomponenten so überlegt. Dort ist es nämlich nur noch ein String.
Die Zoes-Komponente TZQuery ist identisch mit der TQuery in meinem Beispiel.

Da ein String in Delphi nicht mehr als 255 Zeichen haben darf (in einer Zeile) und das ja auch sehr unübersichtlich wäre, habe ich mal einen Vorschlag in meinen Beispielen aufgezeigt, wie man die SQL-Anweisung übersichtlich darstellen kann und alles in einem langen String zusammenfassen kann.
Das Zeichen #13 steht dabei für einen Zeilenumbruch. Dieser ist nicht so wichtig. Lässt man ihn allerdings weg, so muss jede Zeile mit einem Leerzeichen beendet werden, damit die SQL-Anweisung funktioniert.
Und als zusätzlichen Vorteil dieser Stringübergabe habe ich einfach noch erwähnt, dass es bei einem Umstieg auf neue Datenbankkomponenten bei dieser Vorgehenweise einfacher ist die Struktur umzubauen.

So, ich weiss nicht ob ich nun alle deine offenen Fragen beantwortet habe. Hoffe aber, es hilft dir weiter.

@Hansa
Zitat:

Zitat von Hansa
Wen interessiert denn welche Einfügeposition ? :shock: Ehrlich gesagt verstehe ich nicht, was du meinst.

Genau, wen interessiert die Einfügeposition. Das ist doch genau das was ich gemeint habe. APPEND liefert diese Information nicht und ADD liefert sie. Also wieso ADD?

Zitat:

Zitat von Hansa
Und wenn die SQL-Anweisung sehr groß wird, na und ? 200 Zeilen sind doch nicht die Welt. Dann wirds allerdings Zeit, einiges aus Delphi zu verlagern. Frage mal Daniel, was Software-Engineering bedeutet. 8)

ich wusste das, dass so ein Kommentar kommen musste. Eben nicht. Die Verlagerung würde nur bedeuten, das man irgendwelche unübersichtlichen Proceduren auf dem Server ablegen würde. Das macht das Software-Engineering nicht gerade übersichtlicher, wenn man es mit sehr vielen unterschiedlichen Anwendungen zu tun hat. Ausserdem sind diese großen Abfragen absicht, weil viele kleine Abfragen nicht so vom DB-Server optimiert werden können, als eine etwas größere, die dann aber alle Informationen bereit stellt.

Also, wie auch immer. Macht doch was ihr wollt...

Thorsten


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

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