Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Wie größere SQL Statements schreiben? (https://www.delphipraxis.net/143564-wie-groessere-sql-statements-schreiben.html)

divBy0 18. Nov 2009 10:30

Datenbank: Access • Version: 2007 • Zugriff über: ADO

Wie größere SQL Statements schreiben?
 
Hallo :hi: ,

ich hoffe, dass ich hier in der richtigen Rubrik bin.
Meine Frage ist allgemein zu SQL-Statements.

Wie schreibt ihr denn größere SQL-Statements, mit mehreren Parametern usw., in Delphi? :gruebel:

sirius 18. Nov 2009 10:53

Re: Wie größere SQL Statements schreiben?
 
Na man trägt es in das TStrings-Objekt ein, oder man nutzt Views oder SPs.
Was genau ist deine Frage?

divBy0 18. Nov 2009 10:58

Re: Wie größere SQL Statements schreiben?
 
Ja, sorry. Hätte ich genauer schreiben sollen.

Wie das technisch geht ist mir klar, mir geht es um die Formatierung im Quellcode.

Sherlock 18. Nov 2009 11:03

Re: Wie größere SQL Statements schreiben?
 
Ich formatier das so, daß es im Quellcode nicht stört, und beim SQL-Monitor nicht alles in einer Zeile landet.
Sprich: mit TQuery.SQL.Add() jeweils immer eine Zeile hinzufügen.
Was ich definitv vermeide ist einen SQLString irgendwie zusammenzubasteln und diesen dann in die Query zu setzen, das geht nur schief, da man dann selber auf Leerzeichen und sonstiges achten muss.

Sherlock

divBy0 18. Nov 2009 11:10

Re: Wie größere SQL Statements schreiben?
 
Im Moment nehme ich auch SQL.Add() und füge das Zeile für Zeile ein. Es sieht nur im Code komisch aus, daher habe ich hier gefragt.

SQL-Strings zusammenbasteln ist natürlich nicht so toll. :mrgreen:

Sharky 18. Nov 2009 11:21

Re: Wie größere SQL Statements schreiben?
 
Delphi-Quellcode:
query.sql.text := 'SELECT * FROM tabelle ' + 
                  'WHERE blubb = :blubb AND ' +
                  'meow = :meow ' +
                  'ORDER BY wuppdi';

Neutral General 18. Nov 2009 11:26

Re: Wie größere SQL Statements schreiben?
 
Ich mache es z.B. so:

Delphi-Quellcode:
begin
  query := TQuery.Create(nil);
  try
    with query.sql do
    begin
      Clear;
      Add('SELECT');
      Add(' *');
      Add('FROM tabelle');
      Add('WHERE');
      Add(' (blubb = :blubb) AND');
      Add(' (meow = :meow)');
      Add('ORDER BY wuppdi');    
    end;
    query.ParamByName('meow').AsString := 'Test';
    query.ParamByName('blubb').AsInteger := 123;
    query.Open;
      // Etwas tun
    query.Close;
  finally
    query.Free;
  end;
end;

Sherlock 18. Nov 2009 11:27

Re: Wie größere SQL Statements schreiben?
 
Zitat:

Zitat von Sharky
Delphi-Quellcode:
query.sql.text := 'SELECT * FROM tabelle ' + 
                  'WHERE blubb = :blubb AND ' +
                  'meow = :meow ' +
                  'ORDER BY wuppdi';

Genau das würde ich nicht machen. Im SQL-Monitor ist das auf Anhieb nicht lesbar, denn das ist alles in einer Zeile. Ausserdem musst Du darauf achten am Ende jeder Zeile ein Leerzeichen zu lassen. Ich halte diese Art für gefährlich.

Sherlock

Sharky 18. Nov 2009 11:30

Re: Wie größere SQL Statements schreiben?
 
Dann halt so ;-) (pseudo code)
Delphi-Quellcode:
const crlf = #10#13
beging
query.sql.text := 'SELECT * FROM tabelle' + crlf +
                  'WHERE blubb = :blubb AND' + crlf +
                  'meow = :meow' + crlf +
                  'ORDER BY wuppdi';

und für "+ crlf +" ein kleines template.

mkinzler 18. Nov 2009 11:32

Re: Wie größere SQL Statements schreiben?
 
Es gibt übrigens schon eine Konstane dafür sLineBreak


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:17 Uhr.
Seite 1 von 2  1 2      

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