![]() |
Lange Strings/Queries im Quellcode umbrechen
Hai,
hier gehts mir um die Übersichtlichkeit des Quellcodes. In meinem letzten Projekt habe ich Query-Aufrufe wie diese:
Delphi-Quellcode:
Eines sieht wohl jeder: Dieses String-Gebilde ist zu unübersichtlich, vor allem wegen diesen vielen Anführungszeichen.
Query := 'SELECT '+
'Id, '+ '(SELECT '+ 'Baustufen.name '+ 'FROM Baustufen WHERE '+ 'projekte_baustufen_links.Baustufe_Id = ('+ 'SELECT ID from my_ids WHERE id = '+ ExtBstId +' ORDER BY Id ASC Limit 1'+ ') LIMIT 1), '+ 'von, '+ 'bis '+ 'FROM Projekte_Baustufen_Links '+ 'WHERE Projekt_Id = '+Pr_Id + ' ORDER BY Projekte_Baustufen_Links.Baustufe_Id ASC '; In PHP könnte man das ja so schreiben:
Code:
Das sieht schon viel einfacher aus und ist auch schneller zu schreiben. Gibt es denn keine ähnliche
$Query = 'SELECT
Id, (SELECT Baustufen.name FROM Baustufen WHERE projekte_baustufen_links.Baustufe_Id = ( SELECT ID from my_ids WHERE id = '. $ExtBstId .' ORDER BY Id ASC Limit 1 ) LIMIT 1), von, bis FROM Projekte_Baustufen_Links WHERE Projekt_Id = '.$Pr_Id .' ORDER BY Projekte_Baustufen_Links.Baustufe_Id ASC '; Schnell-Schreibweise bei Delphi? Evtl. irgendwelche Prozessorbefehle? Also dass man einen ewig langen String gaaanz einfach umbrechen und mit Variablen bestuecken kann? Danke im Voraus für eure Hilfe! |
Re: Lange Strings/Queries im Quellcode umbrechen
Hallo,
dein Statement sieht bei mir so aus:
SQL-Code:
Manchmal sind auch noch Format-Strings (%s) enthalten. Entwerfen kann ich die Statements im SQL-Editor eines SQL-Werkzeuges. Speichern werde ich es je nach Rahmenbedingung direkt in der Datenbank oder in einer Datei. In einer INI-Datei oder als ResourceString darf das Statement gerne wieder eine einzelne Zeile sein. Muss ich es später überarbeiten, dann bringe ich es wieder in Form - zur Not mit einem SQL Beautifier.
SELECT id, (
SELECT name FROM Baustufen WHERE L.Baustufe_Id = ( SELECT ID FROM my_ids WHERE id = :ExtBstId ORDER BY Id ASC Limit 1 ) LIMIT 1 ), von, bis FROM Projekte_Baustufen_Links L WHERE Projekt_Id = :Pr_Id ORDER BY L.Baustufe_Id ASC Grüße vom marabu |
Re: Lange Strings/Queries im Quellcode umbrechen
Zitat:
in Delphi/Pascal ist eine String-Konstante auf eine Zeile beschränkt. Ich habe für längere Texte auch schon überlegt, diese in einer anderen Sprache (C,Assembler) zu formulieren, aber Delphi kann ja keine fremden Objects linken, und übersichtlicher ist es auch nicht, wenn die Strings woanders stehen. Bei langen Texten lese ich notfalls von einer txt-Datei ein. Gruss Reinhard |
Re: Lange Strings/Queries im Quellcode umbrechen
Hi
Nun, ich weiß nicht, ob's unbedingt besser ist, aber ich nehm auch eine Stringvariable und "addier" einfach die Gruppen
Delphi-Quellcode:
oder so ähnlich...
Query:='Select * from '+ TabelleName;
Query:=Query+' Where ( a= '+ StrWert+ ')'; Query:=Query+' Or( x= '''+ IntToStr(IntWert)+ ''')'; Im Allgemeinen kopier ich mir die Strings aus einem SQL-Generator und zerleg sie dann in sinnvolle Abschnitte. Vorteil, ich kann mir einfache oder auch komplizierte Strings immer wieder kopieren und mit wenigen Handgriffen anpassen. Gruß oldmax |
Re: Lange Strings/Queries im Quellcode umbrechen
danke für eure Vorschläge! cu
|
Re: Lange Strings/Queries im Quellcode umbrechen
Auch wenn der Fragesteller zufrieden ist...
... Wenn eine Query zu lang ist, packe ich sie in eine View, gebe dem einen aussagekräftigen Namen und habe dann zudem die Option, die View zu verändern, ohne den Code anzufassen... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:54 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