SQL, Parametr i Tablica

0

jest zapytanie w takiej postaci:

SELECT x.*
FROM tabela x
WHERE x.pole IN (:PARAMETR_X)

potrzebuję parametrowi PARAMETR_X przekazać listę wartości tak, żeby wynikowe zapytanie wyglądało mniej więcej tak:

SELECT x.*
FROM tabela x
WHERE x.pole IN ("warunek1","warunek2","warunek3")

niestety po przekazaniu do

DataSet.Params.ParamByName('PARAMETR_X').Value:='"warunek1","warunek2","warunek3"';

Dostaję zapytanie w takiej postacji:

SELECT x.*
FROM tabela x
WHERE x.pole IN ('\"warunek1\",\"warunek2\",\"warunek3\"')

Czyli skleja mi to w jeden łańcuch i SQL nie potrafi tego zrozumieć tak jak ja zakładam. Kombinowałem z funkcją VarArrayCreate, żeby przekazać tablicę varOleStr (nie można użyć varString bo wywala błąd tworzenia tablicy), ale co chwile natykam się na mury w stylu: Could not convert Variant of type (Array OleStr) into type (String)

nie bardzo wiem jak zmusić program do traktowania parametru w zadany przeze mnie sposób (zreszta nie widzę takiego typu parametru jak tablica).

Rzućcie jakimś konceptem, bo sie chyba zakałapućkałem.

0

ParamByName('pole').AsString ?

0

Hm. Probujesz używać parametrów do czegoś, dokładnie czemu parametry przeciwdziałają.
To coś jak próba rzucenia piórkiem puchu na odległość.

0

Użyłeś bardzo abstrakcyjnego i enigmatycznego wyjaśnienia - możesz rozwinąć ?

Znalazłem rozwiązanie, które daje pożądane efekty:

SELECT x.*
FROM tabela x
WHERE LOCATE(x.pole,:PARAMETR_X)

Mowa o bazie danych MySQL

Rozwiązanie nie jest idealne (w sensie jednoznaczności otrzymywanych wyników), ale w związku z tym, że szukam po unikalnym kluczu głównym powinno spełnić swoje zadanie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1