Thema: Delphi sql

Einzelnen Beitrag anzeigen

Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#16

Re: sql

  Alt 4. Dez 2003, 02:17
Also ergänzend zum vorangegangenen Posting:

Der Doppelpunkt hat mit SQL herzlich wenig zu tun, er kennzeichnet einen Parameter für ein Delphi-TDataSet und soll Dir als Delphianer nur das Leben ein bisserl erleichtern.

Die TDataSet-Komponente "parst" (liest/durchsucht) Deinen SQL-Text und wenn sie auf einen Doppelpunkt stößt, interpretiert sie das darauf Folgende als Parameternamen (wie eine benamste Variable halt) und versucht dann, diesen Parameter-Platzhalter durch einen Wert zu ersetzen, bevor sie den SQL-Text auf die Datenbank losläßt (Die könnte mit dem Doppelpunkt/Parametername-Konstrukt nämlich nichts anfangen).

Da wir die 2. Query über die 1. DataSource an die 1. Query gebunden haben und dort ein Feld mit dem Namen "id_..." existiert, welches genauso heißt wie unser Doppelpunkt-Parameter, nimmt Dir die TQuery-Komponente Arbeit ab, indem Sie den Parameter in der 2. Query durch den entsprechenden Feldwert aus der 1. Query immer dann ersetzt, wenn dort ein Wechsel des Datensatzes vorgenommen wird.

Das gleiche Ergebnis würdest Du erzielen, wenn Du auf jeden Datensatzwechsel der 1. Query (Ereignis OnScroll) "von Hand" reagieren würdest und in der OnScroll-Routine der 1. Query folgendes tätest:
1. Schliessen 2. Query,
2. Löschen des SQL-Textes der 2. Query
3. denselben neu generieren (letzte Zeile dort:
Code:
Query2.SQL.Add('where sid_BlaBlaBla = '+IntToStr(Query1.FieldByName('id_BlaBlaBla').AsInteger));
4. 2. Query wieder öffnen

Du siehst, das die Doppelpunktvariante um einiges bequemer ist.

Ausserdem ist der Doppelpunkt so neu für Dich nicht - schau Dir mal Deine ursprünglichen Querys an - dort verwendest Du :p1 - das ist nix anderes als eine Variable Namens "p1", die Du dann später mit dem Wert des Edits füllst.

Gruß
Tim Leuschner
Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
  Mit Zitat antworten Zitat