Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Parameter bei SQL (https://www.delphipraxis.net/1863-parameter-bei-sql.html)

Hansa 28. Dez 2002 13:57


Parameter bei SQL
 
Hi,

folgendes verstehe ich noch nicht so ganz: wo genau kommen die aktuellen Werte her, die als Parameter an ein Select übergeben werden. Bei einer normalen Delphi-Prozedur wird der Wert ja in Klammern im Prozedur-Kopf angegenen. Diese Variable kann dann innerhalb der Prozedur benutzt werden und während der Laufzeit einen aktuellen Wert erhaltten.

Oft sieht man ja so was :
Code:
select * from EMPLOYEE
where Dept_No = :Dept_No
Aber wo oder was oder wie erhält jetzt der Parameter :Dept_No seinen Wert her ? Das steht meistens immer irgendwo im Raum rum. Das Problem ist, daß so was bei mir meistens funktioniert, aber ich würde doch gerne mal wissen warum.

Gruß
Hansa

Alfons_G 28. Dez 2002 16:50

Params ist eine Eigenschaft der TQuery-Komponente. Du kannst die Parameter als Array ansprechen oder mit der Methode "ParamByName" über ihren Namen identifizieren.

Auf jeden Fall musst Du vor dem Ausführen der Query alle benötigten Parameter übergeben. Bei SQL-Prozeduren, welche Rückgabewerte liefern, bekommst Du auch Parameter zurück. Das musst Du in der Query-Komponente im Objektinspektor einstellen.

Bei Deinem Beispiel würde man den parameter so übergeben:
Delphi-Quellcode:
MeineQuery.ParamByName('Dept_No').AsInteger := 5;
MeineQuery.Open;
...
Ohne Gewähr, da aus dem Rechner, wo ich im Moment sitze, kein Delphi installiert ist. Weitere Infos findest Du in der Hilfe unter TQuery und Parameter.

:coder:

Hansa 28. Dez 2002 19:38

Hi Alfons,

Zitat:

Weitere Infos findest Du in der Hilfe unter TQuery und Parameter.
Der Witz ist nur, ich habe keine und soweit läuft alles wie es soll. Soll ich vielleicht vermehrt Queries einbauen ?

Gruß
Hansa

MrSpock 29. Dez 2002 10:06

Hallo Hansa,

wie meinst du das, du hast keine TQuery? Welche Komponente nutzt du, um eine SQL Statement an deine DB weiterzureichen?

Hansa 29. Dez 2002 11:25

Hi,

Habe Wirklich keine ! Benutze die FIBplus-Kompos, dazu kommt zum Schluß noch was wichtiges.

Code:
 
  IF (Edit1.Text <> '') THEN BEGIN
    Edit1.Enabled := false;
    WITH KuDataMod.KuDataSet DO BEGIN
      active := false;
      SelectSQL.Text := 'SELECT * FROM KUNDE8 WHERE NR = ' + Edit1.text;
      active := true;
      IF IsEmpty THEN BEGIN
        Insert;
        FieldByName ('NR').value := StrToInt (Edit1.text);
      END
      ELSE
        Edit;
    END;
    DBedit1.SetFocus;
  END
Ich gebe hier eine Kundennr. ein, dann habe ich alle Daten des Kunden. Gibt es diesen noch nicht, besetze ich das Feld schon mal mit dem eingebenen Edit1.Text. Sag mir mal einer wozu ich da eine Query brauche ?

So jetzt aber etwas für IBX - Benutzer! Auf der Delphi 7 Companion CD ist FIBplus dabei ! Wohlgemerkt auf der Borland-CD ! Meiner Ansicht nach bedeutet das das endgültige aus für IBX. Bei Delphi 8 ist wohl Schluß.

Gruß
Hansa

Hansa 29. Dez 2002 18:33

Hi,

muß mich korrigieren :

Zitat:

Borland includes Devrace products (FIBPlus, BlazeTop, IBSurgeon Viewer and BT SQLMonitor) to Borland InterBase 7.0 Companion CD.
Quelle : www.devrace.com

Die Auswirkungen auf Delphi dürften dieselben bleiben. Erst BDE weg, warum dann nicht auch noch IBX ? Es deutet jedenfalls alles auf einen Ersatz von IBX durch FIBplus hin. Zumindest mir solls Recht sein. FIBplus geht schließlich auch mit Firebird (Open Source). Falls ich dann doch mal IB 7.0 (kommerziell) brauche, dürfte sich der Änderungsaufwand in engen Grenzen halten. :lol:

Gruß
Hansa

Lemmy 30. Dez 2002 09:06

Zitat:

Zitat von Hansa
Habe Wirklich keine ! Benutze die FIBplus-Kompos, dazu kommt zum Schluß noch was wichtiges.

Lügner... :D

Zitat:

Zitat von Hansa

Code:
 
    WITH KuDataMod.KuDataSet DO BEGIN

Was ist denn KuDataSet für ne Komponente?? Richtig eine TFIBDataSet, eine Mischung aus einer TQuery und einer TUpdateSQL, speziell für Firebird/Interbase. Also hat auch diese KuDataSet die Parameter-Eigenschaft:

KuDataSet.ParamBaName('NR').AsInteger:=5;

Zitat:

Zitat von Hansa
So jetzt aber etwas für IBX - Benutzer! Auf der Delphi 7 Companion CD ist FIBplus dabei ! Wohlgemerkt auf der Borland-CD ! Meiner Ansicht nach bedeutet das das endgültige aus für IBX. Bei Delphi 8 ist wohl Schluß.

Glaub ich nicht und zwar aus 2 Gründen:

1.Die BDE hat nie wirklich funktioniert. Sobald mehrere Installationen mit der BDE arbeiten mussten hat es Probleme gegeben. Wenn unterschiedliche Versionen noch hinzugekommen sind, hat sich das ganze verschärft.
2. Bindet Big B FIBPlus ein (mir soll das nur recht sein), dann würde automatisch Firebird direkt unterstützt werden, und Firebird ist nunmal direkte Konkurrenz zu IB. Zudem ist Jeff ein Mitarbeiter be Big B und somit hat Borland indirekten Einfluss auf die Entwicklung von IBX.....

Grüße
Lemmy

Hansa 30. Dez 2002 09:54

Hi,

Zitat:

2. Bindet Big B FIBPlus ein (mir soll das nur recht sein), dann würde automatisch Firebird direkt unterstützt werden, und Firebird ist nunmal direkte Konkurrenz zu IB. Zudem ist Jeff ein Mitarbeiter be Big B und somit hat Borland indirekten Einfluss auf die Entwicklung von IBX.....
Tja, das widerspricht sich etwas. Aber was ist, wenn IBX das Schicksal der BDE erleidet? Dann brauchen sie Ersatz. Irgendeine Kröte müssen sie dann eben schlucken. FIBplus beschränkt sich ja auch nicht auf Firebird.

Gruß
Hansa

Nachtrag : Bitte das hier mal lesen :

http://www.entwickler-forum.de/webx?...jFw.4@.ee8d7c1

Lemmy 30. Dez 2002 13:48

Hi Hansa,

ja das mit IB OpenSource war mir schon bekannt. Leider habe ich die Artikel momentan nicht zur Hand.

Sollte Borland wirklich die IBX nicht mehr mit ausliefern, sieht die Sache dennoch anders aus als bei der BDE, da die IBX ja wie gesagt von Jeff gepflegt werden, nicht von Borland. Sollte Borland die nicht mehr mit ausliefern (was ich nicht glaube) dann wird es an Jeff liegen die IBX weiterzuführen oder nicht. Sollte er dann auch aufhören, kann jeder der dazu befähigt ist, den Code weiterpflegen, da ja imho alles offen ist....

Grüße
Lemmy

Hansa 30. Dez 2002 17:34

Hi Lemmy,

Zitat:

. Zudem ist Jeff ein Mitarbeiter bei Big B und somit hat Borland indirekten Einfluss auf die Entwicklung von IBX.....
...die sie vielleicht gar nicht mehr wollen.

Irgendwie paßt das alles nicht zusammen. Nur als Overcash passt der doch gut dahin. :mrgreen: Borland wird den wohl kaum einfach machen lassen, was er will. Hat denn keiner zufällig die Interbase 7 Companion CD ? Als Download gibts nur maximal die 6.5

Preisliste :

http://shop.borland.com/dr/v2/ec_MAI...P=0&CACHE_ID=0

Das hält sich ja noch im Rahmen. Hab sie mir aber nicht so genau angeguckt. Was erstaunlich wenige Leute wissen : Wie ist Rockefeller Milliardär geworden ? Er hat Petroleumlampen verschenkt mit der Bedingung, das Öl nur bei ihm zu kaufen. :spin:

Aber was ist nun mit den SQL - Parametern ?

Gruß
Hansa

P.S.: Für die 30-Tage Delphi 7 wollen Sie jetzt 9.95 $ :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:45 Uhr.
Seite 1 von 2  1 2      

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