Re: Passing values between procedures(without actually passing them)

From: Robert Klemme <shortcutter_at_googlemail.com>
Date: Fri, 29 Jan 2010 20:38:15 +0100
Message-ID: <7sgrp8FmneU1_at_mid.individual.net>



On 29.01.2010 15:55, Shakespeare wrote:
> Op 29-1-2010 14:09, LPF schreef:
>> It's possible to achieve something like this?
>>
>> Procedure1(param1,param2) IS
>> ...
>> begin
>> Procedure2;
>> end Procedure1;
>>
>> Procedure2 IS
>> ....
>> begin
>> --Know the parameters values of Procedure1 at this point(with
>> dbms_debug, dbms_trace, some V$, ....)
>> end Procedure2;
>>
>> The point to this is that i have a lot of procedures(like Procedure1)
>> calling a Procedure(Procedure2).
>> So if this could be achieved, i only have to use a simple line like
>> "Procedure2;" to all procedures(and with the advantage of not being
>> dependent of the number of parameteres, so future changes wouldn't
>> affect the Procedure2 call).
>>
>> Thx in advance.
>
> With this approach, you're on the highway to hell.

I agree: this implicit transfer of information is bad to understand and debug - and it's error prone. What if Procedure2 needs a parameter that Procedure1 does not receive? You would never know. The laziness to type a few procedure arguments will come back and haunt you. I just removed access to configuration information through a static in Java and I can tell you: this is not fun - even though with modern IDEs you will find all affected places pretty easily.

Kind regards

        robert

-- 
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/
Received on Fri Jan 29 2010 - 13:38:15 CST

Original text of this message