AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Wie größere SQL Statements schreiben?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie größere SQL Statements schreiben?

Ein Thema von divBy0 · begonnen am 18. Nov 2009 · letzter Beitrag vom 18. Nov 2009
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von divBy0
divBy0

Registriert seit: 4. Mär 2007
Ort: Sponheim
1.021 Beiträge
 
Delphi XE2 Professional
 
#1

Wie größere SQL Statements schreiben?

  Alt 18. Nov 2009, 10:30
Datenbank: Access • Version: 2007 • Zugriff über: ADO
Hallo ,

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?
Marc
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt, die 10. summt die Melodie von Tetris... | Wenn das die Lösung ist, dann hätte ich gerne mein Problem zurück! | engbarth.es
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Wie größere SQL Statements schreiben?

  Alt 18. Nov 2009, 10:53
Na man trägt es in das TStrings-Objekt ein, oder man nutzt Views oder SPs.
Was genau ist deine Frage?
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von divBy0
divBy0

Registriert seit: 4. Mär 2007
Ort: Sponheim
1.021 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Wie größere SQL Statements schreiben?

  Alt 18. Nov 2009, 10:58
Ja, sorry. Hätte ich genauer schreiben sollen.

Wie das technisch geht ist mir klar, mir geht es um die Formatierung im Quellcode.
Marc
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt, die 10. summt die Melodie von Tetris... | Wenn das die Lösung ist, dann hätte ich gerne mein Problem zurück! | engbarth.es
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.763 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Wie größere SQL Statements schreiben?

  Alt 18. Nov 2009, 11:03
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
Oliver
  Mit Zitat antworten Zitat
Benutzerbild von divBy0
divBy0

Registriert seit: 4. Mär 2007
Ort: Sponheim
1.021 Beiträge
 
Delphi XE2 Professional
 
#5

Re: Wie größere SQL Statements schreiben?

  Alt 18. Nov 2009, 11:10
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.
Marc
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt, die 10. summt die Melodie von Tetris... | Wenn das die Lösung ist, dann hätte ich gerne mein Problem zurück! | engbarth.es
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Wie größere SQL Statements schreiben?

  Alt 18. Nov 2009, 11:21
Delphi-Quellcode:
query.sql.text := 'SELECT * FROM tabelle ' +
                  'WHERE blubb = :blubb AND ' +
                  'meow = :meow ' +
                  'ORDER BY wuppdi';
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

Re: Wie größere SQL Statements schreiben?

  Alt 18. Nov 2009, 11:26
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;
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.763 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Wie größere SQL Statements schreiben?

  Alt 18. Nov 2009, 11:27
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
Oliver
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Wie größere SQL Statements schreiben?

  Alt 18. Nov 2009, 11:30
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.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Wie größere SQL Statements schreiben?

  Alt 18. Nov 2009, 11:32
Es gibt übrigens schon eine Konstane dafür sLineBreak
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 21:58 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