Вы можете принять пользовательский ввод, используя read0 0
, который будет ожидать все типы пользователей, пока они не нажмут ввод.Ввод будет возвращен в виде строки.Вы можете ввести это в активный сеанс q или обернуть его в функцию, подобную этой:
q)f:{a:read0 0;show a}
q)f[]
12
"12"
В этом случае я набрал 12
, который возвращается в виде строки "12"
.
Что касается параметризации запросов, то это может быть сделано через строки, но это не очень, так сказать, q.Было бы лучше привести данные к другому типу и использовать функциональную форму или даже стандартные выборки, например:
q)tab:([]a:1 2 3 4)
q){input:"J"$read0 0;select from tab where a=input}[]
4
a
-
4
Подробнее о функциональной форме можно прочитать в вики Kx.