Ole: (CFML) Zu blöd für IN-Operator oder für CFML?

Beitrag lesen

hi

ich durchlebe grade einen montag wie er im buche steht *seuftz*
mein aktuelles problem ist folgendes:

ich habe eine komma separierte liste mit artikelnummer z.B.
100,32423,234,324-43,123-456,4,7,10
welche aus einer datenbank kommt und deshalb meistens unterschiedlich ist, somit ist obere beispiel nur exemplarisch zu bestrachten.
dieses liste habe ich in einer variable: produkte

nun möchte ich aus einer datenbank die artikel erhalten welchen die in der liste enthalten artikelnummern entsprechen.

also habe ich mir folgende SQL-Anweisung gebastelt:

SELECT * FROM Artikel WHERE ArtNr IN ('#produkte#') ORDER BY ArtNr

#produkte# ist in diesem Falle eine CFML-Variable. diese wird vor der SQL abfrage durch den inhalt der Variable ersetzt.

Alle Listenelemente kommen in der Artikel-Tabelle vor.

Allerdings bekomme ich keine ergebnisse zurück...eine Fehlermeldung bleibt mir auch verwehrt :(

dann hab ich angefangen etwas literatur zu konsultieren und gelesen das = ANY dem IN Operator entsprechen würde (Quelle: Relationale Datenbanken und SQL, Addison-Wesley, Seite 208).

Also das ganze umgemodelt zu

SELECT * FROM Artikel WHERE ArtNr = ANY ('#produkte#') ORDER BY ArtNr

und jetzt bekomme ich auch eine fehlermeldung:

ODBC Error Code = 37000 (Syntax error or access violation)

[Microsoft][ODBC Microsoft Access Driver] Syntaxfehler. in Abfrageausdruck 'ArtVar =ANY ('100,32423,234,324-43,123-456,4,7,10')'.

Ich also weiter meine Fachliteratur inspiziert und bin in oben erwähnten Buch auf ein Beispiel gestoßen in dem die einzelnen Listenelemente in Hochkomma standen...also so:

'100','32423','234','324-43','123-456','4','7','10'

fülle ich aber die variable mit einer entsprechend formatierten Liste bekomme ich eine andere Fehlermeldung:

ODBC Error Code = 37000 (Syntax error or access violation)

[Microsoft][ODBC Microsoft Access Driver] Syntaxfehler. in Abfrageausdruck 'ArtVar =ANY ('''100'',''32423'',''234'',''324-43'',''123-456'',''4'',''7'',''10''')'.

irgendwas mache ich verkehrt und irgendwie stehe ich bei der lösung meines problemes ziemlich auf dem schlauch *seuftz*

kann mir jemand helfen?
liegt es an SQL oder ColdFusion?
ist meine Syntax irgendwo falsch?

thx
ole
(8-)>