AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Lange Strings/Queries im Quellcode umbrechen
Thema durchsuchen
Ansicht
Themen-Optionen

Lange Strings/Queries im Quellcode umbrechen

Ein Thema von white-desert · begonnen am 7. Nov 2007 · letzter Beitrag vom 8. Nov 2007
Antwort Antwort
white-desert

Registriert seit: 27. Sep 2006
11 Beiträge
 
#1

Lange Strings/Queries im Quellcode umbrechen

  Alt 7. Nov 2007, 07:12
Hai,
hier gehts mir um die Übersichtlichkeit des Quellcodes.
In meinem letzten Projekt habe ich Query-Aufrufe wie diese:
Delphi-Quellcode:
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 ';
Eines sieht wohl jeder: Dieses String-Gebilde ist zu unübersichtlich, vor allem wegen diesen vielen Anführungszeichen.

In PHP könnte man das ja so schreiben:
Code:
$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 ';
Das sieht schon viel einfacher aus und ist auch schneller zu schreiben. Gibt es denn keine ähnliche
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!
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Lange Strings/Queries im Quellcode umbrechen

  Alt 7. Nov 2007, 09:28
Hallo,

dein Statement sieht bei mir so aus:

SQL-Code:
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
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.

Grüße vom marabu
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#3

Re: Lange Strings/Queries im Quellcode umbrechen

  Alt 7. Nov 2007, 10:19
Zitat von white-desert:
Hai,
...
Also dass man einen ewig langen String gaaanz einfach umbrechen und mit Variablen bestuecken kann?

Danke im Voraus für eure Hilfe!
Hallo,

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
  Mit Zitat antworten Zitat
oldmax

Registriert seit: 27. Apr 2006
Ort: Gieboldehausen
167 Beiträge
 
#4

Re: Lange Strings/Queries im Quellcode umbrechen

  Alt 7. Nov 2007, 12:24
Hi
Nun, ich weiß nicht, ob's unbedingt besser ist, aber ich nehm auch eine Stringvariable und "addier" einfach die Gruppen
Delphi-Quellcode:
Query:='Select * from '+ TabelleName;
Query:=Query+' Where ( a= '+ StrWert+ ')';
Query:=Query+' Or( x= '''+ IntToStr(IntWert)+ ''')';
oder so ähnlich...
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
Noch ist mein Rechner mir zu Diensten.... ansonsten habe ich die Macht ihn zu vernichten !
  Mit Zitat antworten Zitat
white-desert

Registriert seit: 27. Sep 2006
11 Beiträge
 
#5

Re: Lange Strings/Queries im Quellcode umbrechen

  Alt 8. Nov 2007, 09:54
danke für eure Vorschläge! cu
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: Lange Strings/Queries im Quellcode umbrechen

  Alt 8. Nov 2007, 10:00
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...
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  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 01:46 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