![]() |
Datenbank: MS-SQL • Version: 2000 • Zugriff über: BDE
Werteliste als Parameter für TQuery
Hallo Leute,
ich möchte gerne eine SQL mit einer "in"-Bedingung absetzen, weiß aber nicht welchen Parametertyp ich hier bei TQuery benötige. Die SQL-Anweisung funktioniert, wenn ich die in einem SQL-Abfrageprog eingebe und lautet wie folgt
Delphi-Quellcode:
Jetzt möchte ich diese Werteliste "(3, 4, 23)" gern als Parameter übergeben, da nicht nur der Wert, sondern auch die Anzahl und der Werte in dieser Liste auch variieren kann. Eigentlich bräuchte man da als Parametertyp so etwas wie ein dynamisches Array, kann ich aber nicht finden.
SELECT * FROM MyTabelle WHERE MyIntWert in (3, 4, 23)
Ich nutze Delphi 2.0, da dies eine Alt-Anwendung ist. War die erste Version mit der ich gearbeitet habe. Die lief wenigstens noch stabil. Wäre für ein paar gute Tips offen. Danke. Micha |
Re: Werteliste als Parameter für TQuery
Ich hatte gestern die gleiche Frage gestellt, nur bei mir waren es Strings in der Werteliste.
Resultat soweit: Es geht nicht per Parameter Lösung: Werteliste als String dynamisch erstellen und per Verkettung in den SQL-String einbauen. Gruß Igotcha |
Re: Werteliste als Parameter für TQuery
Hey, danke erstmal für deine schnelle Antwort.
Ich habe deinen Thread gelesen, jedoch wurde das irgendwie etwas zerredet, deshalb hab ich's einfach noch mal mit meinen Worten versucht. Micha |
Re: Werteliste als Parameter für TQuery
Na du mußt Dir die Werteliste "per Hand" basteln.
So in der Art: - in einer Schleife bildest Du den String (ich weiss jetzt nicht, woher Du die Werte bekommst)
Delphi-Quellcode:
- danach schneidest Du die letzten beiden Zeichen ab (StrUtils einbinden und dann mit LeftStr)
StrWerte:=strWerte+IntToStr(Wert)+', ';
Delphi-Quellcode:
- dann im SQL-String verketten
strWerte:=LeftStr(strWerte, Length(strWerte)-2);
Delphi-Quellcode:
Gruß Igotcha
... WHERE MyIntWert in ('+strWerte+')...
|
Re: Werteliste als Parameter für TQuery
Wenn die Wahrscheinkichkeit hoch ist, dass du das gleiche Statement wieder absetzt (auch mit anderen Werten) solltest du auch hier mit Parametern arbeiten.
Also die in-Clause mit Parametern statt Werten füllen und diesen dann die Werte zuweisen. Wobei deratige Optimierungen auf einer Antiquität wie der BDE irgendwie lustig wirken. ;) |
Re: Werteliste als Parameter für TQuery
Zitat:
Micha |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:30 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 by Thomas Breitkreuz