Галерея
7757 8119 8300 8698 8817 9504 9722 9937
Интересные записи
Топовые новости
Новое

Передача параметров по имени и по значению

Передача параметров по имени и по значениюВ большинстве процедурных языков программирования реализовано два типа передачи параметров: по значению и по ссылке. Основное различие между этими двумя методами состоит в том, что при передаче переменной из вызывающего модуля по значению на самом деле пересылается копия этой переменной. Таким образом, что бы с переданным параметром ни происходило в вызываемой процедуре, это никак не отразится на ее исходном значении в главном модуле. Если же переменная передается по ссылке, на самом деле процедуре передается ее адрес в памяти; таким образом, исходная переменная может быть изменена. В следующем примере (написанном на псевдокоде) проиллюстрирована данная концепция. Во всех трех ведущих СУБД переменные можно передавать как по значению, так и по ссылке, причем первый вариант используется по умолчанию. Как в Oracle, так и в IBM DB2 насчитывается два типа передачи аргументов по ссылке: out и in out (в DB2 это inout). Первый вариант означает, что с помощью данного аргумента вызываемой процедуре нельзя передавать значения (обычно в этом случае передается null). Однако сама процедура может присвоить значение этому аргументу и вернуть его в главный модуль. Второй тип предполагает, что значение реально передается подпрограмме и может быть использовано в вычислениях, после чего быть возвращено в вызывающий модуль. В Microsoft SQL Server существует только один тип передачи по ссылке — output, приблизительно соответствующий типу in out в Oracle. Иногда нужно, чтобы программа выполняла разные действия в зависимости от некоторого условия. Для примера предположим, что в зависимости от значения, извлеченного из таблицы, его нужно умножить на разные числа. Главной условной инструкцией во всех трех расширениях SQL ведущих СУБД является тот или иной тип конструкции

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *