Subject | Re: [Firebird-Architect] Exec. statement parameters |
---|---|
Author | Adriano dos Santos Fernandes |
Post date | 2007-12-12T10:53:41Z |
Vlad Khorsun escreveu:
But I prefer := operator.
That means one could have a function parameter or a variable using
boolean type.
And result of "something = otherthing" should be a valid expression
(value) returning TRUE/FALSE/NULL.
Adriano
>> Alex Peshkov escreveu:We do not have boolean expressions (i.e. datatype).
>>
>>>> Don't introduce ambiguities with boolean expressions, please. :-)
>>>>
>
> Hmm... our assignment and comparison operators already ambigious, isn't is ?
>
>No. We define special rule for @. What follows @ is the parameter name.
>>> EXECUTE STATEMENT S (a(CURRENT_TRANSACTION), b(CURRENT_CONNECTION));
>>>
>>> Does this look better for you?
>>>
>> No, this is ambiguous with function call syntax.
>>
>> I think something more or less:
>> EXECUTE STATEMENT S (@a = CURRENT_TRANSACTION, @b = CURRENT_CONNECTION);
>>
>
> Is it also ambigious with comparison operator ?
>
But I prefer := operator.
>You have said unnamed (question mark) parameter is/will be allowed.
>
>> would be ok. And I also want a syntax that could be used to call procedures:
>> select * from sp(@p1 = 1, @p2 = 2)
>>
>> But @ is used to denote client parameters in ADO.NET. I think we need
>> opinions if this could cause problems.
>>
>
> Why do we need @ mark here ? For dynamic statement\procedure\function invokation
> we have a strict rule : left operand (of "=" operator) is always parameter name. It allow us
> to always understand what is written there. Where i am wrong ?
>
> So i still prefer EXEC STMT <sql> (param1 = expr1, ... ) syntax without any additionalWe have in our tracker (with many votes, BTW), request for boolean datatype.
> parameter markers or ":=" operators. It is very consistent with our existing syntax.
That means one could have a function parameter or a variable using
boolean type.
And result of "something = otherthing" should be a valid expression
(value) returning TRUE/FALSE/NULL.
Adriano