AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

sql

Ein Thema von Klaus D. · begonnen am 29. Nov 2003 · letzter Beitrag vom 7. Dez 2003
 
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, 01: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
 


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:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz