![]() |
Mehrere Werte in einen Query-Parameter reinkriegen
Hallo Leute,
ich hab ein ganz blödes Problem, und zwar soll ein Query-Parameter vor dem Ausführen mehrere Werte annehmen und dann ausführen. Die Werte holt er sich von einer Stringliste, welche in einer Schleife über den Index i alle Werte an den Queryparameter übergibt. Mein Code sieht folgendermaßen aus: For i:= 0 to (RLSDetailNr.Count-1) do begin Query1.Close; Query1.ParamByName('Tabellenname').Value := Tabellenname; //nur 1 Wert Query1.ParamByName('Feldbezeichnung').Value := Feldbezeichnung; //nur 1 Wert Query1.Params.ParamByName('IDNummer').Value := StrToInt(RLSDetailNr.Stringsi]); //Hier i Werte Query1.Open; end; Aber es funzt so nicht, es wird immer der erste i Wert ausgeführt oder der letzte, je nachdem ob ich das Query1.Close innerhalb oder außerhalb der Schleife plaziere. Wie kann ich das ändern, so dass mir die Query mit allen 3 Werten ausgeführt wird? Danke im Voraus! |
Re: Mehrere Werte in einen Query-Parameter reinkriegen
je nach dem, welche DB Du verwendest (welche verwendest Du?), kannst Du "IN" benutzen und in etwa folgendes tun:
abfrage um Bedingung erweitern:
SQL-Code:
im Code dann:
WHERE idFeld in (:IdListe)
Delphi-Quellcode:
Das ganze soll ein Ansatz sein (nicht getestet)
var
ParaString : String; begin Query1.Close; Query1.ParamByName('Tabellenname').Value := Tabellenname; //nur 1 Wert Query1.ParamByName('Feldbezeichnung').Value := Feldbezeichnung; //nur 1 Wert ParaString := ''; For i:= 0 to (RLSDetailNr.Count-1) do begin ParaString := ParaString+RLSDetailNr.Strings[i]; if i < RLSDetailNr.Count-1 then ParaString := ParaString+',' end; Query1.ParamByName('IdListe').AsString := ParaString; Query1.Open; end; Gruß |
Re: Mehrere Werte in einen Query-Parameter reinkriegen
@Leuselator
Dieses
SQL-Code:
ist durchaus möglich. Aber nicht mit einem String, sondern als eie Collection oder Array (denn genau das macht der IN-Operator ja, er vergleicht einen Wert mit einem Array).
WHERE Feld in :Parameter
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:21 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