Проблема в том, что ваша среда Unidata настроена на синтаксический анализ команд с анализатором PICK, но объект UniCommand выполняет собственный анализатор Unidata. (Синтаксис LIKE и ... взят из основного режима Unidata, который смоделирован из Prime Information.)
Я искал свойство в UniSession или UniCommand, которое могло бы изменить синтаксический анализатор, который используется для метода Execute, но не нашел его. Тем не менее, документация UniCommand гласит, что это эквивалентно основному утверждению EXECUTE. Эта и некоторые команды UDT.OPTIONS могут открыть путь к обходному пути, который позволит вам использовать синтаксис команды PICK, даже если UniObjects не поддерживает его напрямую.
Команда EXECUTE Unidata может принимать несколько команд, разделенных @AMs, и будет выполнять их одну за другой, возвращая только после того, как все будут обработаны. (Это что-то вроде минипроцесса.) Итак, соберите вашу команду, по крайней мере, с командой «UDT.OPTIONS 2 ON» в атрибуте 1, за которой следуют любые другие, которые вам могут понадобиться, и, наконец, желаемая команда PICK в последней приписывать. Затем отправьте всю связку одновременно с помощью метода Execute вашего объекта UniCommand.
Документация для UDT.OPTIONS 2 выглядит следующим образом:
Determines the parser the system uses to interpret UniQuery commands.
ON System uses the Pick® parser.
OFF System uses the UniData parser.
Существует несколько других UDT.OPTIONS, связанных с совместимостью PICK. Посмотрите документы, в частности файл udto.pdf, в разделе «Совместимость Pick®».
Все это говорит о том, что когда я использую UniObjects, я использовал его только для вызова базовых подпрограмм и обработки всего остального в подпрограммах на стороне сервера.
РЕДАКТИРОВАТЬ: Пример кода C #
UniSession s = UniObjects.OpenSession("machine", "user", "password", "/path/to/account", "udcs");
UniCommand c = s.CreateUniCommand();
c.Command = "UDT.OPTIONS 2 ON" + "\xfe" + "SELECT COLORS = \"BLU]\"";
c.Execute();
"\ xfe" является меткой атрибута. (Это CHAR (254) в разговорной речи.) Надеюсь, это поможет.