AGB  ·  Datenschutz  ·  Impressum  







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

IN mit einem Parameter

Ein Thema von haentschman · begonnen am 20. Nov 2010 · letzter Beitrag vom 21. Nov 2010
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#1

IN mit einem Parameter

  Alt 20. Nov 2010, 22:23
Datenbank: Firebird • Version: 2.1 • Zugriff über: Zeos (noch) .-)
Hallo alle miteinander...

ist es möglich ein:
Code:
.... from TABLE where XXX IN (:Parameter)
als einzigen Parameter mit verschiedenen Mengen an Strings abzusetzen oder ist das eine Sackgasse ? Diverse Varianten mit QuotedStr schlugen fehl. Ich würde das ganze ungern als String zusammensetzen bzw. über mehrere Parameter da die Anzahl bei jeder Abfrage unterschiedlich ist.

Danke für Infos... Ich probiere derweil weiter

Geändert von mkinzler (20. Nov 2010 um 22:25 Uhr) Grund: Code-Tag durch SQL-Tag ersetzt
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: IN als Parameter

  Alt 20. Nov 2010, 22:28
Geht leider nicht.

ich ersetzt in diesem Fall immer die Zeile des Staements.

SQL-Code:
select
   ...
from
   <Tabelle>
where
    Feld in
    ()
;
DataSet.SQL[6] := '(1,2)';
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#3

AW: IN mit einem Parameter

  Alt 20. Nov 2010, 22:28
mir ist keine andere Möglichkeit bekannt als den SQL zusammenzusetzen.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#4

AW: IN mit einem Parameter

  Alt 20. Nov 2010, 22:36
Vielen Dank an Euch...
machmal spart gleich fragen viel Zeit Dann kann ich ja aufhören mich zu quälen. Dann setze ich das mal schön in einer Schleife zusammen.

Ein schönes Wochenende noch
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#5

AW: IN mit einem Parameter

  Alt 20. Nov 2010, 22:50
Nur um es nochmal genau zu sagen:
Diese Parameter ala ":name" oder "?" usw. (jenachdem welches DBMS man nutzt) stehen für je genau einen Wert.

Also egal was man an soeinen Parameter übergibt und wie es formatiert ist, es wird immer nur als ein Wert (in deinem Fall ein String) ausgewertet.

War leider auch schon in diese "Falle" getappt und wollte genau das Gleiche versuchen.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: IN mit einem Parameter

  Alt 20. Nov 2010, 22:57
Trotzdem würde ich bei Parametern bleiben
Code:
Where Feld In (:InPar1, :InPar2, ...)
sonst fummelt man sich einen mit Quotes etc. zu Tode
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#7

AW: IN mit einem Parameter

  Alt 20. Nov 2010, 23:16
@Sir Rufo
der Witz bei den IN-Parametern ist üblicherweise daß die Anzahl der Elemente variabel ist, zb der Benutzer in einer Checklistbox bestimmte Elemente ausgewählt hat.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: IN mit einem Parameter

  Alt 20. Nov 2010, 23:27
@Sir Rufo
der Witz bei den IN-Parametern ist üblicherweise daß die Anzahl der Elemente variabel ist, zb der Benutzer in einer Checklistbox bestimmte Elemente ausgewählt hat.
ok, man scheint mich nicht zu verstehen

Delphi-Quellcode:
for idx := 1 to AnzahlParameter do
  InParamStr := InParamStr + Format( ':InParam%d', [ idx ] );
Die Kommas fehlen noch, aber der Ansatz sollte nun klar sein.
Die Werte jetzt den Parametern zuweisen und dann abschicken.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#9

AW: IN mit einem Parameter

  Alt 20. Nov 2010, 23:36
hmmm... ich hab jetzt zwar den String schon zusammengesetzt aber ich schau mir die Parametervariante morgen mal an. Für heute reicht es

Danke an alle...
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#10

AW: IN mit einem Parameter

  Alt 20. Nov 2010, 23:46
@Sir Rufo
sorry, ich hatte Dich wirklich falsch verstanden, aber eine Schleife mit QuotedStr()+',' und an Schluß das letzte Komma wegschmeißen empfinde perönlich ich als weniger aufwändig.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 14:51 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