В практических задачах бывает необходимо обратиться к глобалу или
рутине размещенной в другой базе данных. Эта статья описывает как это
выполняется на языке MUMPS.
В языке MUMPS действует соглашение, что если база данных рутины или глобала не указана явно, то используется текущая база данных процесса. Поэтому разные процессы находясь в разных базах данных но выполняя один и тот же код, обращаются к разным глобалам и рутинам. В случае если необходимо явно указать к какой базе данных следует обратиться, имя базы данных должно быть указано синтаксически перед именем глобала или рутины.
Прямое указание имени базы данных для глобала:
MiniM Database Server также поддерживает соглашение что если в качестве имени базы данных указана пустая строка, то обращение выполняется к текущей базе данных, что позволяет указывать текущую базу данных в случае применения косвенности или вычисляемых значений.
Также MiniM Database Server поддерживает устаревшую нотацию явного указания базы данных в квадратных скобках, что позволяет переносить ранее разработанные программы:
В языке MUMPS действует соглашение, что если база данных рутины или глобала не указана явно, то используется текущая база данных процесса. Поэтому разные процессы находясь в разных базах данных но выполняя один и тот же код, обращаются к разным глобалам и рутинам. В случае если необходимо явно указать к какой базе данных следует обратиться, имя базы данных должно быть указано синтаксически перед именем глобала или рутины.
Прямое указание имени базы данных для глобала:
^|dbname|gloname(subscripts,...)Прямое указание имени базы данных для рутины:
^|dbname|rouname(arguments,...)Имя базы данных указывается как вычисляемое выражение. Выражение может быть указано произвольной сложности, может содержать константы, операторы, вызовы функций и косвенности. Пример использования константы для имени базы данных:
s val=^|"TEMP"|gloname(subscripts,...) d ^|"TEMP"|rouname(arguments,...)Пример использования выражения с операторами для имени базы данных:
s a="TE",b="MP" s val=^|a_b|gloname(subscripts,...) d ^|a_b|rouname(arguments,...)Пример использования выражения с косвенностью для имени базы данных:
s curdb="TEMP" s dbname=$na(curdb) s val=^|@dbname|gloname(subscripts,...) d ^|@dbname|rouname(arguments,...)Если использовано явное указание имени базы данных, то процесс не выполняет переключение текущей базы данных в указанную для выполнения операции.
MiniM Database Server также поддерживает соглашение что если в качестве имени базы данных указана пустая строка, то обращение выполняется к текущей базе данных, что позволяет указывать текущую базу данных в случае применения косвенности или вычисляемых значений.
Также MiniM Database Server поддерживает устаревшую нотацию явного указания базы данных в квадратных скобках, что позволяет переносить ранее разработанные программы:
s val=^[dbname]gloname(subscripts,...) d ^[dbname]rouname(arguments,...)В случае необходимости указать метку и опционально смещение, имя базы данных для рутины указывается непосредственно перед именем рутины:
d label+offset^|dbname|rounameПри указании имени базы данных как вычисляемого выражения содержащего побочные действия надо понимать, что все значения вычисляются в порядке слева направо.
Комментариев нет:
Отправить комментарий