पैरामीटर उस तरह काम नहीं करते; उन्हें पता नहीं है कि आप जो प्रदान करने का प्रयास कर रहे हैं वह अल्पविराम से अलग मूल्यों की सूची है। अगर आप ParamByName('WhatEver').AsString . सेट करते हैं या Value , ऐसा लगता है कि आपका मतलब एक उद्धृत स्ट्रिंग है जिसमें वह सब कुछ है जो उस पैरामीटर से संबंधित है। तो यह ठीक वही कर रहा है जो यह प्रतीत होता है - यह गुजर रहा है IN ('1, 2, 3') , इच्छित IN (1, 2, 3) . के बजाय ।
आपको या तो इसे स्वयं पार्स करने के लिए वापस जाना होगा और एक अस्थायी तालिका का उपयोग करना होगा, या WHERE बनाना होगा क्वेरी को क्रियान्वित करने से पहले गतिशील रूप से क्लॉज और इसे संयोजित करना। (वास्तव में, आप क्वेरी को गतिशील रूप से बना सकते हैं, IN में प्रत्येक आइटम के लिए एक नया पैरामीटर बना सकते हैं। क्लॉज, और फिर उन गतिशील रूप से बनाए गए मापदंडों में से प्रत्येक के माध्यम से लूप और मान असाइन करें, लेकिन यह बहुत जल्दी बदसूरत हो जाता है।)