У меня есть список целых чисел или строк и нужно передать его в качестве параметра для Delphi DataSet. Как это сделать?Delphi: как передать список в качестве параметра SQL-запроса?
Вот пример. MyQuery что-то вроде:
select * from myTable where intKey in :listParam
Я бы установить параметр в виде списка или массива или что-то другое:
MyQuery.ParamByName('listParam').AsSomething := [1,2,3];
и это привело бы в этом запросе, посланном серверу SQL:
select * from myTable where intKey in (1, 2, 3)
было бы еще лучше, если решение будет также работать со строками, что делает этот запрос:
select * from myTable where stringKey in :listParam
стали:
select * from myTable where stringKey in ('a', 'b', 'c')
Я считаю, что это простой вопрос, но «IN» не является хорошим ключевое слово для поиска в Интернете.
Пожалуйста, ответьте, как я должен настроить параметр в IDE, запрос и как передать параметры.
Я использую Delphi 7.
Отредактировано: Я рассматриваю, что ответ «это невозможно сделать непосредственно». Если кто-то даст мне не-хакерский ответ, принятый ответ будет изменен.
Вы можете К сожалению. Это недостаток в языке SQL: у него нет понятия «тип списка». –
Возможно, в зависимости от используемой СУБД могут быть некоторые варианты. Что вы используете? SQL Server, Oracle, ....? –
@MikaelEriksson: Я использую Sql Server, но я считаю, что это проблема языка Delphi. – neves