Autor Beitrag
Maa83
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 160

Win XP Pro
D6 Ent
BeitragVerfasst: Fr 18.11.05 09:34 
Hallo,

ich habe ein großes Problem!

Gibt es eine Möglichkeit die Anzahl von Where-Klauseln dynamisch festzulegen?

Folgendes:

1.
Ich habe eine Funktion auf dem SQL-Server. Dieser Funktion übergebe ich ein Where-Statement.

Nun kann ich jedoch nicht, wie in Delphi, die SQL-String zusammenbauen. Gibt es dennoch eine Lösung?


2. Ich habe einen String in dem Werte mit Komma getrennt stehen.
z.B. 1196,1197,50,51
diesen möchte ich jetzt mit einem IN Statement verwenden.
z.B. Where Spalte1 IN (@uebergebenerString)
das funktioniert jedoch auch nicht.

Ich hoffe das mir jemand helfen kann.

Gruß
Martin
noidic
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 851

Win 2000 Win XP Vista
D7 Ent, SharpDevelop 2.2
BeitragVerfasst: Fr 18.11.05 09:57 
Um welches RDBMS handelt es sich und was meinst du mit Funktion? Eine Stored Procedure?

Eventuell gibt es die Möglichkeit, die Wertliste über einen bestimmten Datentyp ( VARRAY o.ä. ) zu übergeben.

_________________
Bravery calls my name in the sound of the wind in the night...
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Fr 18.11.05 10:28 
Klingt sehr nach einer SP. Normalerweise kann man auch dort SQL-Statements zusammenbauen. Die Übergabe-Möglichkeit hängt aber vom RDBMS ab. Also mehr Info bitte. :wink:

Ich kenne zwar nicht dein genaues Problem, aber für mich sieht das so aus, wären deine Werte Schlüsselfelder einer anderen Tabelle. Da würde sich evtl. ein Subselect in der Where-Klausel anbieten. Vielleicht kannst du das Problem auf diesem Weg lösen.
Maa83 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 160

Win XP Pro
D6 Ent
BeitragVerfasst: Fr 18.11.05 10:59 
Hallo nochmal,

also ich befinde mich auf dem Microsof SQL-Server. Es handelt sich um benutzerdefinierte Funktionen.

Ich hab das ganze jedoch jetzt selbst gelöst :)
1. Möglichkeit
das ganze als String zusammenbauen und dann mit Execute ausführen
--> geht bei mir aber nicht da ich mehr als 8000 Zeichen in dem SQL habe und somit die VarChar Variable sprenge

2. Möglichkeit
eine Tabellenvariable mit den Werten füllen und dann ein SubSelect ausführen.

Danke für eure Bemühungen und schnellen Antworten :)