@xaverras
Also, ich versuche es gern nochmal...
Die Eigenschaft
SQL in einer TQuery oder auch TZQuery ist vom Typ TStrings und diese Liste enthält dann einfach den
SQL-String. Mit Add oder Append können dann Zeilen hinzugefügt werden. Bei dieser Vorgehensweise muss man aber darauf achten, dass man
SQL.Clear aufruft. Damit die alte
SQL-Anweisung gelöscht wird, weil die Add bzw. Append Methode nur neue Zeilen anhängt.
Deshalb habe ich erwähnt, dass es sinnvoll ist mit
SQL.Text:=''; den
SQL-String zusetzen, dann hat man niemals Probleme mit irgendwelchen alten
SQL-Resten. Man setzt einfach den kompletten
SQL-String neu. Übrigens das haben sich wohl auch die Designer der neuen Datenbankkomponenten so überlegt. Dort ist es nämlich nur noch ein String.
Die Zoes-Komponente TZQuery ist identisch mit der TQuery in meinem Beispiel.
Da ein String in Delphi nicht mehr als 255 Zeichen haben darf (in einer Zeile) und das ja auch sehr unübersichtlich wäre, habe ich mal einen Vorschlag in meinen Beispielen aufgezeigt, wie man die
SQL-Anweisung übersichtlich darstellen kann und alles in einem langen String zusammenfassen kann.
Das Zeichen #13 steht dabei für einen Zeilenumbruch. Dieser ist nicht so wichtig. Lässt man ihn allerdings weg, so muss jede Zeile mit einem Leerzeichen beendet werden, damit die
SQL-Anweisung funktioniert.
Und als zusätzlichen Vorteil dieser Stringübergabe habe ich einfach noch erwähnt, dass es bei einem Umstieg auf neue Datenbankkomponenten bei dieser Vorgehenweise einfacher ist die Struktur umzubauen.
So, ich weiss nicht ob ich nun alle deine offenen Fragen beantwortet habe. Hoffe aber, es hilft dir weiter.
@Hansa
Zitat von
Hansa:
Wen interessiert denn welche Einfügeposition ?
Ehrlich gesagt verstehe ich nicht, was du meinst.
Genau, wen interessiert die Einfügeposition. Das ist doch genau das was ich gemeint habe. APPEND liefert diese Information nicht und ADD liefert sie. Also wieso ADD?
Zitat von
Hansa:
Und wenn die
SQL-Anweisung sehr groß wird, na und ? 200 Zeilen sind doch nicht die Welt. Dann wirds allerdings Zeit, einiges aus Delphi zu verlagern. Frage mal Daniel, was Software-Engineering bedeutet. 8)
ich wusste das, dass so ein Kommentar kommen musste. Eben nicht. Die Verlagerung würde nur bedeuten, das man irgendwelche unübersichtlichen Proceduren auf dem Server ablegen würde. Das macht das Software-Engineering nicht gerade übersichtlicher, wenn man es mit sehr vielen unterschiedlichen Anwendungen zu tun hat. Ausserdem sind diese großen Abfragen absicht, weil viele kleine Abfragen nicht so vom
DB-Server optimiert werden können, als eine etwas größere, die dann aber alle Informationen bereit stellt.
Also, wie auch immer. Macht doch was ihr wollt...
Thorsten