Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Stored Prodeure mit in im Select

  Alt 8. Feb 2020, 23:46
Natürlich geht x IN (:EinParameter) nicht, denn es ist ein Parameter mit einem Wert, egal was du da rein schreibst.

x IN (:Param1, :Param2) ginge.
Ansonsten müsstest du den SQL+Text ohne Parameter manuell zusammenbauen, oder, was ich dann gern mal nehme, das sind Makros x IN (&Param) die das Gleiche machen.

Die einzigen "guten" Lösungen hier, wären Array-Parameter.
* so manches DBMS und zugehörige Zugriffskomponenten können an einen Parameter ein Array übergeben. (nicht wie du einen String, wo irgendwas drin steht)
* oder du übergibt es als String und trennst es im SQL in ein Array auf
x IN string_to_row(:KommagetrennterParameter, ',') , x IN unnest(string_to_array(:KommagetrennterParameter, ',')) , bzw. x = ANY(string_to_array(:KommagetrennterParameter, ','))

Und deine SP braucht dann natürlich ebenfalls einen Array-Parameter, oder notfalls einen String-Parameter, der intern in ein Array zerlegt wird, genau so, wie es bei der Übergabe an den zweiten Parameter für den IN-Operator der Fall ist.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 9. Feb 2020 um 11:36 Uhr)
  Mit Zitat antworten Zitat