AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQLBuilder (nonvisual)
Thema durchsuchen
Ansicht
Themen-Optionen

SQLBuilder (nonvisual)

Ein Thema von schlecki · begonnen am 23. Nov 2010 · letzter Beitrag vom 23. Nov 2010
Antwort Antwort
Seite 1 von 2  1 2      
schlecki

Registriert seit: 11. Apr 2005
Ort: Darmstadt
148 Beiträge
 
Delphi XE2 Enterprise
 
#1

SQLBuilder (nonvisual)

  Alt 23. Nov 2010, 09:56
Datenbank: verschiedene • Version: n/a • Zugriff über: n/a
Hallo,

ich suche einen SQLBuilder. Aussehen sollte das in etwa so:

Delphi-Quellcode:
  stm := TSQLStatement.Create();
  stm.Select('Field1')
     .Select('Field2')
     .From('Table')
     .Where(TCriteria.Create()
       .Criteria('Field1').EQ('test'))
     .OrderBy('Field2')
das Ergebnis sollte dann so aussehen:
Code:
  select Field1, Field2 from Table where Field1 = 'test' order by Field2
Hat jemand sowas schonmal gesichtet oder vlt sogar selbst gebaut?

Gruß
schlecki
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#2

AW: SQLBuilder (nonvisual)

  Alt 23. Nov 2010, 10:05
Habs mal in PHP gesehen, aber unter Delphi leider noch nie. Hab es schon mal selbst probiert, aber war mir dann zu kompliziert. Bin daher sehr schnell auf eine "normale" Query umgestiegen, d.h. halt einen String geschrieben. Das ist auch schneller änderbar imho.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: SQLBuilder (nonvisual)

  Alt 23. Nov 2010, 10:07
Es gibt doch auch ein paar OR-Mapper-Frameworks für Delphi. Wurde hier im Forum schon öfter verlinkt.
Windows Vista - Eine neue Erfahrung in Fehlern.
  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
 
#4

AW: SQLBuilder (nonvisual)

  Alt 23. Nov 2010, 10:09
Mal eine ganz blöde Frage nebenbei: Wofür soll sowas gut sein?
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 s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#5

AW: SQLBuilder (nonvisual)

  Alt 23. Nov 2010, 10:35
Ist ganz nett, wenn man nicht selbst den Query-String aufbauen will, aber eigentlich reine Bequemlichkeit Aber sobald man an etwas komplexere Queries stößt ist das Konzept eher umständlich.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
schlecki

Registriert seit: 11. Apr 2005
Ort: Darmstadt
148 Beiträge
 
Delphi XE2 Enterprise
 
#6

AW: SQLBuilder (nonvisual)

  Alt 23. Nov 2010, 10:39
Ich habe hier eine, nun, gewachsene Anwendung. Da stehen so tolle sachen drin wie:

Delphi-Quellcode:
  Query := TQuery.Create(nil);
  
  Query.SQL.Add('select');
  Query.SQL.Add(' *');
  Query.SQL.Add('from');
  Query.SQL.Add(' table');
  Query.SQL.Add('where');
  Query.SQL.Add(' 1 = 1');
  Query.SQL.Add('order by');

{ ... viel später }
  Query.SQL[1] := 'third.field1, second.field2, table1.*';
  Query.SQL[3] := 'table1, table3 third, table4 second';
  Query.SQL[5] := 'table1.field = third.field and second.field2 = table1.field3';
  AddRightCondition(Query.SQL, {...});
  Query.SQL.Add('table1.field');
Mit diesen Objekten könnte man das mMn besser auseinandernehmen und ordnen.

Einen kompletten OR-Mapper kann ich hier nicht einsetzen. Mit dem Builder, wie er mir vorschwebt könnte man einzelne Bereiche der Query dann leichter modifizieren und am Schuß das SQL erzeugen lassen.

Naja, mal sehen, vlt werd ich da mal was zu bauen
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#7

AW: SQLBuilder (nonvisual)

  Alt 23. Nov 2010, 10:41
Daher hasse ich diese TTable, TDataSource und was weiß ich noch alles... Einmal eine Query ausführen, die Daten in Objekte gießen und gut ist das ganze. Wenn ich was einfügen/updaten will, dann muss ich halt neben der Query auch noch die Daten weiterreichen und ab damit an die Datenbank.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
schlecki

Registriert seit: 11. Apr 2005
Ort: Darmstadt
148 Beiträge
 
Delphi XE2 Enterprise
 
#8

AW: SQLBuilder (nonvisual)

  Alt 23. Nov 2010, 10:45
das hat doch hier nix mit TTable oder TDataSource zu tun?!
  Mit Zitat antworten Zitat
webcss

Registriert seit: 10. Feb 2006
255 Beiträge
 
Delphi XE2 Professional
 
#9

AW: SQLBuilder (nonvisual)

  Alt 23. Nov 2010, 11:31
Das sieht aus wie LINQ unter .NET.
In der DeHL Library ist eine Klasse bzw. Interface enthalten, die LINQ-ähnliches verhalten bereitstellt. Anzuwenden allerdings auf Listen usw.

Im Rahmen eines ORM macht ein solcher QueryBuilder auch durchaus Sinn, aber in einer Anwendung welche auf TDataset und Konsorten basiert reicht ein FilterBuilder(=baut ein WHERE Statement zusammen) vollkommen aus. Denn kann man sich schnell selbst basteln, hab ich für mein ORM auch gemacht.

PS: macrobject's dobject hat das so gelöst wie Du Dir das vorstellst...
"Wer seinem Computer Mist erzählt, muss immer damit rechnen..." (unbekannt)
"Der Computer rechnet damit, dass der Mensch denkt..." (auch unbekannt)
mein blog

Geändert von webcss (23. Nov 2010 um 11:42 Uhr)
  Mit Zitat antworten Zitat
rokli

Registriert seit: 21. Mär 2009
Ort: Rödinghausen
301 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: SQLBuilder (nonvisual)

  Alt 23. Nov 2010, 11:36
Hi Schlecki,

ich schreibe soetwas dauernd ... aber wenn Du einer Function / Procedure die Feldnamen sowieso mitgeben musst, kannst das ganze doch gleich in einer Oberfläche macht.

Sonst kannst Du doch sowieso nur die gesamte Feldliste "automatisch" in das SQL Statement einlesen lassen; und wie siehts mit der WHERE Clause aus, woher bekommst Du die? Wie willst Du denn den ORDER definierten, wenn nicht manuell??

Mittlerweile schreib ich mir immer noch ein paar Zeilen dazu, damit ich die Statements speichern und auch wieder per Progi öffnen kann.

Gruß
Rolf
Rolf
wenn nicht anders angegeben, schreibe ich zu D7, XE2 und MS SQL - ansonsten fragen Sie ihren Administrator oder einen Operator. Update 06/2020: Delphi 10.4 Sydney
  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 13:16 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