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-)>