AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Werteliste als Parameter für TQuery
Thema durchsuchen
Ansicht
Themen-Optionen

Werteliste als Parameter für TQuery

Ein Thema von MPirnstill · begonnen am 26. Apr 2005 · letzter Beitrag vom 26. Apr 2005
Antwort Antwort
Benutzerbild von MPirnstill
MPirnstill

Registriert seit: 19. Jul 2004
Ort: Burgdorf
197 Beiträge
 
Delphi XE8 Enterprise
 
#1

Werteliste als Parameter für TQuery

  Alt 26. Apr 2005, 09:55
Datenbank: MS-SQL • Version: 2000 • Zugriff über: BDE
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

SELECT * FROM MyTabelle WHERE MyIntWert in (3, 4, 23) 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.
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
Micha
  Mit Zitat antworten Zitat
Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Werteliste als Parameter für TQuery

  Alt 26. Apr 2005, 10:12
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
  Mit Zitat antworten Zitat
Benutzerbild von MPirnstill
MPirnstill

Registriert seit: 19. Jul 2004
Ort: Burgdorf
197 Beiträge
 
Delphi XE8 Enterprise
 
#3

Re: Werteliste als Parameter für TQuery

  Alt 26. Apr 2005, 10:17
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
Micha
  Mit Zitat antworten Zitat
Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Werteliste als Parameter für TQuery

  Alt 26. Apr 2005, 10:26
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)

StrWerte:=strWerte+IntToStr(Wert)+', '; - danach schneidest Du die letzten beiden Zeichen ab (StrUtils einbinden und dann mit LeftStr)

strWerte:=LeftStr(strWerte, Length(strWerte)-2); - dann im SQL-String verketten

... WHERE MyIntWert in ('+strWerte+')... Gruß Igotcha
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#5

Re: Werteliste als Parameter für TQuery

  Alt 26. Apr 2005, 10:56
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.
  Mit Zitat antworten Zitat
Benutzerbild von MPirnstill
MPirnstill

Registriert seit: 19. Jul 2004
Ort: Burgdorf
197 Beiträge
 
Delphi XE8 Enterprise
 
#6

Re: Werteliste als Parameter für TQuery

  Alt 26. Apr 2005, 11:04
Zitat von Robert_G:
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.
Das ist ja genau das was ich will, jedoch gibt es bei TQuery keinen Parametertyp für Wertelisten/Arrays. Und jeden Wert der Liste als einzelnen Parameter übergeben ist in diesem Fall auch unsinnig, da ich mal einen Wert in der Liste, mal 3 oder auch 4 Werte in der Liste haben kann.

Micha
Micha
  Mit Zitat antworten Zitat
Antwort Antwort


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 01:13 Uhr.
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