Parameter tidak bekerja seperti itu; mereka tidak tahu bahwa apa yang Anda coba berikan adalah daftar nilai yang dipisahkan koma. Jika Anda menyetel ParamByName('WhatEver').AsString
atau Value
, yang Anda maksud adalah string yang dikutip yang berisi semua yang termasuk dalam parameter itu. Jadi ia melakukan persis seperti yang terlihat - ia meneruskan IN ('1, 2, 3')
, alih-alih IN (1, 2, 3)
yang dimaksudkan .
Anda harus kembali menguraikannya sendiri dan menggunakan tabel temp, atau membuat WHERE
klausa secara dinamis dan menggabungkannya sebelum mengeksekusi kueri. (Sebenarnya, Anda dapat membuat kueri secara dinamis, membuat parameter baru untuk setiap item di IN
klausa, lalu mengulang dan menetapkan nilai ke masing-masing parameter yang dibuat secara dinamis, tetapi itu menjadi sangat jelek dengan sangat cepat.)