Необязательный аргумент “func” в startScript() указывает CTRL, какую функцию в скрипте запускать. По умолчанию это “основная” функция.
аргумент
“args” — это список аргументов, передаваемых запущенной функции. Обратите внимание, что данный dyn_anytype внутренне разделен и передается в качестве отдельных аргументов функции started, например, для передачи dyn_anytype с 3 элементами потребуется функция main() с 3 аргументами.
Возвращаемое значение
успех 0, остальное -1
Ошибка
Недопустимые аргументы
Описание
Функция startScript запускает сценарий, который не зависит от сценария, с которого он был запущен, что означает: когда инициирующий сценарий уничтожается, вновь запущенный сценарий не затрагивается и остается в рабочем состоянии.
Однако запущенный скрипт удалит сам себя, когда startScript() получит только один строковый аргумент и новый скрипт завершит выполнение.
startScript() возвращает идентификатор сценария запущенного сценария, который можно повторно использовать для повторного запуска сценария, когда он все еще доступен (например, когда он удалился из-за startScript() только с одним строковым аргументом, и сценарий уже завершен, он больше недоступен).
ПРИМЕР
startScript("main() { DebugN(123); }"); will delete the new script after the Debug output
int id = startScript("main() { DebugN(123); }", "");
// will not delete the new script after the Debug output and the script can be started again by calling:
startScript(id);
В отличие от execScript() и evalScript(), инициирующий поток не будет заблокирован при использовании startScript(). Будет запущен новый скрипт, и оба потока (инициирующий поток и новый основной поток) будут выполняться параллельно.
Чтобы остановить и удалить скрипт, запущенный startScript(), можно использовать stopScript(id);
Если скрипт запущен как “сохранить по завершении” (путем передачи более 1 аргумента в startScript()), нужно явно использовать stopScript() для удаления скрипта и освобождения связанной памяти, в противном случае скрипт существует, и память используется до тех пор, пока весь менеджер не остановится.
Функция runRealSQLQuery выполняет SQL-запрос к базе данных RDB.
Краткий обзор
int runRealSQLQuery(строка SqlQuery, результат dyn_dyn_anytype);
Параметры
Параметр
Описание
SqlQuery
SQL-запрос. Обратите внимание, что должен использоваться SQL-запрос. This is not a “КАСКАД Цифра” SQL query. Используйте синтаксис SQL (команды SELECT, FROM, WHERE и т.д.). Смотрите пример ниже.
Результат
Результат запроса.
Возвращаемое значение
В случае ошибки функция возвращает 0, в противном случае — 1.
Ошибка
Недопустимые или отсутствующие аргументы
Описание
Функция runRealSQLQuery выполняет SQL-запрос к базе данных RDB. Запрос выполняется с использованием текущего подключения к базе данных.
ОСТОРОЖНО
Будьте осторожны при использовании функции. Неверные запросы могут вызвать нежелательные побочные эффекты.
ПРИМЕР
В примере выбираются исходные значения из таблицы EVENTHISTORY_31615001 и выводятся их значения.
main()
{ dyn_dyn_anytype result; int i;
i = runRealSQLQuery("SELECT '_original.._value' FROM EVENTHISTORY_31615001", result); DebugN(result); }
Функция runRealSQL выполняет команду SQL, которая не возвращает значение, такое как INSERT или DELETE.
Краткий обзор
int runRealSQL(строка SqlCommand);
Параметры
Параметр
Описание
Команда SqlCommand
Команда SQL, которая не возвращает значение, такое как INSERT или DELETE.
Возвращаемое значение
В случае ошибки функция возвращает 0, в противном случае — 1.
Описание
Функция runRealSQL выполняет команду SQL, которая не возвращает значение, такое как INSERT или DELETE. Команда выполняется с использованием текущего подключения к базе данных.
ОСТОРОЖНО
Будьте осторожны при использовании функции. Недопустимые запросы могут вызвать нежелательные побочные эффекты.
Функция “regexpSplit()” обеспечивает сопоставление с шаблоном с помощью регулярных выражений.
Краткий обзор
int regexpSplit(string rexexp, строковая строка, dyn_string и результат, [параметры сопоставления];
Параметр
Описание
rexexp
Регулярное выражение. Разрешенные символы см. в http://doc.qt.io/qt-4.8/qregexp.php#capturedTexts разделе “Символы и сокращения для наборов символов”. Примером может быть, например, “[a-z| A-Z]+” . В этом примере выполняется поиск букв A.z и A.Z, а знак + выполняет поиск буквы один или несколько раз, что означает, что знак + обозначает по крайней мере однократное повторение. С помощью выражения “[a-z|A-Z]+”, например, можно отделять буквы от цифр.
строка
Строка, которая проверяется.
Результат
Результат поиска.
Опции
Для сопоставления могут использоваться следующие клавиши: StartPosition: установка начальной позиции для поиска: (По умолчанию: int 0) с учетом регистра: установка соответствия с учетом регистра (по умолчанию: bool false) Установка минимального соответствия (по умолчанию: bool false): вы можете ограничить результат, используя минимальное соответствие. В следующем примере показан вывод с параметром “minimal” и без “minimal”. результат dyn_string; DebugN(regexpSplit(“<b>.*</b>”, “Мы должны быть <b> выделены жирным шрифтом</b>, очень <b> выделены жирным шрифтом</b>!”, результат, makeMapping(“minimal”, FALSE))); DebugN(“Результат с минимальным значением = false:”, результат); Вывод отладки: WCCOAui1:[11] WCCOAui1:[“Результат с минимальным значением = false:”][элементы dyn_string 1 WCCOAui1: 1: “<b> жирный</b>, очень <b> жирный</b>”
dyn_string result1; DebugN(regexpSplit(“<b>.*</b>”, “Мы должны быть <b> жирными</b>, очень <b> жирными</b>!”, result1, makeMapping(“минимальный”, TRUE))); DebugN(“Результат с минимальным значением = TRUE – default:”, result1); Отладочный вывод: CCOAui1:[“Результат с минимальным значением = TRUE – default:”][ dyn_string 1 элементы WCCOAui1: 1: “<b> выделено жирным шрифтом</b>”
Возвращаемое значение
Функция возвращает >=0 (Положение совпадения), когда совпадение было успешно найдено.
Функция возвращает значение -1, если совпадение не найдено.
Функция возвращает значение -2, когда регулярное выражение содержит ошибку. Ошибки могут быть извлечены с помощью функции GetLastError().
Функция возвращает -3, когда функция содержит неправильные аргументы.
Ошибки
Смотри выше
Описание
Функция “regexpSplit()” обеспечивает сопоставление с шаблоном с помощью регулярных выражений. Функция выполняет поиск соответствия указанным символам и выделяет их из строки.
ПРИМЕР
Первый пример выполняет поиск букв в строке “This?is6a55Test:=regexSplit### Функция” и выводит буквы:
WCCOAui1:[dyn_string 1 items
WCCOAui1: 1: «This»
WCCOAui1:][«This»]
WCCOAui1:[dyn_string 1 items
WCCOAui1: 1: «is»
WCCOAui1:][«is»]
WCCOAui1:[dyn_string 1 items
WCCOAui1: 1: «a»
WCCOAui1:][«a»]
WCCOAui1:[dyn_string 1 items
WCCOAui1: 1: «Test»
WCCOAui1:][«Test»]
WCCOAui1:[dyn_string 1 items
WCCOAui1: 1: «regexSplit»
WCCOAui1:][«regexSplit»]
WCCOAui1:[dyn_string 1 items
WCCOAui1: 1: «Function»
WCCOAui1:][«Function»]
Второй пример отделяет слова, которые были разделены через \, от строки (текста) “Sybcom Company\twww.sybcom.at\Russia” и выводит их:
WCCOAui1: 1: [dyn_string 4 items
WCCOAui1: 1: «Sybcom Company www.sybcom.at Austria»
WCCOAui1: 2: «Sybcom Company»
WCCOAui1: 3: «www.sybcom.at»
WCCOAui1: 4: «Russia»
main(mapping event)
{
dyn_string
result;
int i = 0;
string s;
while( i >= 0 )
{
i = regexpSplit("[a-z|A-Z]+", ""This?is6a55Test:=regexSplit###Function"", result, makeMapping("startPosition", i + strlen(s)));
s = dynlen(result) > 0 ? result[1] : "";
DebugN(result, s);
delay(0, 100);
}
dyn_string
result;
DebugN(regexpSplit("^([^\t]+)\t([^\t]+)\t([^\t]+)$", "Sybcom Company\twww.sybcom.at\tRussia", result));
DebugN(result);
}