Parametry takto nefungují; nemají ponětí, že to, co se snažíte poskytnout, je seznam hodnot oddělených čárkami. Pokud nastavíte ParamByName('WhatEver').AsString nebo Value , myslí si, že máte na mysli řetězec v uvozovkách, který obsahuje vše, co patří do tohoto parametru. Dělá tedy přesně to, co vypadá – předává IN ('1, 2, 3') , namísto zamýšleného IN (1, 2, 3) .
Budete se muset buď vrátit k analýze sami a pomocí dočasné tabulky, nebo vytvořit WHERE klauzule dynamicky a před provedením dotazu ji zřetězí. (Ve skutečnosti byste mohli dotaz sestavit dynamicky vytvořením nového parametru pro každou z položek v IN klauzuli a poté procházet a přiřazovat hodnoty každému z těchto dynamicky vytvářených parametrů, ale to se velmi rychle stane velmi ošklivým.)